diff --git a/src/nf_modules/cutadapt/main.nf b/src/nf_modules/cutadapt/main.nf index 84d98061f9dd8e110a0d0676068aec042fed5dc8..f563a0224faf651b1d9632884c6298d008024ff8 100644 --- a/src/nf_modules/cutadapt/main.nf +++ b/src/nf_modules/cutadapt/main.nf @@ -1,29 +1,36 @@ version = "2.1" container_url = "lbmc/cutadapt:${version}" -adapter_3_prim = "AGATCGGAAGAG" -adapter_5_prim = "CTCTTCCGATCT" -trim_quality = "20" - -params.adaptor_removal = "-a ${adapter_3_prim} -g ${adapter_5_prim} -A ${adapter_3_prim} -G ${adapter_5_prim}" +params.adapter_3_prim = "AGATCGGAAGAG" +params.adapter_5_prim = "CTCTTCCGATCT" +params.adaptor_removal = "-a ${params.adapter_3_prim} -g ${params.adapter_5_prim} -A ${params.adapter_3_prim} -G ${params.adapter_5_prim}" +params.adaptor_removal_out = "" process adaptor_removal { container = "${container_url}" label "big_mem_mono_cpus" - tag "$pair_id" + tag "$file_id" + if (params.adaptor_removal_out != "") { + publishDir "results/${params.adaptor_removal_out}", mode: 'copy' + } input: - tuple val(pair_id), path(reads) + tuple val(file_id), path(reads) output: - tuple val(pair_id), path("*_cut_R{1,2}.fastq.gz"), emit: fastq + tuple val(file_id), path("*_cut_R{1,2}.fastq.gz"), emit: fastq path "*_report.txt", emit: report script: - if (reads instanceof List) + if (file_id instanceof List){ + file_prefix = file_id[0] + } else { + file_prefix = file_id + } + if (reads.size() == 2) """ cutadapt ${params.adaptor_removal} \ - -o ${pair_id}_cut_R1.fastq.gz -p ${pair_id}_cut_R2.fastq.gz \ - ${reads[0]} ${reads[1]} > ${pair_id}_report.txt + -o ${file_id}_cut_R1.fastq.gz -p ${file_id}_cut_R2.fastq.gz \ + ${reads[0]} ${reads[1]} > ${file_id}_report.txt """ else """ @@ -33,112 +40,40 @@ process adaptor_removal { """ } -params.adaptor_removal_pairedend = "-a ${adapter_3_prim} -g ${adapter_5_prim} -A ${adapter_3_prim} -G ${adapter_5_prim}" -process adaptor_removal_pairedend { - container = "${container_url}" - label "big_mem_mono_cpus" - tag "$pair_id" - - input: - tuple val(pair_id), path(reads) - - output: - tuple val(pair_id), path("*_cut_R{1,2}.fastq.gz"), emit: fastq - path "*_report.txt", emit: report - - script: - """ - cutadapt ${params.adaptor_removal_pairedend} \ - -o ${pair_id}_cut_R1.fastq.gz -p ${pair_id}_cut_R2.fastq.gz \ - ${reads[0]} ${reads[1]} > ${pair_id}_report.txt - """ -} - -params.adaptor_removal_singleend = "-a ${adapter_3_prim} -g ${adapter_5_prim}" -process adaptor_removal_singleend { +params.trim_quality = "20" +params.trimming = "-q ${params.trim_quality},${params.trim_quality}" +params.trimming_out = "" +process trimming { container = "${container_url}" label "big_mem_mono_cpus" tag "$file_id" + if (params.trimming_out != "") { + publishDir "results/${params.trimming_out}", mode: 'copy' + } input: tuple val(file_id), path(reads) output: - tuple val(file_id), path("*_cut.fastq.gz"), emit: fastq - path "*_report.txt", emit: report - - script: - """ - cutadapt ${params.adaptor_removal_singleend} \ - -o ${file_id}_cut.fastq.gz \ - ${reads} > ${file_id}_report.txt - """ -} - -process trimming { - container = "${container_url}" - label "big_mem_mono_cpus" - tag "$pair_id" - - input: - tuple val(pair_id), path(reads) - - output: - tuple val(pair_id), path("*_trim_R{1,2}.fastq.gz"), emit:fastq + tuple val(file_id), path("*_trim_R{1,2}.fastq.gz"), emit:fastq path "*_report.txt", emit: report script: - if (reads instanceof List) + if (file_id instanceof List){ + file_prefix = file_id[0] + } else { + file_prefix = file_id + } + if (reads.size() == 2) """ - cutadapt -q ${trim_quality},${trim_quality} \ - -o ${pair_id}_trim_R1.fastq.gz -p ${pair_id}_trim_R2.fastq.gz \ - ${reads[0]} ${reads[1]} > ${pair_id}_report.txt + cutadapt ${params.trimming} \ + -o ${file_id}_trim_R1.fastq.gz -p ${file_id}_trim_R2.fastq.gz \ + ${reads[0]} ${reads[1]} > ${file_id}_report.txt """ else """ - cutadapt -q ${trim_quality},${trim_quality} \ - -o ${file_id}_trim.fastq.gz \ - ${reads} > ${file_id}_report.txt - """ -} - -process trimming_pairedend { - container = "${container_url}" - label "big_mem_mono_cpus" - tag "$pair_id" - - input: - tuple val(pair_id), path(reads) - - output: - tuple val(pair_id), path("*_trim_R{1,2}.fastq.gz"), emit:fastq - path "*_report.txt", emit: report - - script: - """ - cutadapt -q ${trim_quality},${trim_quality} \ - -o ${pair_id}_trim_R1.fastq.gz -p ${pair_id}_trim_R2.fastq.gz \ - ${reads[0]} ${reads[1]} > ${pair_id}_report.txt - """ -} - -process trimming_singleend { - container = "${container_url}" - label "big_mem_mono_cpus" - tag "$file_id" - - input: - tuple val(file_id), path(reads) - - output: - tuple val(file_id), path("*_trim.fastq.gz"), emit: fastq - path "*_report.txt", emit: report - - script: - """ - cutadapt -q ${trim_quality},${trim_quality} \ + cutadapt ${params.trimming} \ -o ${file_id}_trim.fastq.gz \ ${reads} > ${file_id}_report.txt """ } -