Update: July 26, 2019
This section of the forum is now closed; we are working on a new support model for WDL that we will share here shortly. For Cromwell-specific issues, see the Cromwell docs and post questions on Github.

Set workflow level default value for required task input

I have a task that is shared between several workflows, and each workflow passes a different file to the task. I want to make that file an optional input of the workflow, and just pass the default value when the user doesn't specify the optional file.

Is there a way to do this in WDL currently? I now have something like this, and while the wdl validates, when I run it it crashes saying Variable 'gene_db' not found wdl4s.wdl.exception.VariableNotFoundException$$anon$1: Variable 'gene_db' not found

workflow ecoliserotype {                                                                               
    File inputFastqFile                                                                                
    Int nrCores                                                                                        
    File? ecoliDB

    String name                                                                                        

    Array[Array[File]] inputFastq = read_tsv(inputFastqFile)                                           

    call shared.docker as docker                                                                       

    scatter (sample in inputFastq) {                                                         
        call shared.srst2 as srst2 {                                                                   
            input:  forward = trimmomatic.forward_trimmed,                                             
                    reverse = trimmomatic.reverse_trimmed,                                             
                    gene_db = "${default=/path ecoliDB}",                                              
                    nrCores = nrCores,                                                                 
                    name    = name,
                    image   = docker.srst2

Best Answer


Sign In or Register to comment.