Bläddra i källkod

first commit

tags/v0.1.0
YaqingLiu 4 år sedan
incheckning
b9b58e0480
24 ändrade filer med 1276 tillägg och 0 borttagningar
  1. Binär
      .DS_Store
  2. +3
    -0
      .vscode/settings.json
  3. +0
    -0
      LICENSE.md
  4. +0
    -0
      README.md
  5. +26
    -0
      defaults
  6. +31
    -0
      inputs
  7. +55
    -0
      tasks/BQSR.wdl
  8. +43
    -0
      tasks/Dedup.wdl
  9. +43
    -0
      tasks/Haplotyper.wdl
  10. +57
    -0
      tasks/Metrics.wdl
  11. +41
    -0
      tasks/PON.wdl
  12. +45
    -0
      tasks/Realigner.wdl
  13. +63
    -0
      tasks/TNscope.wdl
  14. +60
    -0
      tasks/TNseq.wdl
  15. +31
    -0
      tasks/annovar.wdl
  16. +39
    -0
      tasks/bcftools.wdl
  17. +45
    -0
      tasks/corealigner.wdl
  18. +37
    -0
      tasks/deduped_Metrics.wdl
  19. +35
    -0
      tasks/mapping.wdl
  20. +40
    -0
      tasks/processSomatic.wdl
  21. +30
    -0
      tasks/somatic.wdl
  22. +45
    -0
      tasks/somaticFilter.wdl
  23. +25
    -0
      tasks/vcf2maf.wdl
  24. +482
    -0
      workflow.wdl

Binär
.DS_Store Visa fil


+ 3
- 0
.vscode/settings.json Visa fil

@@ -0,0 +1,3 @@
{
"python.pythonPath": "/usr/bin/python"
}

+ 0
- 0
LICENSE.md Visa fil


+ 0
- 0
README.md Visa fil


+ 26
- 0
defaults Visa fil

@@ -0,0 +1,26 @@
{
"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/",
"SENTIEON_INSTALL_DIR": "/opt/sentieon-genomics",
"SENTIEON_LICENSE": "192.168.0.55:8990",
"dbmills_dir": "oss://pgx-reference-data/GRCh38.d1.vd1/",
"db_mills": "Mills_and_1000G_gold_standard.indels.hg38.vcf",
"sentieon_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/sentieon-genomics:v2019.11.28",
"varscan_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/varscan2:v2.4.3",
"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",
"bcftools_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9",
"database": "oss://pgx-reference-data/annovar_hg38/",
"regions": "oss://pgx-reference-data/reference/wes_bedfiles/agilent_v6/SureSelect_Human_All_Exon_V6_r2.bed",
"set_pon": "true",
"cosmic_vcf": "CosmicCodingMuts.hg38.v91.vcf",
"cosmic_dir": "oss://pgx-reference-data/reference/cosmic/",
"disk_size": "200",
"cluster_config": "OnDemand bcs.a2.3xlarge img-ubuntu-vpc",
"germline": "false",
"TNseq": "true",
"TNscope": "true",
"Varscan": "true"
}

+ 31
- 0
inputs Visa fil

