task cnvkit{ String sample File ref_dir String fasta File ref_flat File tumor_bam File tumor_bam_index File? normal_bam File? normal_bam_index String docker String cluster_config String disk_size command <<< set -o pipefail set -e /root/miniconda2/bin/cnvkit.py batch ${tumor_bam} -n ${normal_bam} -m wgs -f ${ref_dir}/${fasta} --annotate ${ref_flat} /root/miniconda2/bin/cnvkit.py scatter ${sample}.cnr -s ${sample}.cns -o ${sample}_scatter.pdf /root/miniconda2/bin/cnvkit.py diagram ${sample}.cnr -s ${sample}.call.cns -o ${sample}.diagram.pdf /root/miniconda2/bin/cnvkit.py heatmap ${sample}.cnr ${sample}.call.cns -o ${sample}.heatmap.pdf /root/miniconda2/bin/cnvkit.py genemetrics ${sample}.cnr -t 0.2 -m 3 -o ${sample}.ratio_cnv.txt /root/miniconda2/bin/cnvkit.py genemetrics ${sample}.cnr -s ${sample}.call.cns -t 0.2 -m 3 -o ${sample}.segment_cnv.txt cat ${sample}.ratio_cnv.txt | tail -n+2 | cut -f1 | sort | uniq > ratio_cnv.txt cat ${sample}.segment_cnv.txt | tail -n+2 | cut -f1 | sort | uniq > segment_cnv.txt comm -12 ratio_cnv.txt segment_cnv.txt > ${sample}.trusted_genes.txt awk 'NR==FNR {a[$1]=$2;next} NR!=FNR {if(FNR == 1 || (FNR != 1 && $1 in a)) print $0}' ${sample}.trusted_genes.txt ${sample}.ratio_cnv.txt > ${sample}.ratio_cnv.trusted.txt /root/miniconda2/bin/cnvkit.py call ${sample}.ratio_cnv.trusted.txt -m threshold -o ${sample}.ratio_cnv.call.txt awk '{if ($6 != 2) print $0}' ${sample}.ratio_cnv.call.txt > ${sample}.ratio_cnv.call.filter.txt ls ./ tar cvf ${sample}.tar ./ >>> runtime{ docker:docker cluster:cluster_config systemDisk:"cloud_ssd 40" dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/" } output{ File out_file = "${sample}.tar" } }