pipeline/wdl/qc.wdl

125 lines
3.4 KiB
Plaintext

task runqc {
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 \
-e 20 \
--correction \
--overlap_len_require 10 \
-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"
}
}
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"
}
}
workflow qc {
String tumor
String? normal
Boolean umi
String input_dir
String output_dir
scatter(name in [tumor, normal]) {
if (defined(name)) {
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
}
}
}
if (name==select_first([normal, 'None'])) {
call runqc as run_normal_qc {
input:
name=name,
input_dir=input_dir,
output_dir=output_dir
}
}
}
}
output {
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"
}
}