pipeline/pipeline.wdl

200 lines
5.2 KiB
Plaintext
Raw Normal View History

2023-08-25 10:06:31 +08:00
import "./wdl/qc.wdl"
import "./wdl/alignment.wdl"
2023-09-27 10:47:03 +08:00
import "./wdl/call_mutation.wdl"
2023-10-10 11:09:16 +08:00
import "./wdl/fusion.wdl"
2023-10-18 15:59:11 +08:00
import "./wdl/statistics.wdl"
import "./wdl/cnv.wdl"
import "./wdl/msi.wdl"
2023-11-01 10:09:29 +08:00
import "./wdl/chemo.wdl"
2023-11-29 15:13:30 +08:00
import "./wdl/hereditary.wdl"
2023-11-30 16:54:02 +08:00
import "./wdl/pollution.wdl"
2023-11-29 15:13:30 +08:00
import "./wdl/tmb.wdl"
import "./wdl/postprocess.wdl"
2023-08-29 10:31:06 +08:00
2023-08-25 10:06:31 +08:00
workflow pipeline {
String tumor
String? normal
2023-09-27 10:47:03 +08:00
Boolean umi=false
String input_dir
String output_dir
2023-11-29 15:13:30 +08:00
String probe
2023-10-10 11:09:16 +08:00
String project
2023-11-01 10:09:29 +08:00
String cancer
2023-09-27 10:47:03 +08:00
2023-11-29 15:13:30 +08:00
String bed="/home/zhangchao/project/pipeline/workflow/script/public/bed/${probe}.bed"
2023-12-04 17:10:06 +08:00
String ref = "/home/install/database/hg19/hg19.fa"
2023-08-25 10:06:31 +08:00
2023-09-27 10:47:03 +08:00
String workdir="${output_dir}"
2023-08-25 10:06:31 +08:00
2023-11-29 15:13:30 +08:00
Map[String, Boolean] catecode
2023-11-30 15:31:35 +08:00
# call mytask.create_dir as create_dir {
# input:
# workdir=workdir
# }
2023-08-25 10:06:31 +08:00
call qc.qc as qc {
input:
2023-11-29 15:13:30 +08:00
run=catecode['addQc'],
2023-08-25 10:06:31 +08:00
tumor=tumor,
normal=normal,
2023-09-27 10:47:03 +08:00
umi=umi,
input_dir=input_dir,
output_dir=workdir
2023-08-25 10:06:31 +08:00
}
call alignment.alignment as alignment {
input:
2023-11-29 15:13:30 +08:00
run=catecode['addAlignment'],
2023-08-25 10:06:31 +08:00
tumor=tumor,
tumor_r1=qc.tumor_r1,
tumor_r2=qc.tumor_r2,
normal=normal,
normal_r1=qc.normal_r1,
normal_r2=qc.normal_r2,
2023-09-27 10:47:03 +08:00
umi=umi,
2023-08-29 10:31:06 +08:00
ref=ref,
bed=bed,
2023-09-27 10:47:03 +08:00
output_dir=workdir
2023-08-25 10:06:31 +08:00
}
2023-10-18 15:59:11 +08:00
call statistics.statistics as statistics {
input:
2023-11-29 15:13:30 +08:00
run=catecode['addAlignment'],
2023-10-18 15:59:11 +08:00
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
}
2023-09-27 10:47:03 +08:00
call call_mutation.call_mutation as call_mutation {
2023-08-25 10:06:31 +08:00
input:
2023-11-29 15:13:30 +08:00
run=catecode['addTarget'],
2023-08-25 10:06:31 +08:00
tumor=tumor,
2023-09-27 10:47:03 +08:00
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
2023-08-25 10:06:31 +08:00
normal=normal,
2023-09-27 10:47:03 +08:00
normal_rmdup_bam=alignment.normal_rmdup_bam,
2023-08-25 10:06:31 +08:00
2023-09-27 10:47:03 +08:00
umi=umi,
2023-08-25 10:06:31 +08:00
ref=ref,
bed=bed,
2023-11-01 10:09:29 +08:00
output_dir=workdir,
2023-11-29 15:13:30 +08:00
project=project,
cancer=cancer
}
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
2023-08-29 17:46:31 +08:00
}
2023-10-10 11:09:16 +08:00
call fusion.call_fusion as call_fusion {
input:
2023-11-29 15:13:30 +08:00
run=catecode['addFusion'],
2023-10-10 11:09:16 +08:00
name=tumor,
sorted_bam=alignment.tumor_sorted_bam,
rmdup_bam=alignment.tumor_rmdup_bam,
output_dir=output_dir,
2023-10-18 15:59:11 +08:00
ref=ref,
umi=umi,
2023-11-01 10:09:29 +08:00
tumor_bamdst_depth=statistics.tumor_bamdst_depth,
project=project,
cancer=cancer
2023-10-10 11:09:16 +08:00
}
2023-10-18 15:59:11 +08:00
call cnv.call_cnv as call_cnv {
input:
2023-11-29 15:13:30 +08:00
run=catecode['addCnv'],
2023-10-18 15:59:11 +08:00
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,
2023-11-01 10:09:29 +08:00
project=project,
2023-11-29 15:13:30 +08:00
cancer=cancer,
probe=probe
2023-10-18 15:59:11 +08:00
}
2023-10-10 11:09:16 +08:00
2023-10-18 15:59:11 +08:00
call msi.call_msi as call_msi {
input:
2023-11-29 15:13:30 +08:00
run=catecode['addMsi'],
2023-10-18 15:59:11 +08:00
tumor=tumor,
tumor_rmdup_bam=alignment.tumor_rmdup_bam,
normal=normal,
normal_rmdup_bam=alignment.normal_rmdup_bam,
bed=bed,
2023-11-29 15:13:30 +08:00
output_dir=workdir
2023-10-18 15:59:11 +08:00
}
2023-10-10 11:09:16 +08:00
2023-11-29 15:13:30 +08:00
call hereditary.call_hereditary as call_hereditary {
2023-11-01 10:09:29 +08:00
input:
2023-11-29 15:13:30 +08:00
run=catecode['addHcs'],
2023-11-01 10:09:29 +08:00
name=tumor,
output_dir=workdir,
project=project,
2023-11-29 15:13:30 +08:00
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
2023-11-01 10:09:29 +08:00
}
2023-11-30 15:31:35 +08:00
call pollution.call_pollution as call_pollution {
input:
2023-11-30 17:10:22 +08:00
tumor=tumor,
2023-11-30 15:31:35 +08:00
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
}
2023-11-29 15:13:30 +08:00
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,
2023-11-30 16:14:05 +08:00
pollution=call_pollution.pollution_res,
2023-11-29 15:13:30 +08:00
name=tumor,
normal=normal,
output_dir=workdir,
cancer=cancer
}
output {
String result = "${output_dir}/report/${tumor}.merged_file.xlsx"
}
2023-10-10 11:09:16 +08:00
}