/public_health_viral_genomics

Bioinformatics workflows for genomic characterization, submission preparation, and genomic epidemiology of viral pathogens of concern, especially SARS-CoV-2

Primary LanguageWDLGNU Affero General Public License v3.0AGPL-3.0

NOTE: WORKFLOWS FROM THIS REPOSITORY HAVE BEEN MIGRATED TO THE PUBLIC HEALTH BIOINFORMATICS (PHB) REPOSITORY. FUTURE DEVELOPMENTS AND UPDATES FOR THESE WORKFLOWS WILL OCCUR IN https://github.com/theiagen/public_health_bioinformatics.


Public Health Viral Genomics (PHVG)

Bioinformatics workflows for characterization, epidemiology and sharing of viral pathogen genomes. More information about the steps undertaken in these workflows is available via the Theiagen Public Resources Documentation.

Support for running these workflows can be sought by raising a GitHub issue or by contacting Theiagen at support@theiagen.com.

These workflows are written in WDL, a language for specifying data processing workflows with a human-readable and writeable syntax. They have been developed by Theiagen genomics to primarily run on the Terra.bio platform but can be run locally or on an HPC system at the command-line with Cromwell or miniWDL.

Contributors & Influence

Contributing to the PHVG workflows

Contributions to the workflows contained in this repository are warmly welcomed. Our style guide may be found below for convenience of formatting.

2-space indents (no tabs), no line break for openning braces, single space when defining input/output variables & runtime attributes, single-line breaks between non-intended constructs, and task commands enclosed with triple braces (<<< ... >>>).

E.g.:

workflow w {
  input {
    String input
  }
  call task_01 {
    input:
      input = input
  }
  call task_02 {
    input: 
      input = input
  }
  output {
    File task_01_out = task_01.output
    File task_02_out = task_02.output 
  }      
}

task task1 {
  input {
    String input
    String docker = "theiagen/utility:1.1"
  }
  command <<<
    echo '~{input}' > output.txt
  >>>
  output {
    File output = "output.txt"
  }
  runtime {
    docker: docker
    memory: "8 GB"
    cpu: 2
    disks "local-disk 100 SSD"
    preemptible: 0
    maxRetries: 0
  }
}

task task_02 {
  input{
    String input
    String docker = "theiagen/utility:1.1"
  }
  command <<<
    echo '~{input}' > output.txt
  >>>
  output {
    File output = "output.txt"
  }
  runtime {
    docker: docker
    memory: "8 GB"
    cpu: 2
    disks "local-disk 100 SSD"
    preemptible: 0
    maxRetries: 0
  }
}

Style guide inspired by scottfrazer's WDL Best Pratcices Style Guide