mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-12-22 11:08:17 +00:00
Added functional Trim Galore module
This commit is contained in:
parent
f62fad63ca
commit
6208ac9799
4 changed files with 124 additions and 44 deletions
|
@ -1,35 +1,101 @@
|
||||||
process trim_galore {
|
nextflow.preview.dsl=2
|
||||||
tag "$sample_id"
|
|
||||||
publishDir "${params.outdir}/trim_galore", mode: 'copy',
|
|
||||||
saveAs: {filename ->
|
|
||||||
if (filename.indexOf("_fastqc") > 0) "FastQC/$filename"
|
|
||||||
else if (filename.indexOf("trimming_report.txt") > 0) "logs/$filename"
|
|
||||||
else filename
|
|
||||||
}
|
|
||||||
|
|
||||||
container 'quay.io/biocontainers/trim-galore:0.6.5--0'
|
params.singlecell = ''
|
||||||
|
params.rrbs = ''
|
||||||
|
params.pbat = ''
|
||||||
|
params.single_end = false
|
||||||
|
|
||||||
|
params.trim_nextseq = 0
|
||||||
|
|
||||||
|
params.clip_r1 = 0
|
||||||
|
params.clip_r2 = 0
|
||||||
|
params.three_prime_clip_r1 = 0
|
||||||
|
params.three_prime_clip_r2 = 0
|
||||||
|
|
||||||
|
|
||||||
|
process TRIM_GALORE {
|
||||||
|
|
||||||
|
// container 'quay.io/biocontainers/trim-galore:0.6.5--0' // maybe later
|
||||||
|
// tag "$sample_id"
|
||||||
|
|
||||||
input:
|
input:
|
||||||
tuple sample_id, path(reads)
|
tuple val (name), path (reads)
|
||||||
|
val (outdir)
|
||||||
|
val (trim_galore_args)
|
||||||
|
val (verbose)
|
||||||
|
|
||||||
output:
|
output:
|
||||||
tuple name, path("*fq.gz")
|
tuple val(name), path ("*fq.gz"), emit: reads
|
||||||
path "*trimming_report.txt"
|
path "*trimming_report.txt", optional: true, emit: report
|
||||||
path "*_fastqc.{zip,html}"
|
|
||||||
|
// Trimming reports are not generated for e.g. --hardtrim5, --clock etc
|
||||||
|
// saveAs: {filename ->
|
||||||
|
// else if (filename.indexOf("trimming_report.txt") > 0) "logs/$filename"
|
||||||
|
// else filename
|
||||||
|
// }
|
||||||
|
|
||||||
|
publishDir "${outdir}/trim_galore",
|
||||||
|
mode: "copy", overwrite: true
|
||||||
|
|
||||||
script:
|
script:
|
||||||
c_r1 = clip_r1 > 0 ? "--clip_r1 ${clip_r1}" : ''
|
if (verbose){
|
||||||
c_r2 = clip_r2 > 0 ? "--clip_r2 ${clip_r2}" : ''
|
println ("[MODULE] TRIM GALORE ARGS: " + trim_galore_args)
|
||||||
tpc_r1 = three_prime_clip_r1 > 0 ? "--three_prime_clip_r1 ${three_prime_clip_r1}" : ''
|
}
|
||||||
tpc_r2 = three_prime_clip_r2 > 0 ? "--three_prime_clip_r2 ${three_prime_clip_r2}" : ''
|
|
||||||
nextseq = params.trim_nextseq > 0 ? "--nextseq ${params.trim_nextseq}" : ''
|
trim_galore_args += " --gzip " // we like small files
|
||||||
if (params.singleEnd) {
|
|
||||||
"""
|
pairedString = 0
|
||||||
trim_galore --fastqc --gzip $c_r1 $tpc_r1 $nextseq $reads
|
if (reads instanceof List) {
|
||||||
"""
|
pairedString = 1
|
||||||
} else {
|
trim_galore_args += " --paired "
|
||||||
"""
|
}
|
||||||
trim_galore --paired --fastqc --gzip $c_r1 $c_r2 $tpc_r1 $tpc_r2 $nextseq $reads
|
|
||||||
"""
|
if (params.clip_r1 > 0){
|
||||||
|
trim_galore_args += " --clip_r1 ${params.clip_r1} "
|
||||||
|
}
|
||||||
|
if (params.clip_r2 > 0){
|
||||||
|
trim_galore_args += " --clip_r2 ${params.clip_r2} "
|
||||||
|
}
|
||||||
|
if (params.three_prime_clip_r1> 0){
|
||||||
|
trim_galore_args += " --three_prime_clip_r1 ${params.three_prime_clip_r1} "
|
||||||
|
}
|
||||||
|
if (params.three_prime_clip_r2 > 0){
|
||||||
|
trim_galore_args += " --three_prime_clip_r2 ${params.three_prime_clip_r2} "
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params.trim_nextseq > 0){
|
||||||
|
trim_galore_args += " --nextseq ${params.trim_nextseq} "
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Pre-set parameters for certain bisulfite-seq applications
|
||||||
|
if (params.singlecell){
|
||||||
|
trim_galore_args += " --clip_r1 6 "
|
||||||
|
if (pairedString == 1){
|
||||||
|
trim_galore_args += " --clip_r2 6 "
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (params.rrbs){
|
||||||
|
trim_galore_args += " --rrbs "
|
||||||
|
}
|
||||||
|
if (params.pbat){
|
||||||
|
trim_galore_args += " --clip_r1 $params.pbat "
|
||||||
|
if (pairedString == 1){
|
||||||
|
trim_galore_args += " --clip_r2 $params.pbat "
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
module load trim_galore
|
||||||
|
trim_galore $trim_galore_args $reads
|
||||||
|
"""
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,10 +34,8 @@ output:
|
||||||
type: file
|
type: file
|
||||||
description: Trim Galore! trimming report
|
description: Trim Galore! trimming report
|
||||||
pattern: *trimming_report.txt
|
pattern: *trimming_report.txt
|
||||||
-
|
|
||||||
- fastqc_report:
|
|
||||||
type: file
|
|
||||||
description: FastQC report
|
|
||||||
pattern: *_fastqc.{zip,html}
|
|
||||||
authors:
|
authors:
|
||||||
|
-
|
||||||
- @ewels
|
- @ewels
|
||||||
|
- @FelixKrueger
|
||||||
|
|
32
tools/trim_galore/test/main.nf
Normal file → Executable file
32
tools/trim_galore/test/main.nf
Normal file → Executable file
|
@ -1,13 +1,27 @@
|
||||||
#!/usr/bin/env nextflow
|
#!/usr/bin/env nextflow
|
||||||
echo true
|
nextflow.preview.dsl=2
|
||||||
|
|
||||||
cheers = Channel.from 'Bonjour', 'Ciao', 'Hello', 'Hola'
|
params.outdir = "." // gets set in the nextflow.config files (to './results/trim_galore')
|
||||||
|
params.verbose = false
|
||||||
|
params.trim_galore_args = ''
|
||||||
|
// trim_galore_args are best passed into the workflow in the following manner, e.g.:
|
||||||
|
// --trim_galore_args="--clip_r1 10 --clip_r2 15 -j 2"
|
||||||
|
|
||||||
|
if (params.verbose){
|
||||||
|
println ("[WORKFLOW] TRIM GALORE ARGS: " + params.trim_galore_args)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: check the output files in some way
|
||||||
|
// include '../../../nf-core/module_testing/check_process_outputs.nf'
|
||||||
|
include '../main.nf' // params (clip_r1: 6, clip_r2: 10) // how to pass additional parameters
|
||||||
|
|
||||||
|
ch_read_files = Channel
|
||||||
|
.fromFilePairs('../../../test-datasets/test*{1,2}.fastq.gz',size:-1)
|
||||||
|
// .view() // to check whether the input channel works
|
||||||
|
|
||||||
|
workflow {
|
||||||
|
|
||||||
|
main:
|
||||||
|
TRIM_GALORE (ch_read_files, params.outdir, params.trim_galore_args, params.verbose)
|
||||||
|
|
||||||
process sayHello {
|
|
||||||
input:
|
|
||||||
val x from cheers
|
|
||||||
script:
|
|
||||||
"""
|
|
||||||
echo '$x world!'
|
|
||||||
"""
|
|
||||||
}
|
}
|
||||||
|
|
2
tools/trim_galore/test/nextflow.config
Normal file
2
tools/trim_galore/test/nextflow.config
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
// docker.enabled = true
|
||||||
|
params.outdir = './results'
|
Loading…
Reference in a new issue