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.

Can't use named inputs

Hi,

I'm trying to run CombineVariants as part of a WDL workflow. I'm interested in providing the recommended tag names for my inputs in order to use priority argument. However, I can't figure out a way to do this properly in WDL.

Let's say I have inputs in a data structure like this:

Array[String] priority = [
    "HaplotypeCaller",
    "Samtools"
]
Array[File] input_variants = [
    "tests/data/variants/UtahProband.haplotype_caller.vcf.gz",
    "tests/data/variants/UtahProband.samtools.vcf.gz"
]

Now I want to write a command that looks like:

${java_path} -Xms${memory}m -jar ${gatk_path} \
    --analysis_type  CombineVariants \
    --num_threads ${threads} \
    --reference_sequence ${reference} \
    --genotypemergeoption PRIORITIZE \
    --rod_priority_list ${sep="," priority} \
    --variant:HaplotypeCaller /path/to/cromwell/mapped/inputs/.../UtahProband.haplotype_caller.vcf.gz --variant:Samtools /path/to/cromwell/mapped/inputs/.../UtahProband.samtools.vcf.gz \
    --out ${output_file_prefix}.vcf.gz

Is there a way to get this in WDL? Ideally, while still getting to declare inputs as proper File type so that Cromwell will know to localize the File inputs. I know I could build an array of strings in the workflow calling the task and then use "sep", but that's not ideal. Any other clever way to accomplish this?

Thanks!

Sign In or Register to comment.