From 4bfc0f909bc3dcc914d5638dc784e9119cb638db Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 16 Jul 2020 09:51:34 +0200 Subject: [PATCH 1/6] remove headers from help message --- main.nf | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/main.nf b/main.nf index 8d7ab3f974..749de268ec 100644 --- a/main.nf +++ b/main.nf @@ -21,6 +21,14 @@ nf-core/sarek: nextflow.preview.dsl = 2 +// Print help message if required + +if (params.help) { + def command = "nextflow run nf-core/sarek -profile docker --input sample.tsv" + log.info Schema.params_help("$baseDir/nextflow_schema.json", command) + exit 0 +} + /* ================================================================================ INCLUDE SAREK FUNCTIONS @@ -244,16 +252,6 @@ workflow_summary = Channel.value(workflow_summary) if ('mutect2' in tools && !(params.pon)) log.warn "[nf-core/sarek] Mutect2 was requested, but as no panel of normals were given, results will not be optimal" if (params.sentieon) log.warn "[nf-core/sarek] Sentieon will be used, only works if Sentieon is available where nf-core/sarek is run" -// Print help message if required - -if (params.help) { - def command = "nextflow run nf-core/sarek --input sample.tsv -profile docker" - log.info Headers.nf_core(workflow, params.monochrome_logs) - log.info Schema.params_help("$baseDir/nextflow_schema.json", command) - exit 0 -} - - /* ================================================================================ INCLUDE LOCAL PIPELINE MODULES From b43b580161b792ba46bb9fe55ea4ff77d6f0e8fb Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 16 Jul 2020 10:12:15 +0200 Subject: [PATCH 2/6] fix out issue with nextflow 20.06.0-edge --- modules/subworkflows/build_indices.nf | 49 +++++++++++++-------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/modules/subworkflows/build_indices.nf b/modules/subworkflows/build_indices.nf index ae3e4967d2..d5569e63e8 100644 --- a/modules/subworkflows/build_indices.nf +++ b/modules/subworkflows/build_indices.nf @@ -19,47 +19,46 @@ include { SAMTOOLS_FAIDX as SAMTOOLS_FAIDX } from '../nf-core/samtools_faidx.nf' workflow BUILD_INDICES{ take: - ch_dbsnp - ch_fasta - ch_germline_resource - ch_known_indels - ch_pon + dbsnp + fasta + germline_resource + known_indels + pon step main: - if (!(params.bwa) && params.fasta && 'mapping' in step) - BWAMEM2_INDEX(ch_fasta) + if (!(params.bwa) && params.fasta && 'mapping' in step) + BWAMEM2_INDEX(fasta) if (!(params.dict) && params.fasta && !('annotate' in step) && !('controlfreec' in step)) - GATK_CREATE_SEQUENCE_DICTIONARY(ch_fasta) + GATK_CREATE_SEQUENCE_DICTIONARY(fasta) if (!(params.fasta_fai) && params.fasta && !('annotate' in step)) - SAMTOOLS_FAIDX(ch_fasta) + SAMTOOLS_FAIDX(fasta) if (!(params.dbsnp_index) && params.dbsnp && ('mapping' in step || 'preparerecalibration' in step || 'controlfreec' in tools || 'haplotypecaller' in tools || 'mutect2' in tools || 'tnscope' in tools)) - HTSLIB_TABIX_DBSNP(ch_dbsnp) - + HTSLIB_TABIX_DBSNP(dbsnp) + if (!(params.germline_resource_index) && params.germline_resource && 'mutect2' in tools) - HTSLIB_TABIX_GERMLINE_RESOURCE(ch_germline_resource) - + HTSLIB_TABIX_GERMLINE_RESOURCE(germline_resource) + if (!(params.known_indels_index) && params.known_indels && ('mapping' in step || 'preparerecalibration' in step)) - HTSLIB_TABIX_KNOWN_INDELS(ch_known_indels) + HTSLIB_TABIX_KNOWN_INDELS(known_indels) if (!(params.pon_index) && params.pon && ('tnscope' in tools || 'mutect2' in tools)) - HTSLIB_TABIX_PON(ch_pon) + HTSLIB_TABIX_PON(pon) - if (!(params.intervals) && !('annotate' in step) && !('controlfreec' in step)) { + if (!(params.intervals) && !('annotate' in step) && !('controlfreec' in step)) BUILD_INTERVALS(SAMTOOLS_FAIDX.out) - } emit: - bwa_built = BWAMEM2_INDEX.out - dbsnp_tbi = HTSLIB_TABIX_DBSNP.out - dictBuilt = GATK_CREATE_SEQUENCE_DICTIONARY.out - fai_built = SAMTOOLS_FAIDX.out - germline_resource_tbi = HTSLIB_TABIX_GERMLINE_RESOURCE.out - intervalBuilt = BUILD_INTERVALS.out - known_indels_tbi = HTSLIB_TABIX_KNOWN_INDELS.out - pon_tbi = HTSLIB_TABIX_PON.out + bwa = BWAMEM2_INDEX + dbsnp_tbi = HTSLIB_TABIX_DBSNP + dict = GATK_CREATE_SEQUENCE_DICTIONARY + fai = SAMTOOLS_FAIDX + germline_resource_tbi = HTSLIB_TABIX_GERMLINE_RESOURCE + intervals = BUILD_INTERVALS + known_indels_tbi = HTSLIB_TABIX_KNOWN_INDELS + pon_tbi = HTSLIB_TABIX_PON } From bb39d07aeec0a24b580aae566a15461742643c64 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 16 Jul 2020 11:35:56 +0200 Subject: [PATCH 3/6] commit all current changes --- main.nf | 29 +++++++++++++++------------ modules/nf-core/multiqc.nf | 2 +- modules/nf-core/samtools_faidx.nf | 2 -- modules/subworkflows/build_indices.nf | 22 ++++++++++---------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/main.nf b/main.nf index 749de268ec..a55408fd12 100644 --- a/main.nf +++ b/main.nf @@ -334,19 +334,19 @@ workflow { pon, step) - bwa = params.bwa ? Channel.value(file(params.bwa)) : BUILD_INDICES.out.bwa_built - dict = params.dict ? Channel.value(file(params.dict)) : BUILD_INDICES.out.dictBuilt - fai = params.fasta_fai ? Channel.value(file(params.fasta_fai)) : BUILD_INDICES.out.fai_built - dbsnp_tbi = params.dbsnp ? params.dbsnp_index ? Channel.value(file(params.dbsnp_index)) : BUILD_INDICES.out.dbsnp_tbi : "null" - germline_resource_tbi = params.germline_resource ? params.germline_resource_index ? Channel.value(file(params.germline_resource_index)) : BUILD_INDICES.out.germline_resource_tbi : "null" - known_indels_tbi = params.known_indels ? params.known_indels_index ? Channel.value(file(params.known_indels_index)) : BUILD_INDICES.out.known_indels_tbi.collect() : "null" - pon_tbi = params.pon ? params.pon_index ? Channel.value(file(params.pon_index)) : BUILD_INDICES.out.pon_tbi : "null" - intervals = params.no_intervals ? "null" : params.intervals && !('annotate' in step) ? Channel.value(file(params.intervals)) : BUILD_INDICES.out.intervalBuilt - intervals.dump(tag: 'intervals') + bwa = params.bwa ?: BUILD_INDICES.out.bwa + dbsnp_tbi = params.dbsnp ? params.dbsnp_index ? params.dbsnp_index : BUILD_INDICES.out.dbsnp_tbi : Channel.empty() + dict = params.dict ?: BUILD_INDICES.out.dict + fai = params.fasta_fai ? params.fasta_fai : BUILD_INDICES.out.fai + germline_resource_tbi = params.germline_resource ? params.germline_resource_index ? params.germline_resource_index : BUILD_INDICES.out.germline_resource_tbi : Channel.empty() + // intervals = params.intervals ?: BUILD_INDICES.out.intervals + // intervals = params.no_intervals ? Channel.empty() : params.intervals && !('annotate' in step) ?: BUILD_INDICES.out.intervals + known_indels_tbi = params.known_indels ? params.known_indels_index ? params.known_indels_index : BUILD_INDICES.out.known_indels_tbi.collect() : Channel.empty() + pon_tbi = params.pon ? params.pon_index ? params.pon_index : BUILD_INDICES.out.pon_tbi : Channel.empty() // PREPROCESSING if((!params.no_intervals) && step != 'annotate') - CREATE_INTERVALS_BED(intervals) + CREATE_INTERVALS_BED(BUILD_INDICES.out.intervals) // BED INTERVAL CHANNEL TRANSFORMING ch_bed_intervals = CREATE_INTERVALS_BED.out @@ -373,10 +373,13 @@ workflow { ch_bed_intervals = Channel.from(file("${params.outdir}/no_intervals.bed")) } - //if(!('fastqc' in skipQC)) + // if(!('fastqc' in skipQC)) FASTQC(input_sample) - if(params.trim_fastq) { + input_sample.view() + bwa.view() + + if (params.trim_fastq) { TRIM_GALORE(input_sample) BWAMEM2_MEM(TRIM_GALORE.out.trimmed_reads, bwa, fasta, fai) } @@ -395,7 +398,7 @@ workflow { multiqc_config, multiqc_custom_config.ifEmpty([]), GET_SOFTWARE_VERSIONS.out.yml, - TRIM_GALORE.out.report.ifEmpty([]), + // TRIM_GALORE.out.report.ifEmpty([]), workflow_summary) } diff --git a/modules/nf-core/multiqc.nf b/modules/nf-core/multiqc.nf index a97e8daa17..526bdf62ec 100644 --- a/modules/nf-core/multiqc.nf +++ b/modules/nf-core/multiqc.nf @@ -13,7 +13,7 @@ process MULTIQC { path multiqc_config path multiqc_custom_config path software_versions - path trim_galore + // path trim_galore val workflow_summary output: diff --git a/modules/nf-core/samtools_faidx.nf b/modules/nf-core/samtools_faidx.nf index b3eb6fa86b..3242d7fac3 100644 --- a/modules/nf-core/samtools_faidx.nf +++ b/modules/nf-core/samtools_faidx.nf @@ -10,8 +10,6 @@ process SAMTOOLS_FAIDX { output: path "${fasta}.fai" - //when: !(params.fasta_fai) && params.fasta && !('annotate' in step) - script: """ samtools faidx ${fasta} diff --git a/modules/subworkflows/build_indices.nf b/modules/subworkflows/build_indices.nf index d5569e63e8..44cb4ae8f2 100644 --- a/modules/subworkflows/build_indices.nf +++ b/modules/subworkflows/build_indices.nf @@ -7,15 +7,15 @@ // And then initialize channels based on params or indexes that were just built include { BUILD_INTERVALS } from '../local/build_intervals.nf' -include { BWAMEM2_INDEX as BWAMEM2_INDEX } from '../nf-core/bwamem2_index.nf' -include { GATK_CREATE_SEQUENCE_DICTIONARY as GATK_CREATE_SEQUENCE_DICTIONARY } from '../local/gatk_dict.nf' +include { BWAMEM2_INDEX } from '../nf-core/bwamem2_index.nf' +include { GATK_CREATE_SEQUENCE_DICTIONARY } from '../local/gatk_dict.nf' include { HTSLIB_TABIX as HTSLIB_TABIX_DBSNP; HTSLIB_TABIX as HTSLIB_TABIX_GERMLINE_RESOURCE; HTSLIB_TABIX as HTSLIB_TABIX_KNOWN_INDELS; HTSLIB_TABIX as HTSLIB_TABIX_PON; } from '../nf-core/htslib_tabix' -include { SAMTOOLS_FAIDX as SAMTOOLS_FAIDX } from '../nf-core/samtools_faidx.nf' +include { SAMTOOLS_FAIDX } from '../nf-core/samtools_faidx.nf' workflow BUILD_INDICES{ take: @@ -53,12 +53,12 @@ workflow BUILD_INDICES{ BUILD_INTERVALS(SAMTOOLS_FAIDX.out) emit: - bwa = BWAMEM2_INDEX - dbsnp_tbi = HTSLIB_TABIX_DBSNP - dict = GATK_CREATE_SEQUENCE_DICTIONARY - fai = SAMTOOLS_FAIDX - germline_resource_tbi = HTSLIB_TABIX_GERMLINE_RESOURCE - intervals = BUILD_INTERVALS - known_indels_tbi = HTSLIB_TABIX_KNOWN_INDELS - pon_tbi = HTSLIB_TABIX_PON + bwa = BWAMEM2_INDEX.out + dbsnp_tbi = HTSLIB_TABIX_DBSNP.out + dict = GATK_CREATE_SEQUENCE_DICTIONARY.out + fai = SAMTOOLS_FAIDX.out + germline_resource_tbi = HTSLIB_TABIX_GERMLINE_RESOURCE.out + intervals = BUILD_INTERVALS.out + known_indels_tbi = HTSLIB_TABIX_KNOWN_INDELS.out + pon_tbi = HTSLIB_TABIX_PON.out } From ad514345bd0242cf468f9cc3b6b151c868e66232 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 16 Jul 2020 14:04:46 +0200 Subject: [PATCH 4/6] optional output --- modules/subworkflows/build_indices.nf | 48 ++++++++++++++++++--------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/modules/subworkflows/build_indices.nf b/modules/subworkflows/build_indices.nf index 44cb4ae8f2..f45547cbd5 100644 --- a/modules/subworkflows/build_indices.nf +++ b/modules/subworkflows/build_indices.nf @@ -29,36 +29,52 @@ workflow BUILD_INDICES{ main: if (!(params.bwa) && params.fasta && 'mapping' in step) - BWAMEM2_INDEX(fasta) + result_bwa = BWAMEM2_INDEX(fasta) + else + result_bwa = Channel.empty() if (!(params.dict) && params.fasta && !('annotate' in step) && !('controlfreec' in step)) - GATK_CREATE_SEQUENCE_DICTIONARY(fasta) + result_dict = GATK_CREATE_SEQUENCE_DICTIONARY(fasta) + else + result_dict = Channel.empty() if (!(params.fasta_fai) && params.fasta && !('annotate' in step)) - SAMTOOLS_FAIDX(fasta) + result_fai = SAMTOOLS_FAIDX(fasta) + else + result_fai = Channel.empty() if (!(params.dbsnp_index) && params.dbsnp && ('mapping' in step || 'preparerecalibration' in step || 'controlfreec' in tools || 'haplotypecaller' in tools || 'mutect2' in tools || 'tnscope' in tools)) - HTSLIB_TABIX_DBSNP(dbsnp) + result_dbsnp_tbi = HTSLIB_TABIX_DBSNP(dbsnp) + else + result_dbsnp_tbi = Channel.empty() if (!(params.germline_resource_index) && params.germline_resource && 'mutect2' in tools) - HTSLIB_TABIX_GERMLINE_RESOURCE(germline_resource) + result_germline_resource_tbi = HTSLIB_TABIX_GERMLINE_RESOURCE(germline_resource) + else + result_germline_resource_tbi = Channel.empty() if (!(params.known_indels_index) && params.known_indels && ('mapping' in step || 'preparerecalibration' in step)) - HTSLIB_TABIX_KNOWN_INDELS(known_indels) + result_known_indels_tbi = HTSLIB_TABIX_KNOWN_INDELS(known_indels) + else + result_known_indels_tbi = Channel.empty() if (!(params.pon_index) && params.pon && ('tnscope' in tools || 'mutect2' in tools)) - HTSLIB_TABIX_PON(pon) + result_pon_tbi = HTSLIB_TABIX_PON(pon) + else + result_pon_tbi = Channel.empty() if (!(params.intervals) && !('annotate' in step) && !('controlfreec' in step)) - BUILD_INTERVALS(SAMTOOLS_FAIDX.out) + result_intervals = BUILD_INTERVALS(SAMTOOLS_FAIDX.out) + else + result_intervals = Channel.empty() emit: - bwa = BWAMEM2_INDEX.out - dbsnp_tbi = HTSLIB_TABIX_DBSNP.out - dict = GATK_CREATE_SEQUENCE_DICTIONARY.out - fai = SAMTOOLS_FAIDX.out - germline_resource_tbi = HTSLIB_TABIX_GERMLINE_RESOURCE.out - intervals = BUILD_INTERVALS.out - known_indels_tbi = HTSLIB_TABIX_KNOWN_INDELS.out - pon_tbi = HTSLIB_TABIX_PON.out + bwa = result_bwa + dbsnp_tbi = result_dbsnp_tbi + dict = result_dict + fai = result_fai + germline_resource_tbi = result_germline_resource_tbi + intervals = result_intervals + known_indels_tbi = result_known_indels_tbi + pon_tbi = result_pon_tbi } From bbd462b639781be59e3b01cdde18708a3095b9f9 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 16 Jul 2020 14:29:16 +0200 Subject: [PATCH 5/6] trim_galore is optional too --- main.nf | 18 ++++++++---------- modules/nf-core/multiqc.nf | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/main.nf b/main.nf index a55408fd12..affb07d088 100644 --- a/main.nf +++ b/main.nf @@ -335,14 +335,13 @@ workflow { step) bwa = params.bwa ?: BUILD_INDICES.out.bwa - dbsnp_tbi = params.dbsnp ? params.dbsnp_index ? params.dbsnp_index : BUILD_INDICES.out.dbsnp_tbi : Channel.empty() + dbsnp_tbi = params.dbsnp ? params.dbsnp_index ?: BUILD_INDICES.out.dbsnp_tbi : Channel.empty() dict = params.dict ?: BUILD_INDICES.out.dict fai = params.fasta_fai ? params.fasta_fai : BUILD_INDICES.out.fai - germline_resource_tbi = params.germline_resource ? params.germline_resource_index ? params.germline_resource_index : BUILD_INDICES.out.germline_resource_tbi : Channel.empty() - // intervals = params.intervals ?: BUILD_INDICES.out.intervals - // intervals = params.no_intervals ? Channel.empty() : params.intervals && !('annotate' in step) ?: BUILD_INDICES.out.intervals - known_indels_tbi = params.known_indels ? params.known_indels_index ? params.known_indels_index : BUILD_INDICES.out.known_indels_tbi.collect() : Channel.empty() - pon_tbi = params.pon ? params.pon_index ? params.pon_index : BUILD_INDICES.out.pon_tbi : Channel.empty() + germline_resource_tbi = params.germline_resource ? params.germline_resource_index ?: BUILD_INDICES.out.germline_resource_tbi : Channel.empty() + intervals = params.no_intervals ? Channel.empty() : params.intervals && !('annotate' in step) ? params.intervals : BUILD_INDICES.out.intervals + known_indels_tbi = params.known_indels ? params.known_indels_index ?: BUILD_INDICES.out.known_indels_tbi.collect() : Channel.empty() + pon_tbi = params.pon ? params.pon_index ?: BUILD_INDICES.out.pon_tbi : Channel.empty() // PREPROCESSING if((!params.no_intervals) && step != 'annotate') @@ -376,14 +375,13 @@ workflow { // if(!('fastqc' in skipQC)) FASTQC(input_sample) - input_sample.view() - bwa.view() - if (params.trim_fastq) { TRIM_GALORE(input_sample) + result_trim_galore = TRIM_GALORE.out.report BWAMEM2_MEM(TRIM_GALORE.out.trimmed_reads, bwa, fasta, fai) } else { + result_trim_galore = Channel.empty() BWAMEM2_MEM(input_sample, bwa, fasta, fai) } @@ -398,7 +396,7 @@ workflow { multiqc_config, multiqc_custom_config.ifEmpty([]), GET_SOFTWARE_VERSIONS.out.yml, - // TRIM_GALORE.out.report.ifEmpty([]), + result_trim_galore.ifEmpty([]), workflow_summary) } diff --git a/modules/nf-core/multiqc.nf b/modules/nf-core/multiqc.nf index 526bdf62ec..a97e8daa17 100644 --- a/modules/nf-core/multiqc.nf +++ b/modules/nf-core/multiqc.nf @@ -13,7 +13,7 @@ process MULTIQC { path multiqc_config path multiqc_custom_config path software_versions - // path trim_galore + path trim_galore val workflow_summary output: From d492db4b6e812c7de3360ba4058b28fa45367da3 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 16 Jul 2020 14:30:41 +0200 Subject: [PATCH 6/6] use intervals --- main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.nf b/main.nf index affb07d088..673aef0629 100644 --- a/main.nf +++ b/main.nf @@ -345,7 +345,7 @@ workflow { // PREPROCESSING if((!params.no_intervals) && step != 'annotate') - CREATE_INTERVALS_BED(BUILD_INDICES.out.intervals) + CREATE_INTERVALS_BED(intervals) // BED INTERVAL CHANNEL TRANSFORMING ch_bed_intervals = CREATE_INTERVALS_BED.out