@@ -0,0 +1,31 @@
{
"{{ project_name }}.sample_id": "{{ sample_id }}",
"{{ project_name }}.tumor_fastq_1": "{{ tumor_fastq_1 }}",
"{{ project_name }}.tumor_fastq_2": "{{ tumor_fastq_2 }}",
"{{ project_name }}.normal_fastq_1": "{{ normal_fastq_1 }}",
"{{ project_name }}.normal_fastq_2": "{{ normal_fastq_2 }}",
"{{ project_name }}.fasta": "{{ fasta }}",
"{{ project_name }}.ref_dir": "{{ ref_dir }}",
"{{ project_name }}.dbsnp": "{{ dbsnp }}",
"{{ project_name }}.dbsnp_dir": "{{ dbsnp_dir }}",
"{{ project_name }}.SENTIEON_INSTALL_DIR": "{{ SENTIEON_INSTALL_DIR }}",
"{{ project_name }}.SENTIEON_LICENSE": "{{ SENTIEON_LICENSE }}",
"{{ project_name }}.dbmills_dir": "{{ dbmills_dir }}",
"{{ project_name }}.db_mills": "{{ db_mills }}",
"{{ project_name }}.sentieon_docker": "{{ sentieon_docker }}",
"{{ 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 }}.set_pon": {{ set_pon }},
"{{ project_name }}.pon_vcf": "{{ pon_vcf }}",
"{{ project_name }}.cosmic_vcf": "{{ cosmic_vcf }}",
"{{ project_name }}.cosmic_dir": "{{ cosmic_dir }}",
"{{ project_name }}.disk_size": "{{ disk_size }}",
"{{ project_name }}.cluster_config": "{{ cluster_config }}",
"{{ project_name }}.germline": {{ germline }},
"{{ project_name }}.TNseq": {{ TNseq }},
"{{ project_name }}.TNscope": {{ TNscope }},
"{{ project_name }}.Varscan": {{ Varscan }}
}

+ 55
- 0
tasks/BQSR.wdl Visa fil

@@ -0,0 +1,55 @@
task BQSR {
File ref_dir
File dbsnp_dir
File dbmills_dir
String sample
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String fasta
File? regions
String dbsnp
String db_mills
File realigned_bam
File realigned_bam_index
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
if [ ${regions} != "" ]; then
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam} --interval ${regions} --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table
else
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam} --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table
fi
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam} -q ${sample}_recal_data.table --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table.post --algo ReadWriter ${sample}.sorted.deduped.realigned.recaled.bam
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt --algo QualCal --plot --before ${sample}_recal_data.table --after ${sample}_recal_data.table.post ${sample}_recal_data.csv
${SENTIEON_INSTALL_DIR}/bin/sentieon plot bqsr -o ${sample}_bqsrreport.pdf ${sample}_recal_data.csv
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File recal_table = "${sample}_recal_data.table"
File recal_post = "${sample}_recal_data.table.post"
File recaled_bam = "${sample}.sorted.deduped.realigned.recaled.bam"
File recaled_bam_index = "${sample}.sorted.deduped.realigned.recaled.bam.bai"
File recal_csv = "${sample}_recal_data.csv"
File bqsrreport_pdf = "${sample}_bqsrreport.pdf"
}
}

+ 43
- 0
tasks/Dedup.wdl Visa fil

@@ -0,0 +1,43 @@
task Dedup {
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String sample
File sorted_bam
File sorted_bam_index
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -i ${sorted_bam} --algo LocusCollector --fun score_info ${sample}_score.txt
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -i ${sorted_bam} --algo Dedup --rmdup --score_info ${sample}_score.txt --metrics ${sample}_dedup_metrics.txt ${sample}.sorted.deduped.bam
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File score = "${sample}_score.txt"
File dedup_metrics = "${sample}_dedup_metrics.txt"
File Dedup_bam = "${sample}.sorted.deduped.bam"
File Dedup_bam_index = "${sample}.sorted.deduped.bam.bai"
}
}

+ 43
- 0
tasks/Haplotyper.wdl Visa fil

@@ -0,0 +1,43 @@
task Haplotyper {
File ref_dir
File dbsnp_dir
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String fasta
File recaled_bam
File recaled_bam_index
File? regions
String dbsnp
String sample
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
if [ ${regions} != "" ]; then
${SENTIEON_INSTALL_DIR}/bin/sentieon driver --interval ${regions} -r ${ref_dir}/${fasta} -t $nt -i ${recaled_bam} --algo Haplotyper -d ${dbsnp_dir}/${dbsnp} ${sample}_hc.vcf
else
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${recaled_bam} --algo Haplotyper -d ${dbsnp_dir}/${dbsnp} ${sample}_hc.vcf
fi
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File vcf = "${sample}_hc.vcf"
File vcf_idx = "${sample}_hc.vcf.idx"
}
}

