@@ -1,9 +1,9 @@ | |||
task annovar { | |||
File varscan_snp | |||
File varscan_indel | |||
File database | |||
String sample | |||
File vcf | |||
String annotated_vcf = basename(vcf,".vcf") | |||
File database | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
@@ -13,8 +13,7 @@ task annovar { | |||
set -o pipefail | |||
set -e | |||
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 { | |||
@@ -25,11 +24,8 @@ task annovar { | |||
} | |||
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" | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
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" | |||
} | |||
} |
@@ -1,23 +1,23 @@ | |||
task varscan { | |||
File ref_dir | |||
String fasta | |||
String sample | |||
File normal_bam | |||
File normal_bam_index | |||
File tumor_bam | |||
File tumor_bam_index | |||
String sample | |||
String varscan_docker | |||
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 -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 { | |||
docker:varscan_docker | |||
docker: docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" |
@@ -0,0 +1,37 @@ | |||
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" | |||
} | |||
} |
@@ -1,15 +1,15 @@ | |||
task vcf2maf { | |||
File multianno_varscan_snp_txt | |||
File multianno_varscan_indel_txt | |||
String sample | |||
File multianno_txt | |||
String maf = basename(multianno_txt,".hg38_multianno.txt") | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
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 { | |||
@@ -20,7 +20,6 @@ task vcf2maf { | |||
} | |||
output { | |||
File varscan_snp_maf = "${sample}_varscan_snp.MAF" | |||
File varscan_indel_maf = "${sample}_varscan_indel.MAF" | |||
File maf = "${maf}.maf" | |||
} | |||
} |
@@ -1,4 +1,6 @@ | |||
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/vcf2maf.wdl" as vcf2maf | |||
@@ -14,7 +16,9 @@ workflow {{ project_name }} { | |||
String varscan_docker | |||
String annovar_docker | |||
String maftools_docker | |||
String disk_size | |||
String cluster_config | |||
File ref_dir | |||
String fasta | |||
File dbmills_dir | |||
@@ -22,42 +26,122 @@ workflow {{ project_name }} { | |||
File dbsnp_dir | |||
String dbsnp | |||
File regions | |||
String disk_size | |||
String cluster_config | |||
File database | |||
call varscan.varscan as varscan { | |||
call somatic.somatic as somatic { | |||
input: | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
sample=sample_id, | |||
normal_bam=normal_recaled_bam, | |||
tumor_bam=tumor_recaled_bam, | |||
normal_bam_index=normal_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, | |||
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, | |||
cluster_config=cluster_config | |||
} | |||
call annovar.annovar as annovar { | |||
call somaticFilter.somaticFilter as somaticFilter { | |||
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, | |||
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, | |||
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, | |||
vcf=somaticFilter.varscan_indel_somatic_filter, | |||
database=database, | |||
docker=annovar_docker, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call vcf2maf.vcf2maf as vcf2maf { | |||
call vcf2maf.vcf2maf as indel_somatic_vcf2maf { | |||
input: | |||
sample=sample_id, | |||
multianno_txt=indel_somatic_annovar.multianno_txt, | |||
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, | |||
multianno_txt=indel_loh_annovar.multianno_txt, | |||
docker=maftools_docker, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} |