@@ -0,0 +1,15 @@ | |||
{ | |||
"fasta": "GRCh38.d1.vd1.fa", | |||
"ref_dir": "oss://pgx-reference-data/GRCh38.d1.vd1/", | |||
"dbsnp": "dbsnp_146.hg38.vcf", | |||
"dbsnp_dir": "oss://pgx-reference-data/GRCh38.d1.vd1/", | |||
"dbmills_dir": "oss://pgx-reference-data/GRCh38.d1.vd1/", | |||
"db_mills": "Mills_and_1000G_gold_standard.indels.hg38.vcf", | |||
"annovar_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/annovar:v2018.04", | |||
"maftools_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/r-base:4.0.2", | |||
"varscan_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/varscan2:v2.4.3", | |||
"database": "oss://pgx-reference-data/annovar_hg38/", | |||
"regions": "oss://pgx-reference-data/reference/wes_bedfiles/agilent_v6/SureSelect_Human_All_Exon_V6_r2.bed", | |||
"disk_size": "200", | |||
"cluster_config": "OnDemand bcs.a2.3xlarge img-ubuntu-vpc" | |||
} |
@@ -0,0 +1,20 @@ | |||
{ | |||
"{{ project_name }}.sample_id": "{{ sample_id }}", | |||
"{{ project_name }}.normal_recaled_bam": "{{ normal_recaled_bam }}", | |||
"{{ project_name }}.tumor_recaled_bam": "{{ tumor_recaled_bam }}", | |||
"{{ project_name }}.normal_recaled_bam_index": "{{ normal_recaled_bam_index }}", | |||
"{{ project_name }}.tumor_recaled_bam_index": "{{ tumor_recaled_bam_index }}", | |||
"{{ project_name }}.fasta": "{{ fasta }}", | |||
"{{ project_name }}.ref_dir": "{{ ref_dir }}", | |||
"{{ project_name }}.dbsnp": "{{ dbsnp }}", | |||
"{{ project_name }}.dbsnp_dir": "{{ dbsnp_dir }}", | |||
"{{ project_name }}.dbmills_dir": "{{ dbmills_dir }}", | |||
"{{ project_name }}.db_mills": "{{ db_mills }}", | |||
"{{ project_name }}.varscan_docker": "{{ varscan_docker }}", | |||
"{{ project_name }}.annovar_docker": "{{ annovar_docker }}", | |||
"{{ project_name }}.maftools_docker": "{{ maftools_docker }}", | |||
"{{ project_name }}.database": "{{ database }}", | |||
"{{ project_name }}.regions": "{{ regions }}", | |||
"{{ project_name }}.disk_size": "{{ disk_size }}", | |||
"{{ project_name }}.cluster_config": "{{ cluster_config }}" | |||
} |
@@ -0,0 +1,35 @@ | |||
task annovar { | |||
File varscan_snp | |||
File varscan_indel | |||
File database | |||
String sample | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
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 | |||
>>> | |||
runtime { | |||
docker: docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
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" | |||
} | |||
} |
@@ -0,0 +1,32 @@ | |||
task varscan { | |||
File ref_dir | |||
String fasta | |||
File normal_bam | |||
File normal_bam_index | |||
File tumor_bam | |||
File tumor_bam_index | |||
String sample | |||
String varscan_docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
samtools mpileup -q 1 -f ${ref_dir}/${fasta} ${normal_bam} > normal_pileup | |||
samtools mpileup -q 1 -f ${ref_dir}/${fasta} ${tumor_bam} > tumor_pileup | |||
java -jar VarScan.v2.4.3.jar somatic normal_pileup tumor_pileup --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 | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File varscan_snp = "${sample}.VarScan.TN.SNP" | |||
File varscan_indel = "${sample}.VarScan.TN.INDEL" | |||
} | |||
} |
@@ -0,0 +1,26 @@ | |||
task vcf2maf { | |||
File multianno_varscan_snp_txt | |||
File multianno_varscan_indel_txt | |||
String sample | |||
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 | |||
>>> | |||
runtime { | |||
docker: docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File varscan_snp_maf = "${sample}_varscan_snp.MAF" | |||
File varscan_indel_maf = "${sample}_varscan_indel.MAF" | |||
} | |||
} |
@@ -0,0 +1,64 @@ | |||
import "./tasks/varscan.wdl" as varscan | |||
import "./tasks/annovar.wdl" as annovar | |||
import "./tasks/vcf2maf.wdl" as vcf2maf | |||
workflow {{ project_name }} { | |||
String sample_id | |||
File normal_recaled_bam | |||
File tumor_recaled_bam | |||
File normal_recaled_bam_index | |||
File tumor_recaled_bam_index | |||
String varscan_docker | |||
String annovar_docker | |||
String maftools_docker | |||
File ref_dir | |||
String fasta | |||
File dbmills_dir | |||
String db_mills | |||
File dbsnp_dir | |||
String dbsnp | |||
File regions | |||
String disk_size | |||
String cluster_config | |||
File database | |||
call varscan.varscan as varscan { | |||
input: | |||
ref_dir=ref_dir, | |||
fasta=fasta, | |||
normal_bam=normal_recaled_bam, | |||
tumor_bam=tumor_recaled_bam, | |||
normal_bam_index=normal_recaled_bam_index, | |||
tumor_bam_index=tumor_recaled_bam_index, | |||
sample=sample_id, | |||
varscan_docker=varscan_docker, | |||
disk_size=disk_size, | |||
cluster_config=cluster_config | |||
} | |||
call annovar.annovar as annovar { | |||
input: | |||
docker=annovar_docker, | |||
database=database, | |||
varscan_snp=varscan.varscan_snp, | |||
varscan_indel=varscan.varscan_indel, | |||
sample=sample_id, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
call vcf2maf.vcf2maf as vcf2maf { | |||
input: | |||
docker=maftools_docker, | |||
multianno_varscan_snp_txt=annovar.multianno_varscan_snp_txt, | |||
multianno_varscan_indel_txt=annovar.multianno_varscan_indel_txt, | |||
sample=sample_id, | |||
cluster_config=cluster_config, | |||
disk_size=disk_size | |||
} | |||
} |