+ 57
- 0
tasks/Metrics.wdl Visa fil

@@ -0,0 +1,57 @@
task Metrics {
File ref_dir
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String sample
String docker
String cluster_config
String fasta
File sorted_bam
File sorted_bam_index
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${sorted_bam} --algo MeanQualityByCycle ${sample}_mq_metrics.txt --algo QualDistribution ${sample}_qd_metrics.txt --algo GCBias --summary ${sample}_gc_summary.txt ${sample}_gc_metrics.txt --algo AlignmentStat ${sample}_aln_metrics.txt --algo InsertSizeMetricAlgo ${sample}_is_metrics.txt --algo CoverageMetrics --omit_base_output ${sample}_coverage_metrics
${SENTIEON_INSTALL_DIR}/bin/sentieon plot metrics -o ${sample}_metrics_report.pdf gc=${sample}_gc_metrics.txt qd=${sample}_qd_metrics.txt mq=${sample}_mq_metrics.txt isize=${sample}_is_metrics.txt
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File qd_metrics = "${sample}_qd_metrics.txt"
File qd_metrics_pdf = "${sample}_qd_metrics.pdf"
File mq_metrics = "${sample}_mq_metrics.txt"
File mq_metrics_pdf = "${sample}_mq_metrics.pdf"
File is_metrics = "${sample}_is_metrics.txt"
File is_metrics_pdf = "${sample}_is_metrics.pdf"
File gc_summary = "${sample}_gc_summary.txt"
File gc_metrics = "${sample}_gc_metrics.txt"
File gc_metrics_pdf = "${sample}_gc_metrics.pdf"
File aln_metrics = "${sample}_aln_metrics.txt"
File coverage_metrics_sample_summary = "${sample}_coverage_metrics.sample_summary"
File coverage_metrics_sample_statistics = "${sample}_coverage_metrics.sample_statistics"
File coverage_metrics_sample_interval_statistics = "${sample}_coverage_metrics.sample_interval_statistics"
File coverage_metrics_sample_cumulative_coverage_proportions = "${sample}_coverage_metrics.sample_cumulative_coverage_proportions"
File coverage_metrics_sample_cumulative_coverage_counts = "${sample}_coverage_metrics.sample_cumulative_coverage_counts"
}
}

+ 41
- 0
tasks/PON.wdl Visa fil

@@ -0,0 +1,41 @@
task PON {

String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String sample

File ref_dir
String fasta
File cosmic_dir
String cosmic_vcf
File dbsnp_dir
String dbsnp

File normal_recaled_bam
File normal_recaled_bam_index
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
mkdir -p /cromwell_root/tmp/cosmic/
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/cosmic/
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/cosmic/${cosmic_vcf}
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${normal_recaled_bam} --algo TNhaplotyper --detect_pon --cosmic /cromwell_root/tmp/cosmic/${cosmic_vcf} --dbsnp ${dbsnp_dir}/${dbsnp} ${sample}_pon.vcf
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}

output {
File pon_vcf = "${sample}_pon.vcf"
}
}

+ 45
- 0
tasks/Realigner.wdl Visa fil

@@ -0,0 +1,45 @@
task Realigner {
File ref_dir
File dbmills_dir
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String sample
String fasta
File? regions
File Dedup_bam
File Dedup_bam_index
String db_mills
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
if [ ${regions} != "" ]; then
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${Dedup_bam} --algo Realigner -k ${dbmills_dir}/${db_mills} --interval_list ${regions} ${sample}.sorted.deduped.realigned.bam
else
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${Dedup_bam} --algo Realigner -k ${dbmills_dir}/${db_mills} ${sample}.sorted.deduped.realigned.bam
fi
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File realigner_bam = "${sample}.sorted.deduped.realigned.bam"
File realigner_bam_index = "${sample}.sorted.deduped.realigned.bam.bai"
}
}

