#qc 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 \ -U --umi_loc=per_read --umi_len=4 --umi_prefix=UMI --umi_skip=3 \ --disable_trim_poly_g \ --disable_quality_filtering \ --adapter_sequence AGATCGGAAGAGCACACGTCTGAACTCCAGTCA \ --adapter_sequence_r2 AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT \ --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" } } workflow qc { Boolean run=true String tumor String? normal Boolean umi String input_dir String output_dir if (run) { if (umi) { call umiqc as run_umi_qc { input: name=tumor, input_dir=input_dir, output_dir=output_dir } } if (!umi) { call runqc as run_tumor_qc { input: name=tumor, input_dir=input_dir, output_dir=output_dir } } if (defined(normal)) { call runqc as run_normal_qc { input: name=normal, 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" } }