submit_genbank
pipes/WDL/workflows/submit_genbank.wdl

WORKFLOW submit_genbank

File Path pipes/WDL/workflows/submit_genbank.wdl
WDL Version 1.0
Type workflow

Imports

Namespace Path
utils ../tasks/tasks_utils.wdl
ncbi_tools ../tasks/tasks_ncbi_tools.wdl

Workflow: submit_genbank

Submit FTP-eligible genomes to NCBI Genbank (currently only flu A/B/C and SARS-CoV-2)

Author: Broad Viral Genomics
viral-ngs@broadinstitute.org

Inputs

Name Type Description Default
submission_files Array[File] - -
batch_id String - -
ncbi_ftp_config_js File - -
2 optional inputs with default values

Outputs

Name Type Expression
genbank_response Array[File] flatten(genbank_upload.reports_xmls)

Calls

This workflow calls the following tasks or subworkflows:

CALL TASKS pair_files_by_basename

Input Mappings (3)
Input Value
left_ext "xml"
right_ext "zip"
files submission_files

CALL TASKS genbank_upload → ncbi_sftp_upload

Input Mappings (5)
Input Value
config_js ncbi_ftp_config_js
submission_xml file_pair.left
additional_files [file_pair.right]
target_path "~{prefix}/genbank/~{basename(file_pair.right)}"
wait_for "1"

Images

Container images used by tasks in this workflow:

🐳 ubuntu

ubuntu

Used by 1 task:
  • pair_files_by_basename
🐳 Parameterized Image
⚙️ Parameterized

Configured via input:
docker

Used by 1 task:
  • genbank_upload
← Back to Index

submit_genbank - Workflow Graph

🖱️ Scroll to zoom • Drag to pan • Double-click to reset • ESC to close

submit_genbank - WDL Source Code

version 1.0

import "../tasks/tasks_utils.wdl" as utils
import "../tasks/tasks_ncbi_tools.wdl" as ncbi_tools

workflow submit_genbank {
    meta {
        description: "Submit FTP-eligible genomes to NCBI Genbank (currently only flu A/B/C and SARS-CoV-2)"
        author: "Broad Viral Genomics"
        email:  "viral-ngs@broadinstitute.org"
        allowNestedInputs: true
    }

    input {
        Array[File]  submission_files # paired xml and zip files with same basenames
        String       batch_id

        File         ncbi_ftp_config_js
        String       prod_test = "Production" # Production or Test
    }

    String prefix = "/~{prod_test}/~{batch_id}"

    call utils.pair_files_by_basename {
        input:
            left_ext  = "xml",
            right_ext = "zip",
            files     = submission_files
    }

    scatter(file_pair in pair_files_by_basename.file_pairs) {
        call ncbi_tools.ncbi_sftp_upload as genbank_upload {
            input:
                config_js        = ncbi_ftp_config_js,
                submission_xml   = file_pair.left,
                additional_files = [file_pair.right],
                target_path      = "~{prefix}/genbank/~{basename(file_pair.right)}",
                wait_for         = "1"
        }
    }

    output {
        Array[File]    genbank_response   = flatten(genbank_upload.reports_xmls)
    }
}