2023-08-25 10:06:31 +08:00
|
|
|
task runqc {
|
|
|
|
|
String name
|
2023-09-27 10:47:03 +08:00
|
|
|
String input_dir
|
|
|
|
|
String output_dir
|
2023-08-25 10:06:31 +08:00
|
|
|
|
|
|
|
|
command <<<
|
2023-09-27 10:47:03 +08:00
|
|
|
# echo "###### ${name} fastp beginning at: $(date) ######"
|
2023-08-25 10:06:31 +08:00
|
|
|
|
2023-09-27 10:47:03 +08:00
|
|
|
if [ ! -d ${output_dir}/qc ];then
|
|
|
|
|
mkdir ${output_dir}/qc
|
2023-08-25 10:06:31 +08:00
|
|
|
fi
|
|
|
|
|
|
2023-09-27 10:47:03 +08:00
|
|
|
fastp \
|
|
|
|
|
-i ${input_dir}/*_${name}_*1.fq.gz \
|
|
|
|
|
-o ${output_dir}/qc/${name}_clean_R1.fq.gz \
|
|
|
|
|
-I ${input_dir}/*_${name}_*2.fq.gz \
|
|
|
|
|
-O ${output_dir}/qc/${name}_clean_R2.fq.gz \
|
2023-08-25 10:06:31 +08:00
|
|
|
-w 10 \
|
2023-09-27 10:47:03 +08:00
|
|
|
-e 20 \
|
2023-08-25 10:06:31 +08:00
|
|
|
--correction \
|
|
|
|
|
--overlap_len_require 10 \
|
2023-09-27 10:47:03 +08:00
|
|
|
-j ${output_dir}/qc/${name}.json \
|
|
|
|
|
-h ${output_dir}/qc/${name}.html \
|
|
|
|
|
--report_title ${name}
|
2023-08-25 10:06:31 +08:00
|
|
|
|
|
|
|
|
>>>
|
|
|
|
|
output {
|
2023-09-27 10:47:03 +08:00
|
|
|
String r1 = "${output_dir}/qc/${name}_clean_R1.fq.gz "
|
|
|
|
|
String r2 = "${output_dir}/qc/${name}_clean_R2.fq.gz "
|
|
|
|
|
String json = "${output_dir}/qc/${name}.json"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
task umiqc {
|
|
|
|
|
String name
|
|
|
|
|
String input_dir
|
|
|
|
|
String output_dir
|
|
|
|
|
|
|
|
|
|
command <<<
|
|
|
|
|
# echo "###### ${name} fastp beginning at: $(date) ######"
|
|
|
|
|
|
|
|
|
|
if [ ! -d ${output_dir}/qc ];then
|
|
|
|
|
mkdir ${output_dir}/qc
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fastp -i ${input_dir}/*_${name}_*1.fq.gz -o ${output_dir}/qc/${name}_clean_R1.fq.gz \
|
|
|
|
|
-I ${input_dir}/*_${name}_*2.fq.gz -O ${output_dir}/qc/${name}_clean_R2.fq.gz \
|
|
|
|
|
-w 10 \
|
|
|
|
|
--correction \
|
|
|
|
|
--overlap_len_require=10 \
|
|
|
|
|
--umi \
|
|
|
|
|
--umi_loc=per_read \
|
|
|
|
|
--umi_len=4 \
|
|
|
|
|
--umi_prefix=UMI \
|
|
|
|
|
--umi_skip=3 \
|
|
|
|
|
--umi_delim \ : \
|
|
|
|
|
--disable_trim_poly_g \
|
|
|
|
|
-j ${output_dir}/qc/${name}.json \
|
|
|
|
|
-h ${output_dir}/qc/${name}.html \
|
|
|
|
|
--report_title ${name}
|
|
|
|
|
|
|
|
|
|
>>>
|
|
|
|
|
|
|
|
|
|
output {
|
|
|
|
|
String r1 = "${output_dir}/qc/${name}_clean_R1.fq.gz "
|
|
|
|
|
String r2 = "${output_dir}/qc/${name}_clean_R2.fq.gz "
|
|
|
|
|
String json = "${output_dir}/qc/${name}.json"
|
2023-08-25 10:06:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
workflow qc {
|
|
|
|
|
|
|
|
|
|
String tumor
|
|
|
|
|
String? normal
|
2023-09-27 10:47:03 +08:00
|
|
|
Boolean umi
|
|
|
|
|
String input_dir
|
|
|
|
|
String output_dir
|
2023-08-25 10:06:31 +08:00
|
|
|
|
|
|
|
|
scatter(name in [tumor, normal]) {
|
|
|
|
|
if (defined(name)) {
|
2023-09-27 10:47:03 +08:00
|
|
|
if (name==tumor) {
|
|
|
|
|
if (umi) {
|
|
|
|
|
call umiqc as run_umi_qc {
|
|
|
|
|
input:
|
|
|
|
|
name=name,
|
|
|
|
|
input_dir=input_dir,
|
|
|
|
|
output_dir=output_dir
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!umi) {
|
|
|
|
|
call runqc as run_tumor_qc {
|
|
|
|
|
input:
|
|
|
|
|
name=name,
|
|
|
|
|
input_dir=input_dir,
|
|
|
|
|
output_dir=output_dir
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-08-25 10:06:31 +08:00
|
|
|
}
|
2023-09-27 10:47:03 +08:00
|
|
|
if (name==select_first([normal, 'None'])) {
|
|
|
|
|
call runqc as run_normal_qc {
|
|
|
|
|
input:
|
|
|
|
|
name=name,
|
|
|
|
|
input_dir=input_dir,
|
|
|
|
|
output_dir=output_dir
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-25 10:06:31 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output {
|
2023-09-27 10:47:03 +08:00
|
|
|
String tumor_r1 = "${output_dir}/qc/${tumor}_clean_R1.fq.gz "
|
|
|
|
|
String tumor_r2 = "${output_dir}/qc/${tumor}_clean_R2.fq.gz "
|
|
|
|
|
String tumor_json = "${output_dir}/qc/${tumor}.json"
|
|
|
|
|
String normal_r1 = "${output_dir}/qc/${normal}_clean_R1.fq.gz "
|
|
|
|
|
String normal_r2 = "${output_dir}/qc/${normal}_clean_R2.fq.gz "
|
|
|
|
|
String normal_json = "${output_dir}/qc/${normal}.json"
|
2023-08-25 10:06:31 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|