Skip to content

Commit

Permalink
Use annotation API
Browse files Browse the repository at this point in the history
Signed-off-by: Ben Sherman <[email protected]>
  • Loading branch information
bentsherman committed Nov 30, 2023
1 parent 8253a58 commit 1d7b013
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 52 deletions.
14 changes: 14 additions & 0 deletions lib/Sample.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

import java.nio.file.Path
import nextflow.io.ValueObject
import nextflow.util.KryoHelper

@ValueObject
class Sample {
String id
List<Path> reads

static {
KryoHelper.register(Sample)
}
}
6 changes: 3 additions & 3 deletions main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -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) )
}

/*
Expand Down
29 changes: 16 additions & 13 deletions modules/fastqc/main.nf
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
params.outdir = 'results'

process FASTQC {
tag "FASTQC on $sample_id"
conda 'fastqc=0.12.1'
publishDir params.outdir, mode:'copy'

input:
tuple val(sample_id), path(reads)

output:
path "fastqc_${sample_id}_logs"

script:
@ProcessFn(
directives={
tag { "FASTQC on $sample.id" }
conda 'fastqc=0.12.1'
publishDir params.outdir, mode:'copy'
},
inputs={
path { sample.reads }
},
outputs={
path { "fastqc_${sample.id}_logs" }
},
script=true
)
def FASTQC(Sample sample) {
"""
fastqc.sh "$sample_id" "$reads"
fastqc.sh "$sample.id" "${sample.reads.join(' ')}"
"""
}
25 changes: 14 additions & 11 deletions modules/index/main.nf
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@

process INDEX {
tag "$transcriptome.simpleName"
conda 'salmon=1.10.2'

input:
path transcriptome

output:
path 'index'

script:
@ProcessFn(
directives={
tag { transcriptome.simpleName }
conda 'salmon=1.10.2'
},
inputs={
path { transcriptome }
},
outputs={
path 'index'
},
script=true
)
def INDEX(Path transcriptome) {
"""
salmon index --threads $task.cpus -t $transcriptome -i index
"""
Expand Down
27 changes: 15 additions & 12 deletions modules/multiqc/main.nf
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
params.outdir = 'results'

process MULTIQC {
conda 'multiqc=1.17'
publishDir params.outdir, mode:'copy'

input:
path('*')
path(config)

output:
path('multiqc_report.html')

script:
@ProcessFn(
directives={
conda 'multiqc=1.17'
publishDir params.outdir, mode:'copy'
},
inputs={
path { files }, stageAs: '*'
path { config }
},
outputs={
path('multiqc_report.html')
},
script=true
)
def MULTIQC(List<Path> files, Path config) {
"""
cp $config/* .
echo "custom_logo: \$PWD/logo.png" >> multiqc_config.yaml
Expand Down
29 changes: 16 additions & 13 deletions modules/quant/main.nf
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@

process QUANT {
tag "$pair_id"
conda 'salmon=1.10.2'

input:
path index
tuple val(pair_id), path(reads)

output:
path pair_id

script:
@ProcessFn(
directives={
tag { pair.id }
conda 'salmon=1.10.2'
},
inputs={
path { index }
path { pair.reads }
},
outputs={
path { pair.id }
},
script=true
)
def QUANT(Path index, Sample pair) {
"""
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
"""
}

0 comments on commit 1d7b013

Please sign in to comment.