pipeline/pipeline.wdl

213 lines
5.4 KiB
Plaintext

import "./wdl/qc.wdl"
import "./wdl/alignment.wdl"
import "./wdl/call_mutation.wdl"
import "./wdl/fusion.wdl"
import "./wdl/statistics.wdl"
import "./wdl/cnv.wdl"
import "./wdl/msi.wdl"
import "./wdl/chemo.wdl"
import "./wdl/hereditary.wdl"
import "./wdl/pollution.wdl"
import "./wdl/tmb.wdl"
import "./wdl/postprocess.wdl"
import "./wdl/neoantigen.wdl"
workflow pipeline {
String tumor
String? normal
Boolean umi=false
String input_dir
String output_dir
String probe
String project
String cancer
String bed="$WORKFLOW/codes/public/bed/${probe}.bed"
String ref = "/home/install/ref/hg19/hg19.fa"
String workdir="${output_dir}"
Map[String, Boolean] catecode
call qc.qc as qc {
input:
run=catecode['addQc'],
tumor=tumor,
normal=normal,
umi=umi,
input_dir=input_dir,
output_dir=workdir
}
call alignment.alignment as alignment {
input:
run=catecode['addAlignment'],
tumor=tumor,
tumor_r1=qc.tumor_r1,
tumor_r2=qc.tumor_r2,
normal=normal,
normal_r1=qc.normal_r1,
normal_r2=qc.normal_r2,
umi=umi,
ref=ref,
bed=bed,
output_dir=workdir
}
call statistics.statistics as statistics {
input:
run=catecode['addAlignment'],
tumor=tumor,
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
normal=normal,
normal_rmdup_bam=alignment.normal_rmdup_bam,
ref=ref,
bed=bed,
output_dir=workdir
}
call call_mutation.call_mutation as call_mutation {
input:
run=catecode['addTarget'],
tumor=tumor,
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
normal=normal,
normal_rmdup_bam=alignment.normal_rmdup_bam,
umi=umi,
ref=ref,
bed=bed,
output_dir=workdir,
project=project,
cancer=cancer,
probe=probe
}
call tmb.call_tmb as call_tmb {
input:
run=catecode['addTmb'],
name=tumor,
output_dir=workdir,
project=project,
umi=umi,
file=call_mutation.somatic_anno_txt
}
call fusion.call_fusion as call_fusion {
input:
run=catecode['addFusion'],
name=tumor,
sorted_bam=alignment.tumor_sorted_bam,
rmdup_bam=alignment.tumor_rmdup_bam,
output_dir=output_dir,
ref=ref,
umi=umi,
tumor_bamdst_depth=statistics.tumor_bamdst_depth,
project=project,
cancer=cancer
}
call cnv.call_cnv as call_cnv {
input:
run=catecode['addCnv'],
tumor=tumor,
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
normal=normal,
normal_rmdup_bam=alignment.normal_rmdup_bam,
ref=ref,
bed=bed,
output_dir=workdir,
project=project,
cancer=cancer,
probe=probe
}
call msi.call_msi as call_msi {
input:
run=catecode['addMsi'],
tumor=tumor,
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
normal=normal,
normal_rmdup_bam=alignment.normal_rmdup_bam,
bed=bed,
output_dir=workdir
}
call hereditary.call_hereditary as call_hereditary {
input:
run=catecode['addHcs'],
name=tumor,
output_dir=workdir,
project=project,
filter_txt=call_mutation.germline_filter
}
call chemo.call_chemo as call_chemo {
input:
run=catecode['addChemo'],
name=tumor,
output_dir=workdir,
probe=probe,
vcf=call_mutation.germline_vcf,
cancer=cancer,
project=project
}
call neoantigen.call_neoantigen as call_neoantigen {
input:
run=catecode['addNeoantigen'],
tumor=tumor,
normal=normal,
output_dir=workdir,
input_dir=input_dir,
ref=ref,
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
somatic_vcf=call_mutation.somatic_vcf,
germline_vcf=call_mutation.germline_vcf,
umi=umi
}
call pollution.call_pollution as call_pollution {
input:
run=catecode['addPollution'],
tumor=tumor,
normal=normal,
output_dir=workdir,
probe=probe,
raw_vcf=call_mutation.raw_vcf,
somatic_vcf=call_mutation.somatic_vcf,
germline_vcf=call_mutation.germline_vcf
}
call postprocess.call_postprocess as call_postprocess {
input:
run=catecode['addAutoReport'],
mutation=call_mutation.somatic_filter,
fusion=call_fusion.fusion_vcf,
cnv=call_cnv.cnv_filter,
msi=call_msi.msi_txt,
hereditary=call_hereditary.hereditary_txt,
chemo=call_chemo.chemo_res,
pollution=call_pollution.pollution_res,
name=tumor,
normal=normal,
output_dir=workdir,
cancer=cancer,
project=project
}
output {
String result = "${output_dir}/report/${tumor}.merged_file.xlsx"
}
}