# pipeline import "wdl/qc.wdl" as qc import "wdl/alignment.wdl" as alignment import "wdl/call_mutation.wdl" as call_mutation import "wdl/fusion.wdl" as fusion import "wdl/statistics.wdl" as statistics import "wdl/cnv.wdl" as cnv import "wdl/msi.wdl" as msi import "wdl/chemo.wdl" as chemo import "wdl/hereditary.wdl" as hereditary import "wdl/pollution.wdl" as pollution import "wdl/tmb.wdl" as tmb import "wdl/postprocess.wdl" as postprocess import "wdl/neoantigen.wdl" as neoantigen 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, umi=umi, tumor_rmdup_bam=alignment.tumor_rmdup_bam, tumor_sorted_bam=alignment.tumor_sorted_bam, normal=normal, normal_rmdup_bam=alignment.normal_rmdup_bam, genecore_json=alignment.genecore_json, 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, tumor_rmdup_bam=alignment.tumor_rmdup_bam } 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_rmdup_bam=alignment.normal_rmdup_bam, probe=probe, 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, initial_vcf=call_mutation.initial_vcf, normal_vcf=call_mutation.normal_vcf, cnv_cnr=call_cnv.cnv_cnr, cnv_cns=call_cnv.cnv_cns } 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, tmb=call_tmb.tmb_txt, hereditary=call_hereditary.hereditary_txt, chemo=call_chemo.chemo_res, neoantigen=call_neoantigen.neoantigen_txt, pollution=call_pollution.pollution_res, name=tumor, normal=normal, output_dir=workdir, cancer=cancer, project=project } output { String result = call_postprocess.merged } }