+ 63
- 0
tasks/TNscope.wdl Visa fil

@@ -0,0 +1,63 @@
task TNscope {
File ref_dir
File dbsnp_dir
File? regions
String sample
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String tumor_name
String normal_name
String docker
String cluster_config
String fasta
File? corealigner_bam
File? corealigner_bam_index
File tumor_recaled_bam
File tumor_recaled_bam_index
String dbsnp
String disk_size
Boolean set_pon
String? cosmic_vcf
File? cosmic_dir
File? pon_vcf
String pon_command = if set_pon then "--pon /cromwell_root/tmp/PON/$(basename ${pon_vcf}) --cosmic /cromwell_root/tmp/PON/${cosmic_vcf}" else ""
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
if ${set_pon}; then
mkdir -p /cromwell_root/tmp/PON/
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/PON/
cp ${pon_vcf} /cromwell_root/tmp/PON/
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/${cosmic_vcf}
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/$(basename ${pon_vcf})
fi
if [ ${regions} != "" ]; then
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt --interval ${regions} -r ${ref_dir}/${fasta} -i ${corealigner_bam} --algo TNscope --tumor_sample ${tumor_name} --normal_sample ${normal_name} --dbsnp ${dbsnp_dir}/${dbsnp} ${pon_command} ${sample}.TNscope.TN.vcf
else
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${corealigner_bam} --algo TNscope --tumor_sample ${tumor_name} --normal_sample ${normal_name} --dbsnp ${dbsnp_dir}/${dbsnp} ${pon_command} ${sample}.TNscope.TN.vcf
fi
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File TNscope_vcf= "${sample}.TNscope.TN.vcf"
File TNscope_vcf_index = "${sample}.TNscope.TN.vcf.idx"
}
}

+ 60
- 0
tasks/TNseq.wdl Visa fil

@@ -0,0 +1,60 @@
task TNseq {
File ref_dir
File dbsnp_dir
File? regions
String sample
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String tumor_name
String normal_name
String docker
String cluster_config
String fasta
File? corealigner_bam
File? corealigner_bam_index
File tumor_recaled_bam
File tumor_recaled_bam_index
String dbsnp
String disk_size
Boolean set_pon
String? cosmic_vcf
File? cosmic_dir
File? pon_vcf
String pon_command = if set_pon then "--pon /cromwell_root/tmp/PON/$(basename ${pon_vcf}) --cosmic /cromwell_root/tmp/PON/${cosmic_vcf}" else ""
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
if ${set_pon}; then
mkdir -p /cromwell_root/tmp/PON/
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/PON/
cp ${pon_vcf} /cromwell_root/tmp/PON/
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/${cosmic_vcf}
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/$(basename ${pon_vcf})
fi
if [ ${regions} != "" ]; then
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt --interval ${regions} -r ${ref_dir}/${fasta} -i ${corealigner_bam} --algo TNhaplotyper --tumor_sample ${tumor_name} --normal_sample ${normal_name} --dbsnp ${dbsnp_dir}/${dbsnp} ${pon_command} ${sample}.TNseq.TN.vcf
else
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${corealigner_bam} --algo TNhaplotyper --tumor_sample ${tumor_name} --normal_sample ${normal_name} --dbsnp ${dbsnp_dir}/${dbsnp} ${pon_command} ${sample}.TNseq.TN.vcf
fi
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File TNseq_vcf= "${sample}.TNseq.TN.vcf"
File TNseq_vcf_index = "${sample}.TNseq.TN.vcf.idx"
}
}

+ 31
- 0
tasks/annovar.wdl Visa fil

@@ -0,0 +1,31 @@
task annovar {

String sample
File vcf
String annotated_vcf = basename(vcf,".vcf")
File database
String docker
String cluster_config
String disk_size


command <<<
set -o pipefail
set -e
nt=$(nproc)
/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 {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}

output {
File avinput = "${annotated_vcf}.avinput"
File multianno_txt = "${annotated_vcf}.hg38_multianno.txt"
File multianno = "${annotated_vcf}.hg38_multianno.vcf"
}
}

