task batch { String sample_id Array[File] tumor_bam Array[File] tumor_bai Array[File] normal_bam Array[File] normal_bai File bed File faidx File fasta File? ref_flat File access_bed File? reference String method String segment_method String docker String cluster_config String disk_size String annotate_opt = if (ref_flat != "") then "--annotate ref_flat.txt" else "" String reference_opt = if (reference != "") then "--reference my_reference.cnn" else "" String access_opt = if (method == "amplicon") then "--access amplicon.bed" else "--access access-mappable.bed" command <<< set -o pipefail set -e mkdir -p /cromwell_root/tmp/cnvkit cp ${sep=' ' normal_bai} /cromwell_root/tmp/cnvkit cp ${sep=' ' tumor_bai} /cromwell_root/tmp/cnvkit # must exist parameters cp ${fasta} /cromwell_root/tmp/cnvkit/hg38.fa cp ${faidx} /cromwell_root/tmp/cnvkit/hg38.fai cp ${access_bed} /cromwell_root/tmp/cnvkit/access-mappable.bed # optional parameters if [ ${method} == "amplicon" ]; then cp ${bed} /cromwell_root/tmp/cnvkit/amplicon.bed; fi if [ ${ref_flat} != "" ]; then cp ${ref_flat} /cromwell_root/tmp/cnvkit/ref_flat.txt; fi if [ ${reference} != "" ]; then cp ${reference} /cromwell_root/tmp/cnvkit/my_reference.cnn; fi cd /cromwell_root/tmp/cnvkit mkdir results cnvkit.py batch ${sep=' ' tumor_bam} --normal ${sep=' ' normal_bam} \ --method ${method} --segment-method ${segment_method} \ --targets ${bed} ${access_opt} ${annotate_opt} \ --fasta hg38.fa ${reference_opt} \ --output-reference ${sample_id}.reference.cnn \ --output-dir ./results/ \ --drop-low-coverage --diagram --scatter >>> runtime { docker: docker cluster: cluster_config systemDisk: "cloud_ssd 40" dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" } output { File reference_cnn = "${sample_id}.reference.cnn" Array[File] results = glob("/cromwell_root/tmp/cnvkit/results/*") } }