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" } }