} | } | ||||
output { | output { | ||||
File raw_vcf = "${sample}.TNseq.raw.vcf" | |||||
File raw_vcf_index = "${sample}.TNseq.raw.vcf.idx" | |||||
File vcf = "${sample}.TNseq.vcf" | File vcf = "${sample}.TNseq.vcf" | ||||
File vcf_index = "${sample}.TNseq.vcf.idx" | File vcf_index = "${sample}.TNseq.vcf.idx" | ||||
File contamination = "${sample}.contamination" | File contamination = "${sample}.contamination" |
task VarScan { | |||||
String sample | |||||
File normal_bam | |||||
File normal_bam_index | |||||
File tumor_bam | |||||
File tumor_bam_index | |||||
File ref_dir | |||||
String fasta | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
# somatic | |||||
samtools mpileup -f ${ref_dir}/${fasta} -B ${normal_bam} ${tumor_bam} | java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somatic --mpileup 1 --min-coverage 3 --min-coverage-normal 3 --min-coverage-tumor 3 --min-var-freq 0.08 --p-value 0.10 --somatic-p-value 0.05 --output-vcf 1 --output-snp ${sample}.VarScan.SNP --output-indel ${sample}.VarScan.INDEL --strand-filter 1 | |||||
# processSomatic | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.SNP.vcf | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.INDEL.vcf | |||||
# somaticFilter | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.SNP.Somatic.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${sample}.VarScan.INDEL.vcf --output-file ${sample}.VarScan.SNP.Somatic.filter.vcf | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.SNP.Germline.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${sample}.VarScan.INDEL.vcf --output-file ${sample}.VarScan.SNP.Germline.filter.vcf | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.SNP.LOH.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${sample}.VarScan.INDEL.vcf --output-file ${sample}.VarScan.SNP.LOH.filter.vcf | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.INDEL.Somatic.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Somatic.filter.vcf | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.INDEL.Germline.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Germline.filter.vcf | |||||
java -Xmx64g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${sample}.VarScan.INDEL.LOH.hc.vcf --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.LOH.filter.vcf | |||||
# Merge SNP and INDEL | |||||
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Somatic.filter.vcf | cat ${sample}.VarScan.INDEL.Somatic.filter.vcf - > ${sample}.VarScan.Somatic.vcf | |||||
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Germline.filter.vcf | cat ${sample}.VarScan.INDEL.Germline.filter.vcf - > ${sample}.VarScan.Germline.vcf | |||||
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.LOH.filter.vcf | cat ${sample}.VarScan.INDEL.LOH.filter.vcf - > ${sample}.VarScan.LOH.vcf | |||||
>>> | |||||
runtime { | |||||
docker: docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File varscan_snp = "${sample}.VarScan.SNP.vcf" | |||||
File varscan_indel = "${sample}.VarScan.INDEL.vcf" | |||||
File varscan_somatic = "${sample}.VarScan.Somatic.vcf" | |||||
File varscan_germline = "${sample}.VarScan.Germline.vcf" | |||||
File varscan_loh = "${sample}.VarScan.LOH.vcf" | |||||
} | |||||
} |
task processSomatic { | |||||
String sample | |||||
File varscan_snp | |||||
File varscan_indel | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
cp ${varscan_snp} ./ | |||||
cp ${varscan_indel} ./ | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.SNP.vcf | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.INDEL.vcf | |||||
>>> | |||||
runtime { | |||||
docker: docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File varscan_snp_somatic = "${sample}.VarScan.SNP.Somatic.vcf" | |||||
File varscan_snp_germline = "${sample}.VarScan.SNP.Germline.vcf" | |||||
File varscan_snp_loh = "${sample}.VarScan.SNP.LOH.vcf" | |||||
File varscan_snp_somatic_hc = "${sample}.VarScan.SNP.Somatic.hc.vcf" | |||||
File varscan_snp_germline_hc = "${sample}.VarScan.SNP.Germline.hc.vcf" | |||||
File varscan_snp_loh_hc = "${sample}.VarScan.SNP.LOH.hc.vcf" | |||||
File varscan_indel_somatic = "${sample}.VarScan.INDEL.Somatic.vcf" | |||||
File varscan_indel_germline = "${sample}.VarScan.INDEL.Germline.vcf" | |||||
File varscan_indel_loh = "${sample}.VarScan.INDEL.LOH.vcf" | |||||
File varscan_indel_somatic_hc = "${sample}.VarScan.INDEL.Somatic.hc.vcf" | |||||
File varscan_indel_germline_hc = "${sample}.VarScan.INDEL.Germline.hc.vcf" | |||||
File varscan_indel_loh_hc = "${sample}.VarScan.INDEL.LOH.hc.vcf" | |||||
} | |||||
} |
task somatic { | |||||
String sample | |||||
File normal_bam | |||||
File normal_bam_index | |||||
File tumor_bam | |||||
File tumor_bam_index | |||||
File ref_dir | |||||
String fasta | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
samtools mpileup -f ${ref_dir}/${fasta} -B ${normal_bam} ${tumor_bam} | java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somatic --mpileup 1 --min-coverage 3 --min-coverage-normal 3 --min-coverage-tumor 3 --min-var-freq 0.08 --p-value 0.10 --somatic-p-value 0.05 --output-vcf 1 --output-snp ${sample}.VarScan.SNP --output-indel ${sample}.VarScan.INDEL --strand-filter 1 | |||||
>>> | |||||
runtime { | |||||
docker: docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File varscan_snp = "${sample}.VarScan.SNP.vcf" | |||||
File varscan_indel = "${sample}.VarScan.INDEL.vcf" | |||||
} | |||||
} |
task somaticFilter { | |||||
String sample | |||||
File varscan_snp_somatic_hc | |||||
File varscan_snp_germline_hc | |||||
File varscan_snp_loh_hc | |||||
File varscan_indel_somatic_hc | |||||
File varscan_indel_germline_hc | |||||
File varscan_indel_loh_hc | |||||
File varscan_indel | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_snp_somatic_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${varscan_indel} --output-file ${sample}.VarScan.SNP.Somatic.filter.vcf | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_snp_germline_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${varscan_indel} --output-file ${sample}.VarScan.SNP.Germline.filter.vcf | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_snp_loh_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --indel-file ${varscan_indel} --output-file ${sample}.VarScan.SNP.LOH.filter.vcf | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_indel_somatic_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Somatic.filter.vcf | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_indel_germline_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.Germline.filter.vcf | |||||
java -Xmx32g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${varscan_indel_loh_hc} --min-coverage 10 --min-reads2 2 --min-strands2 1 --min-avg-qual 20 --p-value 0.1 --output-file ${sample}.VarScan.INDEL.LOH.filter.vcf | |||||
# Merge SNP and INDEL | |||||
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Somatic.filter.vcf | cat ${sample}.VarScan.INDEL.Somatic.filter.vcf - > ${sample}.VarScan.Somatic.filter.vcf | |||||
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.Germline.filter.vcf | cat ${sample}.VarScan.INDEL.Germline.filter.vcf - > ${sample}.VarScan.Germline.filter.vcf | |||||
awk '{if ($1!~/^#/) print}' ${sample}.VarScan.SNP.LOH.filter.vcf | cat ${sample}.VarScan.INDEL.LOH.filter.vcf - > ${sample}.VarScan.LOH.filter.vcf | |||||
>>> | |||||
runtime { | |||||
docker: docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File varscan_somatic_filter = "${sample}.VarScan.Somatic.filter.vcf" | |||||
File varscan_germline_filter = "${sample}.VarScan.Germline.filter.vcf" | |||||
File varscan_loh_filter = "${sample}.VarScan.LOH.filter.vcf" | |||||
} | |||||
} |
import "./tasks/qualimap.wdl" as qualimap | import "./tasks/qualimap.wdl" as qualimap | ||||
import "./tasks/TNscope.wdl" as TNscope | import "./tasks/TNscope.wdl" as TNscope | ||||
import "./tasks/somatic.wdl" as somatic | |||||
import "./tasks/processSomatic.wdl" as processSomatic | |||||
import "./tasks/somaticFilter.wdl" as somaticFilter | |||||
import "./tasks/VarScan.wdl" as VarScan | |||||
workflow {{ project_name }} { | workflow {{ project_name }} { | ||||
disk_size=disk_size | disk_size=disk_size | ||||
} | } | ||||
call somatic.somatic as somatic { | |||||
call VarScan.VarScan as VarScan { | |||||
input: | input: | ||||
sample=sample_id, | sample=sample_id, | ||||
normal_bam=normal_BQSR.recaled_bam, | normal_bam=normal_BQSR.recaled_bam, | ||||
cluster_config=cluster_16cpu_32gb | cluster_config=cluster_16cpu_32gb | ||||
} | } | ||||
call processSomatic.processSomatic as processSomatic { | |||||
input: | |||||
sample=sample_id, | |||||
varscan_snp=somatic.varscan_snp, | |||||
varscan_indel=somatic.varscan_indel, | |||||
docker=varscan_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_16cpu_32gb | |||||
} | |||||
call somaticFilter.somaticFilter as somaticFilter { | |||||
input: | |||||
sample=sample_id, | |||||
varscan_snp_somatic_hc=processSomatic.varscan_snp_somatic_hc, | |||||
varscan_snp_germline_hc=processSomatic.varscan_snp_germline_hc, | |||||
varscan_snp_loh_hc=processSomatic.varscan_snp_loh_hc, | |||||
varscan_indel_somatic_hc=processSomatic.varscan_indel_somatic_hc, | |||||
varscan_indel_germline_hc=processSomatic.varscan_indel_germline_hc, | |||||
varscan_indel_loh_hc=processSomatic.varscan_indel_loh_hc, | |||||
varscan_indel=somatic.varscan_indel, | |||||
docker=varscan_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_16cpu_32gb | |||||
} | |||||
call bcftools.bcftools as VarScan_bcftools { | call bcftools.bcftools as VarScan_bcftools { | ||||
input: | input: | ||||
vcf=somaticFilter.varscan_somatic_filter, | |||||
vcf=VarScan.varscan_somatic, | |||||
fasta=fasta, | fasta=fasta, | ||||
ref_dir=ref_dir, | ref_dir=ref_dir, | ||||
docker=bcftools_docker, | docker=bcftools_docker, |