Explorar el Código

Add processSomatic and somaticFilter; motify annovar and vcf2maf module

master
YaqingLiu hace 4 años
padre
commit
3f5b4b2ec9
Se han modificado 6 ficheros con 186 adiciones y 39 borrados
  1. +7
    -11
      tasks/annovar.wdl
  2. +31
    -0
      tasks/processSomatic.wdl
  3. +7
    -7
      tasks/somatic.wdl
  4. +37
    -0
      tasks/somaticFilter.wdl
  5. +5
    -6
      tasks/vcf2maf.wdl
  6. +99
    -15
      workflow.wdl

+ 7
- 11
tasks/annovar.wdl Ver fichero

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"
} }
} }

+ 31
- 0
tasks/processSomatic.wdl Ver fichero

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"
}
}

tasks/varscan.wdl → tasks/somatic.wdl Ver fichero

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/"

+ 37
- 0
tasks/somaticFilter.wdl Ver fichero

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"
}
}

+ 5
- 6
tasks/vcf2maf.wdl Ver fichero

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"
} }
} }

+ 99
- 15
workflow.wdl Ver fichero

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
} }

Cargando…
Cancelar
Guardar