+ 39
- 0
tasks/bcftools.wdl Visa fil

@@ -0,0 +1,39 @@
task bcftools {

Array[File] pon_vcf
String docker
String cluster_config
String disk_size
Boolean set_pon


command <<<
set -o pipefail
set -e
if ${set_pon} ; then
mkdir -p /cromwell_root/tmp/bcftools/
for i in ${sep=" " pon_vcf}
do
bcftools view $i -Oz -o /cromwell_root/tmp/bcftools/$i.gz
done
bcftools merge -m any -f PASS,. --force-samples /cromwell_root/tmp/bcftools/*.vcf.gz |\
bcftools plugin fill-AN-AC |\
bcftools filter -i 'SUM(AC)>1' > panel_of_normal.vcf
else
touch panel_of_normal.vcf
fi
>>>

runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File panel_of_normal_vcf = "panel_of_normal.vcf"
}
}

+ 45
- 0
tasks/corealigner.wdl Visa fil

@@ -0,0 +1,45 @@
task corealigner {
File ref_dir
File dbsnp_dir
File dbmills_dir
String sample
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String docker
String cluster_config
String fasta
String dbsnp
String db_mills
File tumor_recaled_bam
File tumor_recaled_bam_index
File normal_recaled_bam
File normal_recaled_bam_index
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${tumor_recaled_bam} -i ${normal_recaled_bam} --algo Realigner -k ${dbmills_dir}/${db_mills} -k ${dbsnp_dir}/${dbsnp} ${sample}_corealigned.bam
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File corealigner_bam = "${sample}_corealigned.bam"
File corealigner_bam_index = "${sample}_corealigned.bam.bai"
}
}

+ 37
- 0
tasks/deduped_Metrics.wdl Visa fil

@@ -0,0 +1,37 @@
task deduped_Metrics {
File ref_dir
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String sample
String fasta
File Dedup_bam
File Dedup_bam_index
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${Dedup_bam} --algo CoverageMetrics --omit_base_output ${sample}_deduped_coverage_metrics --algo MeanQualityByCycle ${sample}_deduped_mq_metrics.txt --algo QualDistribution ${sample}_deduped_qd_metrics.txt --algo GCBias --summary ${sample}_deduped_gc_summary.txt ${sample}_deduped_gc_metrics.txt --algo AlignmentStat ${sample}_deduped_aln_metrics.txt --algo InsertSizeMetricAlgo ${sample}_deduped_is_metrics.txt
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File deduped_coverage_metrics_sample_summary = "${sample}_deduped_coverage_metrics.sample_summary"
File deduped_coverage_metrics_sample_statistics = "${sample}_deduped_coverage_metrics.sample_statistics"
File deduped_coverage_metrics_sample_interval_statistics = "${sample}_deduped_coverage_metrics.sample_interval_statistics"
File deduped_coverage_metrics_sample_cumulative_coverage_proportions = "${sample}_deduped_coverage_metrics.sample_cumulative_coverage_proportions"
File deduped_coverage_metrics_sample_cumulative_coverage_counts = "${sample}_deduped_coverage_metrics.sample_cumulative_coverage_counts"
}
}

+ 35
- 0
tasks/mapping.wdl Visa fil

@@ -0,0 +1,35 @@
task mapping {
File ref_dir
String fasta
File fastq_1
File fastq_2
String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String group
String sample
String pl
String docker
String cluster_config
String disk_size
command <<<
set -o pipefail
set -e
export SENTIEON_LICENSE=${SENTIEON_LICENSE}
nt=$(nproc)
${SENTIEON_INSTALL_DIR}/bin/bwa mem -M -R "@RG\tID:${group}\tSM:${sample}\tPL:${pl}" -t $nt -K 10000000 ${ref_dir}/${fasta} ${fastq_1} ${fastq_2} | ${SENTIEON_INSTALL_DIR}/bin/sentieon util sort -o ${sample}.sorted.bam -t $nt --sam2bam -i -
>>>
runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File sorted_bam = "${sample}.sorted.bam"
File sorted_bam_index = "${sample}.sorted.bam.bai"
}
}

+ 40
- 0
tasks/processSomatic.wdl Visa fil

@@ -0,0 +1,40 @@
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 -Xmx12g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.TN.SNP.vcf
java -Xmx12g -jar /opt/VarScan.v2.4.3.jar processSomatic ${sample}.VarScan.TN.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.TN.SNP.Somatic.vcf"
File varscan_snp_germline = "${sample}.VarScan.TN.SNP.Germline.vcf"
File varscan_snp_loh = "${sample}.VarScan.TN.SNP.LOH.vcf"
File varscan_snp_somatic_hc = "${sample}.VarScan.TN.SNP.Somatic.hc.vcf"
File varscan_snp_germline_hc = "${sample}.VarScan.TN.SNP.Germline.hc.vcf"
File varscan_snp_loh_hc = "${sample}.VarScan.TN.SNP.LOH.hc.vcf"
File varscan_indel_somatic = "${sample}.VarScan.TN.INDEL.Somatic.vcf"
File varscan_indel_germline = "${sample}.VarScan.TN.INDEL.Germline.vcf"
File varscan_indel_loh = "${sample}.VarScan.TN.INDEL.LOH.vcf"
File varscan_indel_somatic_hc = "${sample}.VarScan.TN.INDEL.Somatic.hc.vcf"
File varscan_indel_germline_hc = "${sample}.VarScan.TN.INDEL.Germline.hc.vcf"
File varscan_indel_loh_hc = "${sample}.VarScan.TN.INDEL.LOH.hc.vcf"
}
}

+ 30
- 0
tasks/somatic.wdl Visa fil

@@ -0,0 +1,30 @@
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 -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: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File varscan_snp = "${sample}.VarScan.TN.SNP.vcf"
File varscan_indel = "${sample}.VarScan.TN.INDEL.vcf"
}
}

+ 45
- 0
tasks/somaticFilter.wdl Visa fil

@@ -0,0 +1,45 @@
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 -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_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.TN.SNP.Germline.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 ${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.TN.INDEL.Germline.filter.vcf

java -Xmx12g -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.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_germline_filter = "${sample}.VarScan.TN.SNP.Germline.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_germline_filter = "${sample}.VarScan.TN.INDEL.Germline.filter.vcf"
File varscan_indel_loh_filter = "${sample}.VarScan.TN.INDEL.LOH.filter.vcf"
}
}

+ 25
- 0
tasks/vcf2maf.wdl Visa fil

@@ -0,0 +1,25 @@
task vcf2maf {

String sample
File multianno_txt
String maf_name = basename(multianno_txt,".hg38_multianno.txt")

String docker
String cluster_config
String disk_size

command <<<
vcf2maf ${multianno_txt} ${maf_name}.maf
>>>

runtime {
docker: docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}

output {
File maf = "${maf_name}.maf"
}
}

+ 482
- 0
workflow.wdl Visa fil

@@ -0,0 +1,482 @@
import "./tasks/mapping.wdl" as mapping
import "./tasks/Metrics.wdl" as Metrics
import "./tasks/Dedup.wdl" as Dedup
import "./tasks/deduped_Metrics.wdl" as deduped_Metrics
import "./tasks/Realigner.wdl" as Realigner
import "./tasks/BQSR.wdl" as BQSR
import "./tasks/Haplotyper.wdl" as Haplotyper
import "./tasks/corealigner.wdl" as corealigner
import "./tasks/PON.wdl" as PON
import "./tasks/TNseq.wdl" as TNseq
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/annovar.wdl" as annovar
import "./tasks/vcf2maf.wdl" as vcf2maf


workflow {{ project_name }} {
String sample_id
File tumor_fastq_1
File tumor_fastq_2
File normal_fastq_1
File normal_fastq_2

String SENTIEON_INSTALL_DIR
String SENTIEON_LICENSE
String sentieon_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
File database
String disk_size
String cluster_config

Boolean set_pon
File? pon_vcf
File? cosmic_dir
String? cosmic_vcf

Boolean germline
Boolean TNseq
Boolean TNscope
Boolean Varscan


call mapping.mapping as tumor_mapping {
input:
group=sample_id + '_tumor',
sample=sample_id + '_tumor',
fastq_1=tumor_fastq_1,
fastq_2=tumor_fastq_2,
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
pl="ILLUMINAL",
fasta=fasta,
ref_dir=ref_dir,
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call Metrics.Metrics as tumor_Metrics {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
sorted_bam=tumor_mapping.sorted_bam,
sorted_bam_index=tumor_mapping.sorted_bam_index,
sample=sample_id + '_tumor',
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call Dedup.Dedup as tumor_Dedup {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
sorted_bam=tumor_mapping.sorted_bam,
sorted_bam_index=tumor_mapping.sorted_bam_index,
sample=sample_id + '_tumor',
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call deduped_Metrics.deduped_Metrics as tumor_deduped_Metrics {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
Dedup_bam=tumor_Dedup.Dedup_bam,
Dedup_bam_index=tumor_Dedup.Dedup_bam_index,
sample=sample_id + '_tumor',
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call Realigner.Realigner as tumor_Realigner {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
Dedup_bam=tumor_Dedup.Dedup_bam,
Dedup_bam_index=tumor_Dedup.Dedup_bam_index,
db_mills=db_mills,
dbmills_dir=dbmills_dir,
sample=sample_id + '_tumor',
docker=sentieon_docker,
disk_size=disk_size,
regions=regions,
cluster_config=cluster_config
}

call BQSR.BQSR as tumor_BQSR {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
realigned_bam=tumor_Realigner.realigner_bam,
realigned_bam_index=tumor_Realigner.realigner_bam_index,
db_mills=db_mills,
dbmills_dir=dbmills_dir,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
sample=sample_id + '_tumor',
regions=regions,
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call mapping.mapping as normal_mapping {
input:
group=sample_id + '_normal',
sample=sample_id + '_normal',
fastq_1=normal_fastq_1,
fastq_2=normal_fastq_2,
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
pl="ILLUMINAL",
fasta=fasta,
ref_dir=ref_dir,
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call Metrics.Metrics as normal_Metrics {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
sorted_bam=normal_mapping.sorted_bam,
sorted_bam_index=normal_mapping.sorted_bam_index,
sample=sample_id + '_normal',
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call Dedup.Dedup as normal_Dedup {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
sorted_bam=normal_mapping.sorted_bam,
sorted_bam_index=normal_mapping.sorted_bam_index,
sample=sample_id + '_normal',
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call deduped_Metrics.deduped_Metrics as normal_deduped_Metrics {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
Dedup_bam=normal_Dedup.Dedup_bam,
Dedup_bam_index=normal_Dedup.Dedup_bam_index,
sample=sample_id + '_normal',
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

call Realigner.Realigner as normal_Realigner {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
Dedup_bam=normal_Dedup.Dedup_bam,
Dedup_bam_index=normal_Dedup.Dedup_bam_index,
db_mills=db_mills,
dbmills_dir=dbmills_dir,
sample=sample_id + '_normal',
docker=sentieon_docker,
disk_size=disk_size,
regions=regions,
cluster_config=cluster_config
}

call BQSR.BQSR as normal_BQSR {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
realigned_bam=normal_Realigner.realigner_bam,
realigned_bam_index=normal_Realigner.realigner_bam_index,
db_mills=db_mills,
dbmills_dir=dbmills_dir,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
sample=sample_id + '_normal',
regions=regions,
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

if (germline) {
call Haplotyper.Haplotyper as Haplotyper {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
sample=sample_id + '_normal',
fasta=fasta,
ref_dir=ref_dir,
recaled_bam=normal_BQSR.recaled_bam,
recaled_bam_index=normal_BQSR.recaled_bam_index,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
regions=regions,
docker=sentieon_docker,
disk_size=disk_size,
cluster_config=cluster_config
}
}
call corealigner.corealigner as corealigner {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
sample=sample_id,
docker=sentieon_docker,
db_mills=db_mills,
dbmills_dir=dbmills_dir,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
tumor_recaled_bam=tumor_BQSR.recaled_bam,
tumor_recaled_bam_index=tumor_BQSR.recaled_bam_index,
normal_recaled_bam=normal_BQSR.recaled_bam,
normal_recaled_bam_index=normal_BQSR.recaled_bam_index,
disk_size=disk_size,
cluster_config=cluster_config
}
if (TNseq) {
call TNseq.TNseq as TNseq {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
regions=regions,
corealigner_bam=corealigner.corealigner_bam,
corealigner_bam_index=corealigner.corealigner_bam_index,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
set_pon=set_pon,
pon_vcf=pon_vcf,
cosmic_vcf=cosmic_vcf,
cosmic_dir=cosmic_dir,
tumor_name=sample_id + "_tumor",
normal_name=sample_id + "_normal",
docker=sentieon_docker,
sample=sample_id,
disk_size=disk_size,
cluster_config=cluster_config
}

call annovar.annovar as TNseq_annovar {
input:
sample=sample_id,
vcf=TNseq.TNseq_vcf,
database=database,
docker=annovar_docker,
cluster_config=cluster_config,
disk_size=disk_size
}

call vcf2maf.vcf2maf as TNseq_vcf2maf {
input:
sample=sample_id,
multianno_txt=TNseq_annovar.multianno_txt,
docker=maftools_docker,
cluster_config=cluster_config,
disk_size=disk_size
}
}

if (TNscope) {
call TNscope.TNscope as TNscope {
input:
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
SENTIEON_LICENSE=SENTIEON_LICENSE,
fasta=fasta,
ref_dir=ref_dir,
regions=regions,
corealigner_bam=corealigner.corealigner_bam,
corealigner_bam_index=corealigner.corealigner_bam_index,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
set_pon=set_pon,
pon_vcf=pon_vcf,
cosmic_vcf=cosmic_vcf,
cosmic_dir=cosmic_dir,
tumor_name=sample_id + "_tumor",
normal_name=sample_id + "_normal",
docker=sentieon_docker,
sample=sample_id,
disk_size=disk_size,
cluster_config=cluster_config
}

call annovar.annovar as TNscope_annovar {
input:
sample=sample_id,
vcf=TNscope.TNscope_vcf,
database=database,
docker=annovar_docker,
cluster_config=cluster_config,
disk_size=disk_size
}

call vcf2maf.vcf2maf as TNscope_vcf2maf {
input:
sample=sample_id,
multianno_txt=TNscope_annovar.multianno_txt,
docker=maftools_docker,
cluster_config=cluster_config,
disk_size=disk_size
}
}

if (Varscan) {
call somatic.somatic as somatic {
input:
sample=sample_id,
tumor_bam=tumor_BQSR.recaled_bam,
tumor_bam_index=tumor_BQSR.recaled_bam_index,
normal_bam=normal_BQSR.recaled_bam,
normal_bam_index=normal_BQSR.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_snp=somatic.varscan_snp,
varscan_indel=somatic.varscan_indel,
docker=varscan_docker,
disk_size=disk_size,
cluster_config=cluster_config
}

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_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,
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 indel_somatic_vcf2maf {
input:
sample=sample_id,
multianno_txt=indel_somatic_annovar.multianno_txt,
docker=maftools_docker,
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
}
}
}

Laddar…
Avbryt
Spara