diff --git a/modules/local/bedtools_genomecov/nextflow.config b/modules/local/bedtools_genomecov/nextflow.config index 85f3d34ae..6c61547d8 100644 --- a/modules/local/bedtools_genomecov/nextflow.config +++ b/modules/local/bedtools_genomecov/nextflow.config @@ -1,11 +1,4 @@ - -if (!params.skip_alignment && !params.skip_bigwig) { - process { - withName: 'BEDTOOLS_GENOMECOV' { - ext.args = '-split -du' - publishDir = [ - enabled: false - ] - } - } -} +process.ext.args = '-split -du' +process.publishDir = [ + enabled: false +] diff --git a/modules/local/dupradar/nextflow.config b/modules/local/dupradar/nextflow.config index 3ade56ad5..96282836f 100644 --- a/modules/local/dupradar/nextflow.config +++ b/modules/local/dupradar/nextflow.config @@ -1,35 +1,27 @@ -if (!params.skip_alignment && !params.skip_qc) { - if (!params.skip_dupradar) { - process { - withName: 'DUPRADAR' { - publishDir = [ - [ - path: { "${params.outdir}/${params.aligner}/dupradar/scatter_plot" }, - mode: params.publish_dir_mode, - pattern: "*Dens.pdf" - ], - [ - path: { "${params.outdir}/${params.aligner}/dupradar/box_plot" }, - mode: params.publish_dir_mode, - pattern: "*Boxplot.pdf" - ], - [ - path: { "${params.outdir}/${params.aligner}/dupradar/histogram" }, - mode: params.publish_dir_mode, - pattern: "*Hist.pdf" - ], - [ - path: { "${params.outdir}/${params.aligner}/dupradar/gene_data" }, - mode: params.publish_dir_mode, - pattern: "*Matrix.txt" - ], - [ - path: { "${params.outdir}/${params.aligner}/dupradar/intercepts_slope" }, - mode: params.publish_dir_mode, - pattern: "*slope.txt" - ] - ] - } - } - } -} +process.publishDir = [ + [ + path: "${params.outdir}/${params.aligner}/dupradar/scatter_plot", + mode: params.publish_dir_mode, + pattern: "*Dens.pdf" + ], + [ + path: "${params.outdir}/${params.aligner}/dupradar/box_plot", + mode: params.publish_dir_mode, + pattern: "*Boxplot.pdf" + ], + [ + path: "${params.outdir}/${params.aligner}/dupradar/histogram", + mode: params.publish_dir_mode, + pattern: "*Hist.pdf" + ], + [ + path: "${params.outdir}/${params.aligner}/dupradar/gene_data", + mode: params.publish_dir_mode, + pattern: "*Matrix.txt" + ], + [ + path: "${params.outdir}/${params.aligner}/dupradar/intercepts_slope", + mode: params.publish_dir_mode, + pattern: "*slope.txt" + ] +] diff --git a/modules/local/multiqc_custom_biotype/nextflow.config b/modules/local/multiqc_custom_biotype/nextflow.config index 68fecaa66..2bfc402d6 100644 --- a/modules/local/multiqc_custom_biotype/nextflow.config +++ b/modules/local/multiqc_custom_biotype/nextflow.config @@ -1,13 +1,5 @@ -if (!params.skip_alignment && !params.skip_qc) { - if (!params.skip_biotype_qc && params.featurecounts_group_type) { - process { - withName: 'MULTIQC_CUSTOM_BIOTYPE' { - publishDir = [ - path: { "${params.outdir}/${params.aligner}/featurecounts" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - } - } -} +process.publishDir = [ + path: "${params.outdir}/${params.aligner}/featurecounts", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } +] diff --git a/modules/nf-core/bbmap/bbsplit/nextflow.config b/modules/nf-core/bbmap/bbsplit/nextflow.config index da3ddaf31..4a74e6f4b 100644 --- a/modules/nf-core/bbmap/bbsplit/nextflow.config +++ b/modules/nf-core/bbmap/bbsplit/nextflow.config @@ -1,20 +1,14 @@ -if (!params.skip_bbsplit) { - process { - withName: 'BBMAP_BBSPLIT' { - ext.args = 'build=1 ambiguous2=all maxindel=150000' - publishDir = [ - [ - path: { "${params.outdir}/bbsplit" }, - mode: params.publish_dir_mode, - pattern: '*.txt' - ], - [ - path: { params.save_bbsplit_reads ? "${params.outdir}/bbsplit" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.fastq.gz', - saveAs: { params.save_bbsplit_reads ? it : null } - ] - ] - } - } -} \ No newline at end of file +process.ext.args = 'build=1 ambiguous2=all maxindel=150000' +process.publishDir = [ + [ + path: "${params.outdir}/bbsplit", + mode: params.publish_dir_mode, + pattern: '*.txt' + ], + [ + path: "${params.outdir}/bbsplit", + mode: params.publish_dir_mode, + pattern: '*.fastq.gz', + saveAs: { params.save_bbsplit_reads ? it : null } + ] +] diff --git a/modules/nf-core/cat/fastq/nextflow.config b/modules/nf-core/cat/fastq/nextflow.config index 64de2e49c..cfd3c7e84 100644 --- a/modules/nf-core/cat/fastq/nextflow.config +++ b/modules/nf-core/cat/fastq/nextflow.config @@ -1,9 +1,5 @@ -process { - withName: 'CAT_FASTQ' { - publishDir = [ - path: { params.save_merged_fastq ? "${params.outdir}/fastq" : params.outdir }, - mode: params.publish_dir_mode, - saveAs: { filename -> (filename.endsWith('.fastq.gz') && params.save_merged_fastq) ? filename : null } - ] - } -} +process.publishDir = [ + path: "${params.outdir}/fastq", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : params.save_merged_fastq ? filename : null } +] diff --git a/modules/nf-core/preseq/lcextrap/nextflow.config b/modules/nf-core/preseq/lcextrap/nextflow.config index e203e87e7..ac0dfc3db 100644 --- a/modules/nf-core/preseq/lcextrap/nextflow.config +++ b/modules/nf-core/preseq/lcextrap/nextflow.config @@ -1,21 +1,13 @@ -if (!params.skip_alignment && !params.skip_qc) { - if (!params.skip_preseq) { - process { - withName: 'PRESEQ_LCEXTRAP' { - ext.args = '-verbose -bam -seed 1 -seg_len 100000000' - publishDir = [ - [ - path: { "${params.outdir}/${params.aligner}/preseq" }, - mode: params.publish_dir_mode, - pattern: "*.txt" - ], - [ - path: { "${params.outdir}/${params.aligner}/preseq/log" }, - mode: params.publish_dir_mode, - pattern: "*.log" - ] - ] - } - } - } -} \ No newline at end of file +process.ext.args = '-verbose -bam -seed 1 -seg_len 100000000' +process.publishDir = [ + [ + path: "${params.outdir}/${params.aligner}/preseq", + mode: params.publish_dir_mode, + pattern: "*.txt" + ], + [ + path: "${params.outdir}/${params.aligner}/preseq/log", + mode: params.publish_dir_mode, + pattern: "*.log" + ] +] diff --git a/modules/nf-core/qualimap/rnaseq/nextflow.config b/modules/nf-core/qualimap/rnaseq/nextflow.config index 9c05fb25a..c08deff96 100644 --- a/modules/nf-core/qualimap/rnaseq/nextflow.config +++ b/modules/nf-core/qualimap/rnaseq/nextflow.config @@ -1,13 +1,5 @@ -if (!params.skip_alignment && !params.skip_qc) { - if (!params.skip_qualimap) { - process { - withName: 'QUALIMAP_RNASEQ' { - publishDir = [ - path: { "${params.outdir}/${params.aligner}/qualimap" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - } - } -} +process.publishDir = [ + path: "${params.outdir}/${params.aligner}/qualimap", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } +] diff --git a/modules/nf-core/sortmerna/nextflow.config b/modules/nf-core/sortmerna/nextflow.config index 8771660ce..7ca19c0ba 100644 --- a/modules/nf-core/sortmerna/nextflow.config +++ b/modules/nf-core/sortmerna/nextflow.config @@ -1,20 +1,14 @@ -if (params.remove_ribo_rna) { - process { - withName: 'SORTMERNA' { - ext.args = '--num_alignments 1 -v' - publishDir = [ - [ - path: { "${params.outdir}/sortmerna" }, - mode: params.publish_dir_mode, - pattern: "*.log" - ], - [ - path: { params.save_non_ribo_reads ? "${params.outdir}/sortmerna" : params.outdir }, - mode: params.publish_dir_mode, - pattern: "*.fastq.gz", - saveAs: { params.save_non_ribo_reads ? it : null } - ] - ] - } - } -} \ No newline at end of file +process.ext.args = '--num_alignments 1 -v' +process.publishDir = [ + [ + path: "${params.outdir}/sortmerna", + mode: params.publish_dir_mode, + pattern: "*.log" + ], + [ + path: "${params.outdir}/sortmerna", + mode: params.publish_dir_mode, + pattern: "*.fastq.gz", + saveAs: { params.save_non_ribo_reads ? it : null } + ] +] diff --git a/modules/nf-core/stringtie/stringtie/nextflow.config b/modules/nf-core/stringtie/stringtie/nextflow.config index dc0651458..6f5434179 100644 --- a/modules/nf-core/stringtie/stringtie/nextflow.config +++ b/modules/nf-core/stringtie/stringtie/nextflow.config @@ -1,17 +1,9 @@ -if (!params.skip_alignment) { - if (!params.skip_stringtie) { - process { - withName: 'STRINGTIE_STRINGTIE' { - ext.args = { [ - '-v', - params.stringtie_ignore_gtf ? '' : '-e' - ].join(' ').trim() } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/stringtie" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - } - } -} \ No newline at end of file +process.ext.args = [ + '-v', + params.stringtie_ignore_gtf ? '' : '-e' +].join(' ').trim() +process.publishDir = [ + path: "${params.outdir}/${params.aligner}/stringtie", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } +] diff --git a/modules/nf-core/subread/featurecounts/nextflow.config b/modules/nf-core/subread/featurecounts/nextflow.config index 3a796d101..cbc373cca 100644 --- a/modules/nf-core/subread/featurecounts/nextflow.config +++ b/modules/nf-core/subread/featurecounts/nextflow.config @@ -1,26 +1,11 @@ -if (!params.skip_alignment && !params.skip_qc) { - if (!params.skip_biotype_qc && params.featurecounts_group_type) { - process { - withName: 'SUBREAD_FEATURECOUNTS' { - ext.args = { [ - '-B -C', - params.gencode ? "-g gene_type" : "-g $params.featurecounts_group_type", - "-t $params.featurecounts_feature_type" - ].join(' ').trim() } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/featurecounts" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } +process.ext.args = [ + '-B -C', + params.gencode ? "-g gene_type" : "-g $params.featurecounts_group_type", + "-t $params.featurecounts_feature_type" +].join(' ').trim() - withName: 'MULTIQC_CUSTOM_BIOTYPE' { - publishDir = [ - path: { "${params.outdir}/${params.aligner}/featurecounts" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - } - } -} +process.publishDir = [ + path: "${params.outdir}/${params.aligner}/featurecounts", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } +] diff --git a/nextflow.config b/nextflow.config index 74108e825..5a7b63530 100644 --- a/nextflow.config +++ b/nextflow.config @@ -334,10 +334,6 @@ manifest { doi = 'https://doi.org/10.5281/zenodo.1400710' } -// Workflow specific config -includeConfig "./subworkflows/local/prepare_genome/nextflow.config" -includeConfig './workflows/rnaseq/nextflow.config' - // Function to ensure that resource requirements don't go beyond // a maximum limit def check_max(obj, type) { diff --git a/subworkflows/local/prepare_genome/nextflow.config b/subworkflows/local/prepare_genome/nextflow.config index 98a4b64fd..6bf95577e 100644 --- a/subworkflows/local/prepare_genome/nextflow.config +++ b/subworkflows/local/prepare_genome/nextflow.config @@ -1,7 +1,7 @@ process { withName: 'GUNZIP_.*|MAKE_TRANSCRIPTS_FASTA' { publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -13,7 +13,7 @@ process { withName: 'UNTAR_.*|STAR_GENOMEGENERATE|STAR_GENOMEGENERATE_IGENOMES|HISAT2_BUILD' { publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome/index" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -22,7 +22,7 @@ process { withName: 'GFFREAD' { ext.args = '--keep-exon-attrs -F -T' publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -30,7 +30,7 @@ process { withName: 'HISAT2_EXTRACTSPLICESITES' { publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome/index" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -42,7 +42,7 @@ process { params.pseudo_aligner_kmer_size ? "-k ${params.pseudo_aligner_kmer_size}": '' ].join(' ').trim() } publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome/index" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -51,7 +51,7 @@ process { withName: 'KALLISTO_INDEX' { ext.args = params.pseudo_aligner_kmer_size ? "-k ${params.pseudo_aligner_kmer_size}" : '' publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome/index" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -60,7 +60,7 @@ process { withName: 'RSEM_PREPAREREFERENCE_GENOME' { ext.args = '--star' publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome/index" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -68,15 +68,15 @@ process { withName: 'GTF2BED' { publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] } - withName: 'CAT_ADDITIONAL_FASTA|PREPROCESS_TRANSCRIPTS_FASTA_GENCODE' { + withName: 'PREPROCESS_TRANSCRIPTS_FASTA_GENCODE' { publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -85,7 +85,7 @@ process { withName: 'GTF_FILTER' { ext.args = { params.skip_gtf_transcript_filter ?: '--skip_transcript_id_check' } publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] @@ -93,22 +93,18 @@ process { withName: 'CUSTOM_GETCHROMSIZES' { publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, + path: params.save_reference ? "${params.outdir}/genome" : params.outdir, mode: params.publish_dir_mode, saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } ] } -} -if (!params.skip_bbsplit && params.bbsplit_fasta_list) { - process { - withName: 'PREPARE_GENOME:BBMAP_BBSPLIT' { - ext.args = 'build=1' - publishDir = [ - path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, - mode: params.publish_dir_mode, - saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } - ] - } + withName: 'BBMAP_BBSPLIT' { + ext.args = 'build=1' + publishDir = [ + path: params.save_reference ? "${params.outdir}/genome/index" : params.outdir, + mode: params.publish_dir_mode, + saveAs: { filename -> (filename != 'versions.yml' && params.save_reference) ? filename : null } + ] } } diff --git a/subworkflows/nf-core/bam_markduplicates_picard/nextflow.config b/subworkflows/nf-core/bam_markduplicates_picard/nextflow.config index 2778db78d..149fc57c4 100644 --- a/subworkflows/nf-core/bam_markduplicates_picard/nextflow.config +++ b/subworkflows/nf-core/bam_markduplicates_picard/nextflow.config @@ -1,41 +1,37 @@ -if (!params.skip_alignment) { - if (!params.skip_markduplicates && !params.with_umi) { - process { - withName: '.*:BAM_MARKDUPLICATES_PICARD:PICARD_MARKDUPLICATES' { - ext.args = '--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp' - ext.prefix = { "${meta.id}.markdup.sorted" } - publishDir = [ - [ - path: { "${params.outdir}/${params.aligner}/picard_metrics" }, - mode: params.publish_dir_mode, - pattern: '*metrics.txt' - ], - [ - path: { "${params.outdir}/${params.aligner}" }, - mode: params.publish_dir_mode, - pattern: '*.bam' - ] - ] - } +process { + withName: 'PICARD_MARKDUPLICATES' { + ext.args = '--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp' + ext.prefix = { "${meta.id}.markdup.sorted" } + publishDir = [ + [ + path: "${params.outdir}/${params.aligner}/picard_metrics", + mode: params.publish_dir_mode, + pattern: '*metrics.txt' + ], + [ + path: "${params.outdir}/${params.aligner}", + mode: params.publish_dir_mode, + pattern: '*.bam' + ] + ] + } - withName: '.*:BAM_MARKDUPLICATES_PICARD:SAMTOOLS_INDEX' { - ext.args = { params.bam_csi_index ? '-c' : '' } - ext.prefix = { "${meta.id}.markdup.sorted" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}" }, - mode: params.publish_dir_mode, - pattern: '*.{bai,csi}' - ] - } + withName: 'SAMTOOLS_INDEX' { + ext.args = { params.bam_csi_index ? '-c' : '' } + ext.prefix = { "${meta.id}.markdup.sorted" } + publishDir = [ + path: "${params.outdir}/${params.aligner}", + mode: params.publish_dir_mode, + pattern: '*.{bai,csi}' + ] + } - withName: '.*:BAM_MARKDUPLICATES_PICARD:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.markdup.sorted.bam" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/samtools_stats" }, - mode: params.publish_dir_mode, - pattern: '*.{stats,flagstat,idxstats}' - ] - } - } + withName: 'BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.markdup.sorted.bam" } + publishDir = [ + path: "${params.outdir}/${params.aligner}/samtools_stats", + mode: params.publish_dir_mode, + pattern: '*.{stats,flagstat,idxstats}' + ] } } diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/nextflow.config b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/nextflow.config index 061689d5f..0e022833e 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/nextflow.config +++ b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/nextflow.config @@ -1,72 +1,58 @@ -if (!(params.skip_fastqc || params.skip_qc)) { - if (params.trimmer == 'fastp') { - process { - withName: '.*:FASTQ_FASTQC_UMITOOLS_FASTP:FASTQC_RAW' { - ext.args = '--quiet' - } +process { + withName: 'FASTQC_RAW' { + ext.args = '--quiet' + } - withName: '.*:FASTQ_FASTQC_UMITOOLS_FASTP:FASTQC_TRIM' { - ext.args = '--quiet' - publishDir = [ - path: { "${params.outdir}/${params.trimmer}/fastqc" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - } + withName: 'FASTQC_TRIM' { + ext.args = '--quiet' + publishDir = [ + path: "${params.outdir}/${params.trimmer}/fastqc", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] } -} -if (!params.skip_trimming) { - if (params.trimmer == 'fastp') { - process { - withName: '.*:FASTQ_FASTQC_UMITOOLS_FASTP:FASTP' { - ext.args = { params.extra_fastp_args ?: '' } - publishDir = [ - [ - path: { "${params.outdir}/${params.trimmer}" }, - mode: params.publish_dir_mode, - pattern: "*.{json,html}" - ], - [ - path: { "${params.outdir}/${params.trimmer}/log" }, - mode: params.publish_dir_mode, - pattern: "*.log" - ], - [ - path: { params.save_trimmed ? "${params.outdir}/${params.trimmer}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: "*.fastq.gz", - saveAs: { params.save_trimmed ? it : null } - ] - ] - } - } + withName: 'FASTP' { + ext.args = { params.extra_fastp_args ?: '' } + publishDir = [ + [ + path: "${params.outdir}/${params.trimmer}", + mode: params.publish_dir_mode, + pattern: "*.{json,html}" + ], + [ + path: "${params.outdir}/${params.trimmer}/log", + mode: params.publish_dir_mode, + pattern: "*.log" + ], + [ + path: params.save_trimmed ? "${params.outdir}/${params.trimmer}" : params.outdir, + mode: params.publish_dir_mode, + pattern: "*.fastq.gz", + saveAs: { params.save_trimmed ? it : null } + ] + ] } -} -if (params.with_umi && !params.skip_umi_extract) { - process { - withName: '.*:FASTQ_FASTQC_UMITOOLS_FASTP:UMITOOLS_EXTRACT' { - ext.args = { [ - params.umitools_extract_method ? "--extract-method=${params.umitools_extract_method}" : '', - params.umitools_bc_pattern ? "--bc-pattern='${params.umitools_bc_pattern}'" : '', - params.umitools_bc_pattern2 ? "--bc-pattern2='${params.umitools_bc_pattern2}'" : '', - params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' - ].join(' ').trim() } - publishDir = [ - [ - path: { "${params.outdir}/umitools" }, - mode: params.publish_dir_mode, - pattern: "*.log" - ], - [ - path: { params.save_umi_intermeds ? "${params.outdir}/umitools" : params.outdir }, - mode: params.publish_dir_mode, - pattern: "*.fastq.gz", - saveAs: { params.save_umi_intermeds ? it : null } - ] + withName: 'UMITOOLS_EXTRACT' { + ext.args = { [ + params.umitools_extract_method ? "--extract-method=${params.umitools_extract_method}" : '', + params.umitools_bc_pattern ? "--bc-pattern='${params.umitools_bc_pattern}'" : '', + params.umitools_bc_pattern2 ? "--bc-pattern2='${params.umitools_bc_pattern2}'" : '', + params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' + ].join(' ').trim() } + publishDir = [ + [ + path: "${params.outdir}/umitools", + mode: params.publish_dir_mode, + pattern: "*.log" + ], + [ + path: params.save_umi_intermeds ? "${params.outdir}/umitools" : params.outdir, + mode: params.publish_dir_mode, + pattern: "*.fastq.gz", + saveAs: { params.save_umi_intermeds ? it : null } ] - } + ] } } diff --git a/subworkflows/nf-core/fastq_subsample_fq_salmon/nextflow.config b/subworkflows/nf-core/fastq_subsample_fq_salmon/nextflow.config index 36a8c5d7a..2cf1f3aae 100644 --- a/subworkflows/nf-core/fastq_subsample_fq_salmon/nextflow.config +++ b/subworkflows/nf-core/fastq_subsample_fq_salmon/nextflow.config @@ -1,5 +1,5 @@ process { - withName: '.*:FASTQ_SUBSAMPLE_FQ_SALMON:FQ_SUBSAMPLE' { + withName: 'FQ_SUBSAMPLE' { ext.args = '--record-count 1000000 --seed 1' ext.prefix = { "${meta.id}.subsampled" } publishDir = [ @@ -7,7 +7,7 @@ process { ] } - withName: '.*:FASTQ_SUBSAMPLE_FQ_SALMON:SALMON_QUANT' { + withName: 'SALMON_QUANT' { ext.args = '--skipQuant' publishDir = [ enabled: false diff --git a/workflows/rnaseq/nextflow.config b/workflows/rnaseq/nextflow.config index f988d3d7c..80e46474b 100644 --- a/workflows/rnaseq/nextflow.config +++ b/workflows/rnaseq/nextflow.config @@ -1,176 +1,151 @@ -includeConfig "../../modules/local/bedtools_genomecov/nextflow.config" -includeConfig "../../modules/local/dupradar/nextflow.config" -includeConfig "../../modules/local/multiqc_custom_biotype/nextflow.config" -includeConfig "../../modules/nf-core/bbmap/bbsplit/nextflow.config" -includeConfig "../../modules/nf-core/cat/fastq/nextflow.config" -includeConfig "../../modules/nf-core/multiqc/nextflow.config" -includeConfig "../../modules/nf-core/preseq/lcextrap/nextflow.config" -includeConfig "../../modules/nf-core/qualimap/rnaseq/nextflow.config" -includeConfig "../../modules/nf-core/sortmerna/nextflow.config" -includeConfig "../../modules/nf-core/stringtie/stringtie/nextflow.config" -includeConfig "../../modules/nf-core/subread/featurecounts/nextflow.config" -includeConfig "../../subworkflows/local/align_star/nextflow.config" -includeConfig "../../subworkflows/local/quantify_rsem/nextflow.config" -includeConfig "../../subworkflows/nf-core/bam_markduplicates_picard/nextflow.config" -includeConfig "../../subworkflows/nf-core/bam_rseqc/nextflow.config" -includeConfig "../../subworkflows/nf-core/fastq_align_hisat2/nextflow.config" -includeConfig "../../subworkflows/nf-core/fastq_fastqc_umitools_fastp/nextflow.config" -includeConfig "../../subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/nextflow.config" -includeConfig "../../subworkflows/nf-core/fastq_subsample_fq_salmon/nextflow.config" // // STAR Salmon alignment options // -if (!params.skip_alignment && params.aligner == 'star_salmon') { - process { - withName: '.*:QUANTIFY_STAR_SALMON:SALMON_QUANT' { - ext.args = { params.extra_salmon_quant_args ?: '' } - publishDir = [ - path: { "${params.outdir}/${params.aligner}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('_meta_info.json') ? null : filename } - ] - } +process { + withName: '.*:QUANTIFY_STAR_SALMON:SALMON_QUANT' { + ext.args = { params.extra_salmon_quant_args ?: '' } + publishDir = [ + path: "${params.outdir}/${params.aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('_meta_info.json') ? null : filename } + ] + } - withName: '.*:QUANTIFY_STAR_SALMON:CUSTOM_TX2GENE' { - publishDir = [ - path: { "${params.outdir}/${params.aligner}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } + withName: '.*:QUANTIFY_STAR_SALMON:CUSTOM_TX2GENE' { + publishDir = [ + path: "${params.outdir}/${params.aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: '.*:QUANTIFY_STAR_SALMON:TXIMETA_TXIMPORT' { + ext.prefix = { "${quant_type}.merged" } + publishDir = [ + path: "${params.outdir}/${params.aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } - withName: '.*:QUANTIFY_STAR_SALMON:TXIMETA_TXIMPORT' { - ext.prefix = { "${quant_type}.merged" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}" }, + withName: '.*:QUANTIFY_STAR_SALMON:SE_.*' { + ext.prefix = { "${params.pseudo_aligner}.merged" } + publishDir = [ + path: "${params.outdir}/${params.aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.log') ? null : filename } + ] + } + withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts" } + } + withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_SCALED' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_scaled" } + } + withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_LENGTH_SCALED' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_length_scaled" } + } + withName: '.*:QUANTIFY_STAR_SALMON:SE_TRANSCRIPT' { + ext.prefix = { "${params.pseudo_aligner}.merged.transcript_counts" } + } + + withName: 'NFCORE_RNASEQ:RNASEQ:SAMTOOLS_SORT' { + ext.args = '-n' + ext.prefix = { "${meta.id}.umi_dedup.transcriptome" } + publishDir = [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, + mode: params.publish_dir_mode, + pattern: '*.bam', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } + ] + } + + withName: 'NFCORE_RNASEQ:RNASEQ:UMITOOLS_PREPAREFORSALMON' { + ext.prefix = { "${meta.id}.umi_dedup.transcriptome.filtered" } + publishDir = [ + [ + path: "${params.outdir}/${params.aligner}/umitools/log", + mode: params.publish_dir_mode, + pattern: '*.log' + ], + [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + pattern: '*.bam', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } ] - } + ] + } + + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { + ext.prefix = { "${meta.id}.transcriptome.sorted" } + publishDir = [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, + mode: params.publish_dir_mode, + pattern: '*.bam', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } + ] + } + + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { + publishDir = [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, + mode: params.publish_dir_mode, + pattern: '*.bai', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } + ] + } + + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.transcriptome.sorted.bam" } + publishDir = [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}/samtools_stats" : params.outdir, + mode: params.publish_dir_mode, + pattern: '*.{stats,flagstat,idxstats}', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } + ] + } - withName: '.*:QUANTIFY_STAR_SALMON:SE_.*' { - ext.prefix = { "${params.pseudo_aligner}.merged" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}" }, + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:UMITOOLS_DEDUP' { + ext.args = { [ + meta.single_end ? '' : '--unpaired-reads=discard --chimeric-pairs=discard', + params.umitools_grouping_method ? "--method='${params.umitools_grouping_method}'" : '', + params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' + ].join(' ').trim() } + ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted" } + publishDir = [ + [ + path: "${params.outdir}/${params.aligner}/umitools", + mode: params.publish_dir_mode, + pattern: '*.tsv' + ], + [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.log') ? null : filename } + pattern: '*.bam', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } ] - } - withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts" } - } - withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_scaled" } - } - withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_LENGTH_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_length_scaled" } - } - withName: '.*:QUANTIFY_STAR_SALMON:SE_TRANSCRIPT' { - ext.prefix = { "${params.pseudo_aligner}.merged.transcript_counts" } - } - } - - if (params.with_umi) { - process { - withName: 'NFCORE_RNASEQ:RNASEQ:SAMTOOLS_SORT' { - ext.args = '-n' - ext.prefix = { "${meta.id}.umi_dedup.transcriptome" } - publishDir = [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bam', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - } - - withName: 'NFCORE_RNASEQ:RNASEQ:UMITOOLS_PREPAREFORSALMON' { - ext.prefix = { "${meta.id}.umi_dedup.transcriptome.filtered" } - publishDir = [ - [ - path: { "${params.outdir}/${params.aligner}/umitools/log" }, - mode: params.publish_dir_mode, - pattern: '*.log' - ], - [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bam', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - ] - } - - withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { - ext.prefix = { "${meta.id}.transcriptome.sorted" } - publishDir = [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bam', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - } - - withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { - publishDir = [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bai', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - } - - withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.transcriptome.sorted.bam" } - publishDir = [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}/samtools_stats" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.{stats,flagstat,idxstats}', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - } - - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:UMITOOLS_DEDUP' { - ext.args = { [ - meta.single_end ? '' : '--unpaired-reads=discard --chimeric-pairs=discard', - params.umitools_grouping_method ? "--method='${params.umitools_grouping_method}'" : '', - params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' - ].join(' ').trim() } - ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted" } - publishDir = [ - [ - path: { "${params.outdir}/${params.aligner}/umitools" }, - mode: params.publish_dir_mode, - pattern: '*.tsv' - ], - [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bam', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - ] - } - - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:SAMTOOLS_INDEX' { - publishDir = [ - path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bai', - saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } - ] - } - - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted.bam" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/samtools_stats" }, - mode: params.publish_dir_mode, - pattern: '*.{stats,flagstat,idxstats}' - ] - } - } + ] + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:SAMTOOLS_INDEX' { + publishDir = [ + path: params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, + mode: params.publish_dir_mode, + pattern: '*.bai', + saveAs: { params.save_align_intermeds || params.save_umi_intermeds ? it : null } + ] + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted.bam" } + publishDir = [ + path: "${params.outdir}/${params.aligner}/samtools_stats", + mode: params.publish_dir_mode, + pattern: '*.{stats,flagstat,idxstats}' + ] } } @@ -178,90 +153,84 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { // General alignment options // -if (!params.skip_alignment) { - process { - withName: 'NFCORE_RNASEQ:RNASEQ:.*:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.sorted.bam" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/samtools_stats" }, - mode: params.publish_dir_mode, - pattern: "*.{stats,flagstat,idxstats}" - ] - } - - withName: 'NFCORE_RNASEQ:RNASEQ:.*:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { - ext.prefix = { "${meta.id}.sorted" } - publishDir = [ - path: { ( ['star_salmon','hisat2'].contains(params.aligner) && - ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) - ) || params.save_align_intermeds || params.skip_markduplicates ? "${params.outdir}/${params.aligner}" : params.outdir }, +process { + withName: 'NFCORE_RNASEQ:RNASEQ:.*:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.sorted.bam" } + publishDir = [ + path: "${params.outdir}/${params.aligner}/samtools_stats", + mode: params.publish_dir_mode, + pattern: "*.{stats,flagstat,idxstats}" + ] + } + + withName: 'NFCORE_RNASEQ:RNASEQ:.*:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { + ext.prefix = { "${meta.id}.sorted" } + publishDir = [ + path: { ( ['star_salmon','hisat2'].contains(params.aligner) && + ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) + ) || params.save_align_intermeds || params.skip_markduplicates ? "${params.outdir}/${params.aligner}" : params.outdir }, + mode: params.publish_dir_mode, + pattern: "*.bam", + saveAs: { ( ['star_salmon','hisat2'].contains(params.aligner) && + ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) + ) || params.save_align_intermeds || params.skip_markduplicates ? it : null } + ] + } + + withName: 'NFCORE_RNASEQ:RNASEQ:.*:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { + ext.args = { params.bam_csi_index ? '-c' : '' } + publishDir = [ + path: { ( ['star_salmon','hisat2'].contains(params.aligner) && + ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) + ) || params.save_align_intermeds || params.skip_markduplicates ? "${params.outdir}/${params.aligner}" : params.outdir }, + mode: params.publish_dir_mode, + pattern: "*.{bai,csi}", + saveAs: { ( ['star_salmon','hisat2'].contains(params.aligner) && + ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) + ) || params.save_align_intermeds || params.skip_markduplicates ? it : null } + ] + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:UMITOOLS_DEDUP' { + ext.args = { [ + meta.single_end ? '' : '--unpaired-reads=discard --chimeric-pairs=discard', + params.umitools_grouping_method ? "--method='${params.umitools_grouping_method}'" : '', + params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' + ].join(' ').trim() } + ext.prefix = { "${meta.id}.umi_dedup.sorted" } + publishDir = [ + [ + path: "${params.outdir}/${params.aligner}/umitools", mode: params.publish_dir_mode, - pattern: "*.bam", - saveAs: { ( ['star_salmon','hisat2'].contains(params.aligner) && - ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) - ) || params.save_align_intermeds || params.skip_markduplicates ? it : null } - ] - } - - withName: 'NFCORE_RNASEQ:RNASEQ:.*:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { - ext.args = { params.bam_csi_index ? '-c' : '' } - publishDir = [ - path: { ( ['star_salmon','hisat2'].contains(params.aligner) && - ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) - ) || params.save_align_intermeds || params.skip_markduplicates ? "${params.outdir}/${params.aligner}" : params.outdir }, + pattern: '*.tsv' + ], + [ + path: params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, mode: params.publish_dir_mode, - pattern: "*.{bai,csi}", - saveAs: { ( ['star_salmon','hisat2'].contains(params.aligner) && - ( params.save_align_intermeds || ( !params.with_umi && params.skip_markduplicates ) ) - ) || params.save_align_intermeds || params.skip_markduplicates ? it : null } + pattern: '*.bam', + saveAs: { params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? it : null } ] - } - } - - if (params.with_umi && ['star_salmon','hisat2'].contains(params.aligner)) { - process { - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:UMITOOLS_DEDUP' { - ext.args = { [ - meta.single_end ? '' : '--unpaired-reads=discard --chimeric-pairs=discard', - params.umitools_grouping_method ? "--method='${params.umitools_grouping_method}'" : '', - params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' - ].join(' ').trim() } - ext.prefix = { "${meta.id}.umi_dedup.sorted" } - publishDir = [ - [ - path: { "${params.outdir}/${params.aligner}/umitools" }, - mode: params.publish_dir_mode, - pattern: '*.tsv' - ], - [ - path: { params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.bam', - saveAs: { params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? it : null } - ] - ] - } - - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:SAMTOOLS_INDEX' { - ext.args = { params.bam_csi_index ? '-c' : '' } - ext.prefix = { "${meta.id}.umi_dedup.sorted" } - publishDir = [ - path: { params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, - mode: params.publish_dir_mode, - pattern: '*.{bai,csi}', - saveAs: { params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? it : null } - ] - } - - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.umi_dedup.sorted.bam" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/samtools_stats" }, - mode: params.publish_dir_mode, - pattern: '*.{stats,flagstat,idxstats}' - ] - } - } + ] + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:SAMTOOLS_INDEX' { + ext.args = { params.bam_csi_index ? '-c' : '' } + ext.prefix = { "${meta.id}.umi_dedup.sorted" } + publishDir = [ + path: params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir, + mode: params.publish_dir_mode, + pattern: '*.{bai,csi}', + saveAs: { params.save_align_intermeds || params.with_umi || params.save_umi_intermeds ? it : null } + ] + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.umi_dedup.sorted.bam" } + publishDir = [ + path: "${params.outdir}/${params.aligner}/samtools_stats", + mode: params.publish_dir_mode, + pattern: '*.{stats,flagstat,idxstats}' + ] } } @@ -269,39 +238,37 @@ if (!params.skip_alignment) { // bigWig coverage options // -if (!params.skip_alignment && !params.skip_bigwig) { - process { - withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_FORWARD:UCSC_BEDCLIP' { - ext.prefix = { "${meta.id}.clip.forward" } - publishDir = [ - enabled: false - ] - } +process { + withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_FORWARD:UCSC_BEDCLIP' { + ext.prefix = { "${meta.id}.clip.forward" } + publishDir = [ + enabled: false + ] + } - withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_FORWARD:UCSC_BEDGRAPHTOBIGWIG' { - ext.prefix = { "${meta.id}.forward" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/bigwig" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } + withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_FORWARD:UCSC_BEDGRAPHTOBIGWIG' { + ext.prefix = { "${meta.id}.forward" } + publishDir = [ + path: "${params.outdir}/${params.aligner}/bigwig", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } - withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_REVERSE:UCSC_BEDCLIP' { - ext.prefix = { "${meta.id}.clip.reverse" } - publishDir = [ - enabled: false - ] - } + withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_REVERSE:UCSC_BEDCLIP' { + ext.prefix = { "${meta.id}.clip.reverse" } + publishDir = [ + enabled: false + ] + } - withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_REVERSE:UCSC_BEDGRAPHTOBIGWIG' { - ext.prefix = { "${meta.id}.reverse" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/bigwig" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } + withName: '.*:BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_REVERSE:UCSC_BEDGRAPHTOBIGWIG' { + ext.prefix = { "${meta.id}.reverse" } + publishDir = [ + path: "${params.outdir}/${params.aligner}/bigwig", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] } } @@ -309,45 +276,35 @@ if (!params.skip_alignment && !params.skip_bigwig) { // DESeq2 QC options // -if (!params.skip_alignment && params.aligner == 'star_salmon') { - if (!params.skip_qc & !params.skip_deseq2_qc) { - process { - withName: 'DESEQ2_QC_STAR_SALMON' { - ext.args = { [ - "--id_col 1", - "--sample_suffix ''", - "--count_col 3", - params.deseq2_vst ? '--vst TRUE' : '' - ].join(' ').trim() } - ext.args2 = 'star_salmon' - publishDir = [ - path: { "${params.outdir}/${params.aligner}/deseq2_qc" }, - mode: params.publish_dir_mode, - pattern: "*{RData,pca.vals.txt,plots.pdf,sample.dists.txt,size_factors,log}" - ] - } - } +process { + withName: 'DESEQ2_QC_STAR_SALMON' { + ext.args = { [ + "--id_col 1", + "--sample_suffix ''", + "--count_col 3", + params.deseq2_vst ? '--vst TRUE' : '' + ].join(' ').trim() } + ext.args2 = 'star_salmon' + publishDir = [ + path: "${params.outdir}/${params.aligner}/deseq2_qc", + mode: params.publish_dir_mode, + pattern: "*{RData,pca.vals.txt,plots.pdf,sample.dists.txt,size_factors,log}" + ] } -} -if (!params.skip_alignment && params.aligner == 'star_rsem') { - if (!params.skip_qc & !params.skip_deseq2_qc) { - process { - withName: 'DESEQ2_QC_RSEM' { - ext.args = { [ - "--id_col 1", - "--sample_suffix ''", - "--count_col 3", - params.deseq2_vst ? '--vst TRUE' : '' - ].join(' ').trim() } - ext.args2 = 'star_rsem' - publishDir = [ - path: { "${params.outdir}/${params.aligner}/deseq2_qc" }, - mode: params.publish_dir_mode, - pattern: "*{RData,pca.vals.txt,plots.pdf,sample.dists.txt,size_factors,log}" - ] - } - } + withName: 'DESEQ2_QC_RSEM' { + ext.args = { [ + "--id_col 1", + "--sample_suffix ''", + "--count_col 3", + params.deseq2_vst ? '--vst TRUE' : '' + ].join(' ').trim() } + ext.args2 = 'star_rsem' + publishDir = [ + path: "${params.outdir}/${params.aligner}/deseq2_qc", + mode: params.publish_dir_mode, + pattern: "*{RData,pca.vals.txt,plots.pdf,sample.dists.txt,size_factors,log}" + ] } } @@ -355,63 +312,56 @@ if (!params.skip_alignment && params.aligner == 'star_rsem') { // Pseudo-alignment options // -if (!params.skip_pseudo_alignment && params.pseudo_aligner) { - process { - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:CUSTOM_TX2GENE' { - publishDir = [ - path: { "${params.outdir}/${params.pseudo_aligner}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } +process { + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:CUSTOM_TX2GENE' { + publishDir = [ + path: "${params.outdir}/${params.pseudo_aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:TXIMETA_TXIMPORT' { - ext.prefix = { "${quant_type}.merged" } - publishDir = [ - path: { "${params.outdir}/${params.pseudo_aligner}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:TXIMETA_TXIMPORT' { + ext.prefix = { "${quant_type}.merged" } + publishDir = [ + path: "${params.outdir}/${params.pseudo_aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_.*' { - ext.args = '--assay_names counts,abundance' - publishDir = [ - path: { "${params.outdir}/${params.pseudo_aligner}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.log') ? null : filename } - ] - } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts" } - } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_scaled" } - } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_LENGTH_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_length_scaled" } - } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_TRANSCRIPT' { - ext.prefix = { "${params.pseudo_aligner}.merged.transcript_counts" } - } - } - - if (!params.skip_qc & !params.skip_deseq2_qc) { - process { - withName: 'DESEQ2_QC_PSEUDO' { - ext.args = { [ - "--id_col 1", - "--sample_suffix ''", - "--count_col 3", - params.deseq2_vst ? '--vst TRUE' : '' - ].join(' ').trim() } - ext.args2 = { params.pseudo_aligner } - publishDir = [ - path: { "${params.outdir}/${params.pseudo_aligner}/deseq2_qc" }, - mode: params.publish_dir_mode, - pattern: "*{RData,pca.vals.txt,plots.pdf,sample.dists.txt,size_factors,log}" - ] - } - } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_.*' { + ext.args = '--assay_names counts,abundance' + publishDir = [ + path: "${params.outdir}/${params.pseudo_aligner}", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.log') ? null : filename } + ] + } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts" } + } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_SCALED' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_scaled" } + } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_LENGTH_SCALED' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_length_scaled" } + } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_TRANSCRIPT' { + ext.prefix = { "${params.pseudo_aligner}.merged.transcript_counts" } + } + withName: 'DESEQ2_QC_PSEUDO' { + ext.args = { [ + "--id_col 1", + "--sample_suffix ''", + "--count_col 3", + params.deseq2_vst ? '--vst TRUE' : '' + ].join(' ').trim() } + ext.args2 = { params.pseudo_aligner } + publishDir = [ + path: "${params.outdir}/${params.pseudo_aligner}/deseq2_qc", + mode: params.publish_dir_mode, + pattern: "*{RData,pca.vals.txt,plots.pdf,sample.dists.txt,size_factors,log}" + ] } }