Skip to content

Commit

Permalink
Add a WDL to run ExpansionHunter on multiple samples (#253)
Browse files Browse the repository at this point in the history
* Add a WDL to run ExpansionHunter on multiple inputs.

* Add output prefix arg, defaults to input filename.

* Rename docker var in EH WDLs to 'expansion_hunter_docker'

* Add an optional list of per sample output prefix.
  • Loading branch information
VJalili authored Nov 29, 2021
1 parent c493629 commit c7c0a24
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 6 deletions.
22 changes: 16 additions & 6 deletions wdl/ExpansionHunter.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -35,14 +36,24 @@ 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,
bam_or_cram_index = bam_or_cram_index_,
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,
}
Expand All @@ -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"
Expand Down Expand Up @@ -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"
Expand Down
58 changes: 58 additions & 0 deletions wdl/ExpansionHunterScatter.wdl
Original file line number Diff line number Diff line change
@@ -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
}
}

0 comments on commit c7c0a24

Please sign in to comment.