task annovar { | task annovar { | ||||
File varscan_snp | |||||
File varscan_indel | |||||
File database | |||||
String sample | String sample | ||||
File vcf | |||||
String annotated_vcf = basename(vcf,".vcf") | |||||
File database | |||||
String docker | String docker | ||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
set -o pipefail | set -o pipefail | ||||
set -e | set -e | ||||
nt=$(nproc) | nt=$(nproc) | ||||
/installations/annovar/table_annovar.pl ${varscan_snp} ${database} -buildver hg38 -out ${sample}_varscan_snp -remove -protocol refGene,ensGene,knownGene,cytoBand,genomicSuperDups,ljb26_all,dbnsfp35c,intervar_20180118,cosmic70,exac03,gnomad211_exome,clinvar_20200316 -operation g,g,g,r,r,f,f,f,f,f,f,f -nastring . -vcfinput -thread $nt | |||||
/installations/annovar/table_annovar.pl ${varscan_indel} ${database} -buildver hg38 -out ${sample}_varscan_indel -remove -protocol refGene,ensGene,knownGene,cytoBand,genomicSuperDups,ljb26_all,dbnsfp35c,intervar_20180118,cosmic70,exac03,gnomad211_exome,clinvar_20200316 -operation g,g,g,r,r,f,f,f,f,f,f,f -nastring . -vcfinput -thread $nt | |||||
/installations/annovar/table_annovar.pl ${vcf} ${database} -buildver hg38 -out ${annotated_vcf} -remove -protocol refGene,ensGene,knownGene,cytoBand,genomicSuperDups,ljb26_all,dbnsfp35c,intervar_20180118,cosmic70,exac03,gnomad211_exome,clinvar_20200316 -operation g,g,g,r,r,f,f,f,f,f,f,f -nastring . -vcfinput -thread $nt | |||||
>>> | >>> | ||||
runtime { | runtime { | ||||
} | } | ||||
output { | output { | ||||
File avinput_varscan_snp = "${sample}_varscan_snp.avinput" | |||||
File multianno_varscan_snp_txt = "${sample}_varscan_snp.hg38_multianno.txt" | |||||
File multianno_varscan_snp = "${sample}_varscan_snp.hg38_multianno.vcf" | |||||
File avinput_varscan_indel = "${sample}_varscan_indel.avinput" | |||||
File multianno_varscan_indel_txt = "${sample}_varscan_indel.hg38_multianno.txt" | |||||
File multianno_varscan_indel = "${sample}_varscan_indel.hg38_multianno.vcf" | |||||
File avinput = "${annotated_vcf}.avinput" | |||||
File multianno_txt = "${annotated_vcf}.hg38_multianno.txt" | |||||
File multianno = "${annotated_vcf}.hg38_multianno.vcf" | |||||
} | } | ||||
} | } |
task processSomatic { | |||||
String sample | |||||
File varscan_snp | |||||
File varscan_indel | |||||
File ref_dir | |||||
String fasta | |||||
String varscan_docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
java -Xmx12g -jar /opt/VarScan.v2.4.3.jar processSomatic ${varscan_snp} | |||||
java -Xmx12g -jar /opt/VarScan.v2.4.3.jar processSomatic ${varscan_indel} | |||||
>>> | |||||
runtime { | |||||
docker: docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File varscan_snp_somatic_hc = "${sample}.VarScan.TN.SNP.Somatic.hc.vcf" | |||||
File varscan_snp_loh_hc = "${sample}.VarScan.TN.SNP.LOH.hc.vcf" | |||||
File varscan_indel_somatic_hc = "${sample}.VarScan.TN.INDEL.Somatic.hc.vcf" | |||||
File varscan_indel_loh_hc = "${sample}.VarScan.TN.INDEL.LOH.hc.vcf" | |||||
} | |||||
} |
task varscan { | task varscan { | ||||
File ref_dir | |||||
String fasta | |||||
String sample | |||||
File normal_bam | File normal_bam | ||||
File normal_bam_index | File normal_bam_index | ||||
File tumor_bam | File tumor_bam | ||||
File tumor_bam_index | File tumor_bam_index | ||||
String sample | |||||
String varscan_docker | |||||
File ref_dir | |||||
String fasta | |||||
String docker | |||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
command <<< | command <<< | ||||
samtools mpileup -f ${ref_dir}/${fasta} -B ${normal_bam} ${tumor_bam} | java -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.TN.SNP --output-indel ${sample}.VarScan.TN.INDEL --strand-filter 1 | |||||
samtools mpileup -f ${ref_dir}/${fasta} -B ${normal_bam} ${tumor_bam} | java -Xmx12g -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.TN.SNP --output-indel ${sample}.VarScan.TN.INDEL --strand-filter 1 | |||||
>>> | >>> | ||||
runtime { | runtime { | ||||
docker:varscan_docker | |||||
docker: docker | |||||
cluster: cluster_config | cluster: cluster_config | ||||
systemDisk: "cloud_ssd 40" | systemDisk: "cloud_ssd 40" | ||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" |
task somaticFilter { | |||||
String sample | |||||
File varscan_snp_somatic_hc | |||||
File varscan_snp_loh_hc | |||||
File varscan_indel_somatic_hc | |||||
File varscan_indel_loh_hc | |||||
File varscan_indel | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
java -Xmx12g -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.TN.SNP.Somatic.filter.vcf | |||||
java -Xmx12g -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.TN.SNP.LOH.filter.vcf | |||||
java -Xmx12g -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.TN.INDEL.Somatic.filter.vcf | |||||
java -Xmx12g -jar /opt/VarScan.v2.4.3.jar somaticFilter ${i}.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.TN.INDEL.LOH.filter.vcf | |||||
>>> | |||||
runtime { | |||||
docker: docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File varscan_snp_somatic_filter = "${sample}.VarScan.TN.SNP.Somatic.filter.vcf" | |||||
File varscan_snp_loh_filter = "${sample}.VarScan.TN.SNP.LOH.filter.vcf" | |||||
File varscan_indel_somatic_filter = "${sample}.VarScan.TN.INDEL.Somatic.filter.vcf" | |||||
File varscan_indel_loh_filter = "${sample}.VarScan.TN.INDEL.LOH.filter.vcf" | |||||
} | |||||
} |
task vcf2maf { | task vcf2maf { | ||||
File multianno_varscan_snp_txt | |||||
File multianno_varscan_indel_txt | |||||
String sample | String sample | ||||
File multianno_txt | |||||
String maf = basename(multianno_txt,".hg38_multianno.txt") | |||||
String docker | String docker | ||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
command <<< | command <<< | ||||
vcf2maf ${multianno_varscan_snp_txt} ${sample}_varscan_snp.MAF | |||||
vcf2maf ${multianno_varscan_indel_txt} ${sample}_varscan_indel.MAF | |||||
vcf2maf ${multianno_txt} ${maf}.maf | |||||
>>> | >>> | ||||
runtime { | runtime { | ||||
} | } | ||||
output { | output { | ||||
File varscan_snp_maf = "${sample}_varscan_snp.MAF" | |||||
File varscan_indel_maf = "${sample}_varscan_indel.MAF" | |||||
File maf = "${maf}.maf" | |||||
} | } | ||||
} | } |
import "./tasks/varscan.wdl" as varscan | |||||
import "./tasks/somatic.wdl" as somatic | |||||
import "./tasks/processSomatic.wdl" as processSomatic | |||||
import "./tasks/somaticFilter.wdl" as somaticFilter | |||||
import "./tasks/annovar.wdl" as annovar | import "./tasks/annovar.wdl" as annovar | ||||
import "./tasks/vcf2maf.wdl" as vcf2maf | import "./tasks/vcf2maf.wdl" as vcf2maf | ||||
String varscan_docker | String varscan_docker | ||||
String annovar_docker | String annovar_docker | ||||
String maftools_docker | String maftools_docker | ||||
String disk_size | |||||
String cluster_config | |||||
File ref_dir | File ref_dir | ||||
String fasta | String fasta | ||||
File dbmills_dir | File dbmills_dir | ||||
File dbsnp_dir | File dbsnp_dir | ||||
String dbsnp | String dbsnp | ||||
File regions | File regions | ||||
String disk_size | |||||
String cluster_config | |||||
File database | File database | ||||
call varscan.varscan as varscan { | |||||
call somatic.somatic as somatic { | |||||
input: | input: | ||||
ref_dir=ref_dir, | |||||
fasta=fasta, | |||||
sample=sample_id, | |||||
normal_bam=normal_recaled_bam, | normal_bam=normal_recaled_bam, | ||||
tumor_bam=tumor_recaled_bam, | tumor_bam=tumor_recaled_bam, | ||||
normal_bam_index=normal_recaled_bam_index, | normal_bam_index=normal_recaled_bam_index, | ||||
tumor_bam_index=tumor_recaled_bam_index, | tumor_bam_index=tumor_recaled_bam_index, | ||||
ref_dir=ref_dir, | |||||
fasta=fasta, | |||||
docker=varscan_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call processSomatic.processSomatic as processSomatic { | |||||
input: | |||||
sample=sample_id, | sample=sample_id, | ||||
varscan_docker=varscan_docker, | |||||
varscan_snp=somatic.varscan_snp, | |||||
varscan_indel=somatic.varscan_indel, | |||||
ref_dir=ref_dir, | |||||
fasta=fasta, | |||||
docker=varscan_docker, | |||||
disk_size=disk_size, | disk_size=disk_size, | ||||
cluster_config=cluster_config | cluster_config=cluster_config | ||||
} | } | ||||
call annovar.annovar as annovar { | |||||
call somaticFilter.somaticFilter as somaticFilter { | |||||
input: | input: | ||||
sample=sample_id, | |||||
varscan_snp_somatic_hc=processSomatic.varscan_snp_somatic_hc, | |||||
varscan_snp_loh_hc=processSomatic.varscan_snp_loh_hc, | |||||
varscan_indel_somatic_hc=processSomatic.varscan_indel_somatic_hc, | |||||
varscan_indel_loh_hc=processSomatic.varscan_indel_loh_hc, | |||||
varscan_indel=somatic.varscan_indel, | |||||
ref_dir=ref_dir, | |||||
fasta=fasta, | |||||
docker=varscan_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call annovar.annovar as snp_somatic_annovar { | |||||
input: | |||||
sample=sample_id, | |||||
vcf=somaticFilter.varscan_snp_somatic_filter, | |||||
database=database, | |||||
docker=annovar_docker, | docker=annovar_docker, | ||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call vcf2maf.vcf2maf as snp_somatic_vcf2maf { | |||||
input: | |||||
sample=sample_id, | |||||
multianno_txt=snp_somatic_annovar.multianno_txt, | |||||
docker=maftools_docker, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call annovar.annovar as snp_loh_annovar { | |||||
input: | |||||
sample=sample_id, | |||||
vcf=somaticFilter.varscan_snp_loh_filter, | |||||
database=database, | database=database, | ||||
varscan_snp=varscan.varscan_snp, | |||||
varscan_indel=varscan.varscan_indel, | |||||
docker=annovar_docker, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call vcf2maf.vcf2maf as snp_loh_vcf2maf { | |||||
input: | |||||
sample=sample_id, | |||||
multianno_txt=snp_loh_annovar.multianno_txt, | |||||
docker=maftools_docker, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call annovar.annovar as indel_somatic_annovar { | |||||
input: | |||||
sample=sample_id, | sample=sample_id, | ||||
vcf=somaticFilter.varscan_indel_somatic_filter, | |||||
database=database, | |||||
docker=annovar_docker, | |||||
cluster_config=cluster_config, | cluster_config=cluster_config, | ||||
disk_size=disk_size | disk_size=disk_size | ||||
} | } | ||||
call vcf2maf.vcf2maf as vcf2maf { | |||||
call vcf2maf.vcf2maf as indel_somatic_vcf2maf { | |||||
input: | input: | ||||
sample=sample_id, | |||||
multianno_txt=indel_somatic_annovar.multianno_txt, | |||||
docker=maftools_docker, | docker=maftools_docker, | ||||
multianno_varscan_snp_txt=annovar.multianno_varscan_snp_txt, | |||||
multianno_varscan_indel_txt=annovar.multianno_varscan_indel_txt, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call annovar.annovar as indel_loh_annovar { | |||||
input: | |||||
sample=sample_id, | |||||
vcf=somaticFilter.varscan_indel_loh_filter, | |||||
database=database, | |||||
docker=annovar_docker, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call vcf2maf.vcf2maf as indel_loh_vcf2maf { | |||||
input: | |||||
sample=sample_id, | sample=sample_id, | ||||
multianno_txt=indel_loh_annovar.multianno_txt, | |||||
docker=maftools_docker, | |||||
cluster_config=cluster_config, | cluster_config=cluster_config, | ||||
disk_size=disk_size | disk_size=disk_size | ||||
} | } |