task fastp { String sample_id File read String adapter_sequence String docker String cluster String disk_size String umi_loc Int trim_front1 Int trim_tail1 Int max_len1 Int disable_adapter_trimming Int length_required Int umi_len Int UMI Int qualified_quality_phred Int length_required1 Int disable_quality_filtering command <<< mkdir -p /cromwell_root/tmp/fastp/ ##1.Disable_quality_filtering if [ "${disable_quality_filtering}" == 0 ] then cp ${read} /cromwell_root/tmp/fastp/{sample_id}.fastq.tmp1.gz else fastp --thread 4 --trim_front1 ${trim_front1} --trim_tail1 ${trim_tail1} --max_len1 ${max_len1} -i ${read} -o /cromwell_root/tmp/fastp/${sample_id}.fastq.tmp1.gz -j ${sample_id}.json -h ${sample_id}.html fi ##2.UMI if [ "${UMI}" == 0 ] then cp /cromwell_root/tmp/fastp/${sample_id}.fastq.tmp1.gz /cromwell_root/tmp/fastp/${sample_id}.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} -i /cromwell_root/tmp/fastp/${sample_id}.fastq.tmp1.gz -o /cromwell_root/tmp/fastp/${sample_id}.fastq.tmp2.gz -j ${sample_id}.json -h ${sample_id}.html fi ##3.Trim if [ "${disable_adapter_trimming}" == 0 ] then fastp --thread 4 -l ${length_required} -q ${qualified_quality_phred} -u ${length_required1} --adapter_sequence ${adapter_sequence} --adapter_sequence --trim_front1 ${trim_front1} --trim_tail1 ${trim_tail1} -i /cromwell_root/tmp/fastp/${sample_id}.fastq.tmp2.gz -o ${sample_id}.fastq.gz -j ${sample_id}.json -h ${sample_id}.html else cp /cromwell_root/tmp/fastp/${sample_id}.fastq.tmp2.gz ${sample_id}.fastq.gz fi >>> runtime { docker: docker cluster: cluster systemDisk: "cloud_ssd 40" dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" } output { File json = "${sample_id}.json" File report = "${sample_id}.html" File Trim = "${sample_id}.fastq.gz" } }