From 7bf7d14184059d91ab8dfd1c5a7199ea5e2c9cd6 Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Wed, 23 Aug 2023 15:10:38 +0200 Subject: [PATCH 1/9] Make it possible to skip multiqc with `--skip_tools` --- workflows/demultiplex.nf | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/workflows/demultiplex.nf b/workflows/demultiplex.nf index e745588e..57dee501 100644 --- a/workflows/demultiplex.nf +++ b/workflows/demultiplex.nf @@ -229,24 +229,26 @@ workflow DEMULTIPLEX { ) // MODULE: MultiQC - workflow_summary = WorkflowDemultiplex.paramsSummaryMultiqc(workflow, summary_params) - ch_workflow_summary = Channel.value(workflow_summary) - - methods_description = WorkflowDemultiplex.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description) - ch_methods_description = Channel.value(methods_description) - - ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) - ch_multiqc_files.collect().dump(tag: "DEMULTIPLEX::MultiQC files",{FormattingService.prettyFormat(it)}) - - MULTIQC ( - ch_multiqc_files.collect(), - ch_multiqc_config.toList(), - ch_multiqc_custom_config.toList(), - ch_multiqc_logo.toList() - ) - multiqc_report = MULTIQC.out.report.toList() + if (!("multiqc" in skip_tools)){ + workflow_summary = WorkflowDemultiplex.paramsSummaryMultiqc(workflow, summary_params) + ch_workflow_summary = Channel.value(workflow_summary) + + methods_description = WorkflowDemultiplex.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description) + ch_methods_description = Channel.value(methods_description) + + ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) + ch_multiqc_files.collect().dump(tag: "DEMULTIPLEX::MultiQC files",{FormattingService.prettyFormat(it)}) + + MULTIQC ( + ch_multiqc_files.collect(), + ch_multiqc_config.toList(), + ch_multiqc_custom_config.toList(), + ch_multiqc_logo.toList() + ) + multiqc_report = MULTIQC.out.report.toList() + } } /* From 4df539f21ae08bc509ef155f1496bf4d1ac40ece Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:10:05 +0200 Subject: [PATCH 2/9] Check multiqc report exists in other tests --- tests/pipeline/skip_tools.nf.test | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/pipeline/skip_tools.nf.test b/tests/pipeline/skip_tools.nf.test index 1d64ddca..d336ca17 100644 --- a/tests/pipeline/skip_tools.nf.test +++ b/tests/pipeline/skip_tools.nf.test @@ -27,6 +27,7 @@ nextflow_pipeline { path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), + path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_trimming") } ) } @@ -54,6 +55,7 @@ nextflow_pipeline { path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), + path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_fastp") } ) } @@ -82,6 +84,7 @@ nextflow_pipeline { // path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), + path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_fastqc") } ) } @@ -109,6 +112,7 @@ nextflow_pipeline { path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), + path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_fastp_fastqc") } ) } From 9c927711ad1d9715ec80da583096404a07d5bb34 Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:10:20 +0200 Subject: [PATCH 3/9] Fix old test As seen in `workflows/demultiplex.nf`, when neither trimming nor fastq are skipped, md5 sums will only be generated for fastp files. --- tests/pipeline/skip_tools.nf.test | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/pipeline/skip_tools.nf.test b/tests/pipeline/skip_tools.nf.test index d336ca17..1a0d8bcf 100644 --- a/tests/pipeline/skip_tools.nf.test +++ b/tests/pipeline/skip_tools.nf.test @@ -80,8 +80,7 @@ nextflow_pipeline { { assert workflow.trace.succeeded().size() == 6 }, { assert snapshot( path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz"), - // FIXME - // path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), + path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001.fastp.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), path("$outputDir/multiqc/multiqc_report.html"), From 6664f0151727edfe162f6175d8b4eabc97f14fcf Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:13:32 +0200 Subject: [PATCH 4/9] Add test to check MultiQC can be skipped --- tests/pipeline/skip_tools.nf.test | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/pipeline/skip_tools.nf.test b/tests/pipeline/skip_tools.nf.test index 1a0d8bcf..29c1f0d3 100644 --- a/tests/pipeline/skip_tools.nf.test +++ b/tests/pipeline/skip_tools.nf.test @@ -118,4 +118,32 @@ nextflow_pipeline { } + test("Skip MultiQC") { + + when { + params { + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/demultiplex/samplesheet/1.3.0/flowcell_input.csv' + demultiplexer = 'bclconvert' + outdir = "$outputDir" + skip_tools = "multiqc" + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions_skip_multiqc") }, + { assert workflow.trace.succeeded().size() == 5 }, + { assert !path("$outputDir/multiqc/multiqc_report.html").exists() }, + { assert snapshot( + path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz"), + path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001.fastp.fastq.gz.md5"), + path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), + path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), + ).match("skip_multiqc") } + ) + } + + } + } From e4a1403b083abe8e498c093db870eda06c7f6468 Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:13:50 +0200 Subject: [PATCH 5/9] Update snapshot --- tests/pipeline/skip_tools.nf.test.snap | 57 ++++++++++++++++++++------ 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/tests/pipeline/skip_tools.nf.test.snap b/tests/pipeline/skip_tools.nf.test.snap index 75a1eef7..72ab1f3c 100644 --- a/tests/pipeline/skip_tools.nf.test.snap +++ b/tests/pipeline/skip_tools.nf.test.snap @@ -3,11 +3,12 @@ "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" }, "skip_fastqc": { "content": [ "Sample1_S1_L001_R1_001.fastq.gz:md5,0a0341e2990b4fa1d9ad4b4c603144c1", + "Sample1_S1_L001.fastp.fastq.gz.md5:md5,c3cd96f3a22fb6afbaa1df324814d54c", "Undetermined_S0_L001_R1_001.fastq.gz:md5,febef808ae5397ea4ee7ee40e5fd39e0", [ "Adapter_Cycle_Metrics.csv:md5,5a0c88793b4a0885fe3dda16609b576e", @@ -22,15 +23,39 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ] + ], + "multiqc_report.html:md5,747d133098073afa11a7cca06d7f5ce1" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" }, "skip_fastp": { "content": [ "Sample1_S1_L001_R1_001.fastq.gz:md5,0a0341e2990b4fa1d9ad4b4c603144c1", "Sample1_S1_L001_R1_001.fastq.gz.md5:md5,c547a3c03e7c60c871d78018ec5d933f", "Undetermined_S0_L001_R1_001.fastq.gz:md5,febef808ae5397ea4ee7ee40e5fd39e0", + [ + "Adapter_Cycle_Metrics.csv:md5,5a0c88793b4a0885fe3dda16609b576e", + "Adapter_Metrics.csv:md5,989240b8840b2169ac1061f952c90f6c", + "Demultiplex_Stats.csv:md5,93949a8cd96f907d83e0808c1ec2a04b", + "Demultiplex_Tile_Stats.csv:md5,83120160b0f22a1303fa1db31c19f6e9", + "IndexMetricsOut.bin:md5,9e688c58a5487b8eaf69c9e1005ad0bf", + "Index_Hopping_Counts.csv:md5,1059369e375fd8f8423c0f6c934be978", + "Quality_Metrics.csv:md5,6614accb1bb414fe312b17b81f5521f7", + "Quality_Tile_Metrics.csv:md5,cdc89fd2962bdd4a24f71e186112118a", + "RunInfo.xml:md5,03038959f4dd181c86bc97ae71fe270a", + "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", + "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", + "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" + ], + "multiqc_report.html:md5,4cc2c41b459c91b9bc7461bf1841deca" + ], + "timestamp": "2023-08-24T06:06:42+0000" + }, + "skip_multiqc": { + "content": [ + "Sample1_S1_L001_R1_001.fastq.gz:md5,0a0341e2990b4fa1d9ad4b4c603144c1", + "Sample1_S1_L001.fastp.fastq.gz.md5:md5,c3cd96f3a22fb6afbaa1df324814d54c", + "Undetermined_S0_L001_R1_001.fastq.gz:md5,febef808ae5397ea4ee7ee40e5fd39e0", [ "Adapter_Cycle_Metrics.csv:md5,5a0c88793b4a0885fe3dda16609b576e", "Adapter_Metrics.csv:md5,989240b8840b2169ac1061f952c90f6c", @@ -46,7 +71,7 @@ "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" ] ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" }, "skip_fastp_fastqc": { "content": [ @@ -66,27 +91,34 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ] + ], + "multiqc_report.html:md5,5a9a0289ac111ba967896f5a3f7a591d" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" }, "software_versions_skip_fastqc": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" }, "software_versions_skip_fastp_fastqc": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" + }, + "software_versions_skip_multiqc": { + "content": [ + "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, Workflow={nf-core/demultiplex=1.4.0dev}}" + ], + "timestamp": "2023-08-24T06:06:42+0000" }, "software_versions_skip_fastp": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" }, "skip_trimming": { "content": [ @@ -106,8 +138,9 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ] + ], + "multiqc_report.html:md5,bd77fdcc1d1d02a3ac2e39ace3de554d" ], - "timestamp": "2023-06-15T00:02:11+0000" + "timestamp": "2023-08-24T06:06:42+0000" } -} \ No newline at end of file +} From 1a62427199b78a59a31ec0b8e3ceb2b1474dca94 Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:15:52 +0200 Subject: [PATCH 6/9] Add description in schema for `skip_tools` --- nextflow_schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 6102abc6..7ba6402a 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -18,7 +18,8 @@ }, "skip_tools": { "type": "string", - "default": null + "default": null, + "description": "Comma-separated list of tools to skip (fastp,falco,multiqc)" } } }, From c74d5b7284425d31df40fc9f491b7a97eab34f27 Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:23:36 +0200 Subject: [PATCH 7/9] Fix error raising --- workflows/demultiplex.nf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/workflows/demultiplex.nf b/workflows/demultiplex.nf index 57dee501..4883707a 100644 --- a/workflows/demultiplex.nf +++ b/workflows/demultiplex.nf @@ -21,7 +21,7 @@ def checkPathParamList = [ for (param in checkPathParamList) { if (param) { file(param, checkIfExists: true) } } // Check mandatory parameters -if (params.input) { ch_input = file(params.input) } else { Nextflow.error 'Input samplesheet not specified!' } +if (params.input) { ch_input = file(params.input) } else { error 'Input samplesheet not specified!' } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG FILES @@ -192,7 +192,7 @@ workflow DEMULTIPLEX { ch_versions = ch_versions.mix(SINGULAR_DEMULTIPLEX.out.versions) break default: - Nextflow.error "Unknown demultiplexer: ${demultiplexer}" + error "Unknown demultiplexer: ${demultiplexer}" } ch_raw_fastq.dump(tag: "DEMULTIPLEX::Demultiplexed Fastq",{FormattingService.prettyFormat(it)}) @@ -323,14 +323,14 @@ def extract_csv(input_csv, input_schema=null) { diff in all_columns ? missing_columns.add(diff) : wrong_columns.add(diff) } if(missing_columns.size() > 0){ - Nextflow.error "[Samplesheet Error] The column(s) $missing_columns is/are not present. The header should look like: $all_columns" + error "[Samplesheet Error] The column(s) $missing_columns is/are not present. The header should look like: $all_columns" } else { - Nextflow.error "[Samplesheet Error] The column(s) $wrong_columns should not be in the header. The header should look like: $all_columns" + error "[Samplesheet Error] The column(s) $wrong_columns should not be in the header. The header should look like: $all_columns" } } else { - Nextflow.error "[Samplesheet Error] The columns $row are not in the right order. The header should look like: $all_columns" + error "[Samplesheet Error] The columns $row are not in the right order. The header should look like: $all_columns" } } @@ -347,7 +347,7 @@ def extract_csv(input_csv, input_schema=null) { row[column] ?: missing_mandatory_columns.add(column) } if(missing_mandatory_columns.size > 0){ - Nextflow.error "[Samplesheet Error] The mandatory column(s) $missing_mandatory_columns is/are empty on line $row_count" + error "[Samplesheet Error] The mandatory column(s) $missing_mandatory_columns is/are empty on line $row_count" } def output = [] @@ -357,7 +357,7 @@ def extract_csv(input_csv, input_schema=null) { content = row[key] if(!(content ==~ col.value['pattern']) && col.value['pattern'] != '' && content != '') { - Nextflow.error "[Samplesheet Error] The content of column '$key' on line $row_count does not match the pattern '${col.value['pattern']}'" + error "[Samplesheet Error] The content of column '$key' on line $row_count does not match the pattern '${col.value['pattern']}'" } if(col.value['content'] == 'path'){ From 5ba20d8eb19d0f05eba8a9733e34754f7d63f003 Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 08:19:03 +0200 Subject: [PATCH 8/9] Add contribution to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 172dbf18..bb6fcc7a 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Fixed` - [#127](https://github.com/nf-core/demultiplex/pull/127) Add `singularity.registry = 'quay.io'` and bump NF version to 23.04.0 +- [#140](https://github.com/nf-core/demultiplex/pull/140) Make it possible to skip MultiQC, fix error raising ## `Removed` From 14f0de78a9bc06d7d421ddf03724aeab5ffac51b Mon Sep 17 00:00:00 2001 From: Adrien Coulier Date: Thu, 24 Aug 2023 09:57:55 +0200 Subject: [PATCH 9/9] Fix tests --- tests/pipeline/skip_tools.nf.test | 8 +++--- tests/pipeline/skip_tools.nf.test.snap | 34 ++++++++++++-------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/tests/pipeline/skip_tools.nf.test b/tests/pipeline/skip_tools.nf.test index 29c1f0d3..0e4c23c1 100644 --- a/tests/pipeline/skip_tools.nf.test +++ b/tests/pipeline/skip_tools.nf.test @@ -22,12 +22,12 @@ nextflow_pipeline { { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions_skip_trimming") }, { assert workflow.trace.succeeded().size() == 6 }, + { assert path("$outputDir/multiqc/multiqc_report.html").exists() }, { assert snapshot( path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), - path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_trimming") } ) } @@ -50,12 +50,12 @@ nextflow_pipeline { { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions_skip_fastp") }, { assert workflow.trace.succeeded().size() == 5 }, + { assert path("$outputDir/multiqc/multiqc_report.html").exists() }, { assert snapshot( path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), - path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_fastp") } ) } @@ -78,12 +78,12 @@ nextflow_pipeline { { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions_skip_fastqc") }, { assert workflow.trace.succeeded().size() == 6 }, + { assert path("$outputDir/multiqc/multiqc_report.html").exists() }, { assert snapshot( path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001.fastp.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), - path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_fastqc") } ) } @@ -106,12 +106,12 @@ nextflow_pipeline { { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions_skip_fastp_fastqc") }, { assert workflow.trace.succeeded().size() == 5 }, + { assert path("$outputDir/multiqc/multiqc_report.html").exists() }, { assert snapshot( path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Sample1_S1_L001_R1_001.fastq.gz.md5"), path("$outputDir/220422_M11111_0222_000000000-K9H97/Undetermined_S0_L001_R1_001.fastq.gz"), path("$outputDir/220422_M11111_0222_000000000-K9H97/L001/Reports/").list(), - path("$outputDir/multiqc/multiqc_report.html"), ).match("skip_fastp_fastqc") } ) } diff --git a/tests/pipeline/skip_tools.nf.test.snap b/tests/pipeline/skip_tools.nf.test.snap index 72ab1f3c..f6ce536e 100644 --- a/tests/pipeline/skip_tools.nf.test.snap +++ b/tests/pipeline/skip_tools.nf.test.snap @@ -3,7 +3,7 @@ "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "skip_fastqc": { "content": [ @@ -23,10 +23,9 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ], - "multiqc_report.html:md5,747d133098073afa11a7cca06d7f5ce1" + ] ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "skip_fastp": { "content": [ @@ -46,10 +45,9 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ], - "multiqc_report.html:md5,4cc2c41b459c91b9bc7461bf1841deca" + ] ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "skip_multiqc": { "content": [ @@ -71,7 +69,7 @@ "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" ] ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "skip_fastp_fastqc": { "content": [ @@ -91,34 +89,33 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ], - "multiqc_report.html:md5,5a9a0289ac111ba967896f5a3f7a591d" + ] ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "software_versions_skip_fastqc": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "software_versions_skip_fastp_fastqc": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "software_versions_skip_multiqc": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "software_versions_skip_fastp": { "content": [ "{BCLCONVERT={bclconvert=00.000.000.4.0.3}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FALCO={falco=1.2.1}, Workflow={nf-core/demultiplex=1.4.0dev}}" ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" }, "skip_trimming": { "content": [ @@ -138,9 +135,8 @@ "SampleSheet.csv:md5,2df2e405991814571c021dc8749c2a89", "Top_Unknown_Barcodes.csv:md5,2e2faba761137f228e56bd3428453ccc", "fastq_list.csv:md5,05bc84f51840f5754cfb8381b36f2cb0" - ], - "multiqc_report.html:md5,bd77fdcc1d1d02a3ac2e39ace3de554d" + ] ], - "timestamp": "2023-08-24T06:06:42+0000" + "timestamp": "2023-08-24T07:43:09+0000" } -} +} \ No newline at end of file