diff --git a/lib/Sample.groovy b/lib/Sample.groovy new file mode 100644 index 0000000..e66a53d --- /dev/null +++ b/lib/Sample.groovy @@ -0,0 +1,14 @@ + +import java.nio.file.Path +import nextflow.io.ValueObject +import nextflow.util.KryoHelper + +@ValueObject +class Sample { + String id + List reads + + static { + KryoHelper.register(Sample) + } +} diff --git a/main.nf b/main.nf index 77d2d70..512c125 100755 --- a/main.nf +++ b/main.nf @@ -51,9 +51,9 @@ include { MULTIQC } from './modules/multiqc' * main script flow */ workflow { - read_pairs_ch = channel.fromFilePairs( params.reads, checkIfExists: true ) - RNASEQ( params.transcriptome, read_pairs_ch ) - MULTIQC( RNASEQ.out, params.multiqc ) + read_pairs_ch = channel.fromFilePairs( params.reads, checkIfExists: true ).map { args -> new Sample(*args) } + RNASEQ( file(params.transcriptome), read_pairs_ch ) + MULTIQC( RNASEQ.out, file(params.multiqc) ) } /* diff --git a/modules/fastqc/main.nf b/modules/fastqc/main.nf index cd58cbb..619d6c7 100644 --- a/modules/fastqc/main.nf +++ b/modules/fastqc/main.nf @@ -1,18 +1,18 @@ params.outdir = 'results' process FASTQC { - tag "FASTQC on $sample_id" + tag "FASTQC on $sample.id" conda 'fastqc=0.12.1' publishDir params.outdir, mode:'copy' input: - tuple val(sample_id), path(reads) + Sample sample output: - path "fastqc_${sample_id}_logs" + Path logs = path("fastqc_${sample.id}_logs") script: """ - fastqc.sh "$sample_id" "$reads" + fastqc.sh "$sample.id" "$sample.reads" """ } diff --git a/modules/index/main.nf b/modules/index/main.nf index de55e46..f417d0a 100644 --- a/modules/index/main.nf +++ b/modules/index/main.nf @@ -4,10 +4,10 @@ process INDEX { conda 'salmon=1.10.2' input: - path transcriptome + Path transcriptome output: - path 'index' + Path index = path('index') script: """ diff --git a/modules/multiqc/main.nf b/modules/multiqc/main.nf index a390282..9927516 100644 --- a/modules/multiqc/main.nf +++ b/modules/multiqc/main.nf @@ -5,11 +5,11 @@ process MULTIQC { publishDir params.outdir, mode:'copy' input: - path('*') - path(config) + List logs + Path config output: - path('multiqc_report.html') + Path report = path('multiqc_report.html') script: """ diff --git a/modules/quant/main.nf b/modules/quant/main.nf index 8459597..1d38136 100644 --- a/modules/quant/main.nf +++ b/modules/quant/main.nf @@ -1,17 +1,17 @@ process QUANT { - tag "$pair_id" + tag "$pair.id" conda 'salmon=1.10.2' input: - path index - tuple val(pair_id), path(reads) + Path index + Sample pair output: - path pair_id + Path result = path(pair.id) script: """ - salmon quant --threads $task.cpus --libType=U -i $index -1 ${reads[0]} -2 ${reads[1]} -o $pair_id + salmon quant --threads $task.cpus --libType=U -i $index -1 ${pair.reads[0]} -2 ${pair.reads[1]} -o $pair.id """ }