import "./wdl/task.wdl" as mytask import "./wdl/qc.wdl" import "./wdl/alignment.wdl" workflow pipeline { String tumor String? normal String inputDir String outputDir String cancer String project="650gene" String codesDir="/dataseq/jmdna/codes/pancancer_controlsample" String ref = "/dataseq/jmdna/database/genome/hg19/hg19.fa" String bed = "/dataseq/jmdna/database/bed/650.bed" String workdir="${outputDir}/${tumor}" call mytask.create_dir as create_dir { input: workdir=workdir } call qc.qc as qc { input: tumor=tumor, normal=normal, inputDir=inputDir, outputDir=workdir } call alignment.alignment as alignment { input: tumor=tumor, tumor_r1=qc.tumor_r1, tumor_r2=qc.tumor_r2, normal=normal, normal_r1=qc.normal_r1, normal_r2=qc.normal_r2, ref=ref, bed=bed, outputDir=workdir } call mytask.mutation_calling as mutation_calling { input: name=tumor, tumor_pileup=alignment.tumor_pileup, normal_pileup=alignment.normal_pileup, outputDir=workdir } call mytask.annovar as annovar { input: name=tumor, outputDir=workdir, ref=ref, somatic_hc_vcf=mutation_calling.somatic_hc_vcf, germline_vcf=mutation_calling.germline_vcf, loh_hc_vcf=mutation_calling.loh_hc_vcf, rmdupBam=alignment.tumor_rmdupBam } call mytask.tmb as tmb { input: codesDir=codesDir, name=tumor, outputDir=workdir, somatic_anno=annovar.somatic_anno } call mytask.fusion as fusion { input: name=tumor, ref=ref, codesDir=codesDir, outputDir=workdir, rmdupBam=alignment.tumor_rmdupBam, cancer=cancer, project=project } call mytask.tumor_content as tumor_content { input: name=tumor, tumor_pileup=alignment.tumor_pileup, normal_pileup=alignment.normal_pileup, ref=ref, outputDir=workdir, codesDir=codesDir, } call mytask.cnvkit as cnvkit { input: tumor=tumor, normal=normal, tumor_rmdupBam=alignment.tumor_rmdupBam, normal_rmdupBam=alignment.normal_rmdupBam, ref=ref, bed=bed, outputDir=workdir, cancer=cancer, codesDir=codesDir, project=project, purity=tumor_content.purity } call mytask.chemo as chemo { input: codesDir=codesDir, outputDir=workdir, normal=normal, project=project, rmdupBam=alignment.tumor_rmdupBam, } call mytask.msi as msi { input: bed=bed, name=tumor, outputDir=workdir, tumor_rmdupBam = alignment.tumor_rmdupBam, normal_rmdupBam =alignment.normal_rmdupBam } call mytask.hla as hla { input: inputDir=inputDir, outputDir=workdir, normal=normal, } call mytask.neoantigen as neoantigen { input: codesDir=codesDir, outputDir=workdir, name=tumor, somatic_hc_vcf=mutation_calling.somatic_hc_vcf, normal=normal, hla=hla.hla } }