task fastp { String sample_id File read1 File read2 String adapter_sequence String adapter_sequence_r2 String docker String cluster String umi_loc Int trim_front1 Int trim_tail1 Int max_len1 Int trim_front2 Int trim_tail2 Int max_len2 Int disable_adapter_trimming Int length_required Int umi_len Int UMI Int qualified_quality_phred Int length_required1 Int disable_quality_filtering command <<< ##1.Disable_quality_filtering if [ ${disable_quality_filtering} -gt 0 ] then mv ${read1} {sample_id}_R1.fastq.tmp1.gz mv ${read2} {sample_id}_R2.fastq.tmp1.gz else fastp --thread 4 --trim_front1 ${trim_front1} --trim_tail1 ${trim_tail1} --max_len1 ${max_len1} --trim_front2 ${trim_front2} --trim_tail2 ${trim_tail2} --max_len2 ${max_len2} -i ${read1} -I ${read2} -o ${sample_id}_R1.fastq.tmp1.gz -O ${sample_id}_R2.fastq.tmp1.gz -j ${sample_id}.json -h ${sample_id}.html ##2.UMI if [ ${UMI} -gt 0 ] then mv ${sample_id}_R1.fastq.tmp1.gz ${sample_id}_R1.fastq.tmp2.gz mv ${sample_id}_R2.fastq.tmp1.gz ${sample_id}_R2.fastq.tmp2.gz else fastp --thread 4 -U --umi_loc=${umi_loc} --umi_len=${umi_len} --trim_front1 ${trim_front1} --trim_tail1 ${trim_tail1} --max_len1 ${max_len1} --trim_front2 ${trim_front2} --trim_tail2 ${trim_tail2} --max_len2 ${max_len2} -i ${sample_id}_R1.fastq.tmp1.gz -I ${sample_id}_R2.fastq.tmp1.gz -o ${sample_id}_R1.fastq.tmp2.gz -O ${sample_id}_R2.fastq.tmp2.gz -j ${sample_id}.json -h ${sample_id}.html ##3.Trim if [ ${disable_adapter_trimming} -gt 0 ] then fastp --thread 4 -l ${length_required} -q ${qualified_quality_phred} -u ${length_required1} --adapter_sequence ${adapter_sequence} --adapter_sequence_r2 ${adapter_sequence_r2} --detect_adapter_for_pe --trim_front1 ${trim_front1} --trim_tail1 ${trim_tail1} --max_len1 ${max_len1} --trim_front2 ${trim_front2} --trim_tail2 ${trim_tail2} --max_len2 ${max_len2} -i ${sample_id}_R1.fastq.tmp2.gz -I ${sample_id}_R2.fastq.tmp2.gz -o ${sample_id}_R1.fastq.gz -O ${sample_id}_R2.fastq.gz -j ${sample_id}.json -h ${sample_id}.html else mv ${sample_id}_R1.fastq.tmp2.gz ${sample_id}_R1.fastq.gz mv ${sample_id}_R2.fastq.tmp2.gz ${sample_id}_R2.fastq.gz fi >>> runtime { docker: docker cluster: cluster systemDisk: "cloud_ssd 40" dataDisk: "cloud_ssd 200 /cromwell_root/" } output { File json = "${sample_id}.json" File report = "${sample_id}.html" File Trim_R1 = "${sample_id}_R1.fastq.gz" File Trim_R2 = "${sample_id}_R2.fastq.gz" } }