diff --git a/wdl/ExpansionHunter.wdl b/wdl/ExpansionHunter.wdl index bd46d692e..25479b12e 100644 --- a/wdl/ExpansionHunter.wdl +++ b/wdl/ExpansionHunter.wdl @@ -20,7 +20,8 @@ workflow ExpansionHunter { File reference_fasta File? reference_fasta_index File variant_catalog - String docker_file + File? output_prefix + String expansion_hunter_docker RuntimeAttr? runtime_attr } @@ -35,6 +36,15 @@ workflow ExpansionHunter { reference_fasta_index, reference_fasta + ".fai"]) + String output_prefix_ = + if defined(output_prefix) then + select_first([output_prefix]) + else + if is_bam then + basename(bam_or_cram, ".bam") + else + basename(bam_or_cram, ".cram") + call RunExpansionHunter { input: bam_or_cram = bam_or_cram, @@ -42,7 +52,8 @@ workflow ExpansionHunter { reference_fasta = reference_fasta, reference_fasta_index = reference_fasta_index_, variant_catalog = variant_catalog, - docker_file = docker_file, + output_prefix = output_prefix_, + expansion_hunter_docker = expansion_hunter_docker, runtime_attr_override = runtime_attr, } @@ -60,12 +71,11 @@ task RunExpansionHunter { File reference_fasta File reference_fasta_index File variant_catalog - String docker_file + String output_prefix + String expansion_hunter_docker RuntimeAttr? runtime_attr_override } - String output_prefix = "output" - output { File json = "${output_prefix}.json" File vcf = "${output_prefix}.vcf" @@ -99,7 +109,7 @@ task RunExpansionHunter { runtime_attr_str_profile_default]) runtime { - docker: docker_file + docker: expansion_hunter_docker cpu: runtime_attr.cpu_cores memory: runtime_attr.mem_gb + " GiB" disks: "local-disk " + runtime_attr.disk_gb + " HDD" diff --git a/wdl/ExpansionHunterScatter.wdl b/wdl/ExpansionHunterScatter.wdl new file mode 100644 index 000000000..da805e699 --- /dev/null +++ b/wdl/ExpansionHunterScatter.wdl @@ -0,0 +1,58 @@ +version 1.0 + +import "Structs.wdl" +import "ExpansionHunter.wdl" as ExpansionHunter + +workflow ExpansionHunterScatter { + + input { + Array[File] bams_or_crams + Array[File]? bams_or_crams_indexes + Array[String]? sample_ids + File reference_fasta + File? reference_fasta_index + File variant_catalog + String expansion_hunter_docker + RuntimeAttr? runtime_attr + } + + scatter (i in range(length(bams_or_crams))) { + File bam_or_cram_ = bams_or_crams[i] + Boolean is_bam = + basename(bam_or_cram_, ".bam") + ".bam" == basename(bam_or_cram_) + File bam_or_cram_index_ = + if defined(bams_or_crams_indexes) then + select_first([bams_or_crams_indexes])[i] + else + bam_or_cram_ + if is_bam then ".bai" else ".crai" + File reference_fasta_index_ = select_first([ + reference_fasta_index, reference_fasta + ".fai"]) + + String output_prefix = + if defined(sample_ids) then + select_first([sample_ids])[i] + else + if is_bam then + basename(bam_or_cram_, ".bam") + else + basename(bam_or_cram_, ".cram") + + call ExpansionHunter.ExpansionHunter as expanionHunter { + input: + bam_or_cram=bam_or_cram_, + bam_or_cram_index=bam_or_cram_index_, + reference_fasta=reference_fasta, + reference_fasta_index=reference_fasta_index_, + variant_catalog=variant_catalog, + output_prefix=output_prefix, + expansion_hunter_docker=expansion_hunter_docker, + runtime_attr=runtime_attr + } + } + + output { + Array[File] jsons = expanionHunter.json + Array[File] vcfs = expanionHunter.vcf + Array[File] overlapping_reads = expanionHunter.overlapping_reads + } +}