diff --git a/modules/nf-core/propr/grea/main.nf b/modules/nf-core/propr/grea/main.nf index b31f02cc1743..47375b08d096 100644 --- a/modules/nf-core/propr/grea/main.nf +++ b/modules/nf-core/propr/grea/main.nf @@ -13,7 +13,7 @@ process PROPR_GREA { output: tuple val(meta), path("*.grea.tsv"), emit: results - path "versions.yml", emit: versions + path "versions.yml", emit: versions, topic: versions path "*.R_sessionInfo.log", emit: session_info when: @@ -21,4 +21,16 @@ process PROPR_GREA { script: template 'grea.R' + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.grea.tsv + touch ${prefix}.R_sessionInfo.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-propr: \$(Rscript -e "cat(as.character(packageVersion('propr')))") + END_VERSIONS + """ } diff --git a/modules/nf-core/propr/grea/meta.yml b/modules/nf-core/propr/grea/meta.yml index f8d91f74a147..839d9fcd9525 100644 --- a/modules/nf-core/propr/grea/meta.yml +++ b/modules/nf-core/propr/grea/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "propr_grea" description: Perform Gene Ratio Enrichment Analysis keywords: @@ -15,7 +14,8 @@ tools: documentation: "https://rdrr.io/cran/propr/man/propr.html" tool_dev_url: "https://github.com/tpq/propr" doi: "10.2202/1544-6115.1175" - licence: ["GPL-2"] + licence: + - "GPL-2" identifier: biotools:propr input: - - meta: @@ -77,6 +77,11 @@ output: description: dump of R SessionInfo pattern: "*.R_sessionInfo.log" ontologies: [] +topics: + versions: + - versions.yml: + type: string + description: The name of the process authors: - "@caraiz2001" - "@suzannejin" diff --git a/modules/nf-core/propr/grea/tests/main.nf.test b/modules/nf-core/propr/grea/tests/main.nf.test index 38a015e4b8c2..a79e932c08ac 100644 --- a/modules/nf-core/propr/grea/tests/main.nf.test +++ b/modules/nf-core/propr/grea/tests/main.nf.test @@ -9,12 +9,10 @@ nextflow_process { tag "propr" tag "propr/grea" tag "propr/propd" + config "./nextflow.config" test("test grea chained to propd") { - tag "default" - config "./grea_test.config" - setup { run("PROPR_PROPD") { script "../../propd/main.nf" @@ -57,9 +55,29 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - process.out.results, - process.out.versions - ).match()} + sanitizeOutput(process.out, unstableKeys: ["session_info", "results"]), + path(process.out.versions[0]).yaml + ).match() } + ) + } + } + + test("test grea chained to propd - stub") { + options "-stub" + + when { + process { + """ + input[0] = [[ id: 'test' ], []] + input[1] = [[ id: 'test' ], []] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(sanitizeOutput(process.out)).match() } ) } } diff --git a/modules/nf-core/propr/grea/tests/main.nf.test.snap b/modules/nf-core/propr/grea/tests/main.nf.test.snap index 6c5dd533ed88..83ff035a6b86 100644 --- a/modules/nf-core/propr/grea/tests/main.nf.test.snap +++ b/modules/nf-core/propr/grea/tests/main.nf.test.snap @@ -1,26 +1,61 @@ { + "test grea chained to propd - stub": { + "content": [ + { + "results": [ + [ + { + "id": "test" + }, + "test.grea.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "session_info": [ + "test.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "versions": [ + "versions.yml:md5,060fcd8ce4afc482e237fa75686a0aba" + ] + } + ], + "timestamp": "2026-07-15T09:39:18.036935358", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } + }, "test grea chained to propd": { "content": [ - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.grea.tsv:md5,786faeccf39926d2f7c980ef549a2697" + { + "results": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.grea.tsv" + ] + ], + "session_info": [ + "treatment_mCherry_hND6_.R_sessionInfo.log" + ], + "versions": [ + "versions.yml:md5,060fcd8ce4afc482e237fa75686a0aba" ] - ], - [ - "versions.yml:md5,060fcd8ce4afc482e237fa75686a0aba" - ] + }, + { + "PROPR_GREA": { + "r-propr": "5.1.5" + } + } ], + "timestamp": "2026-08-03T08:35:21.684834311", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" - }, - "timestamp": "2024-12-11T13:00:02.026244403" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } } -} +} \ No newline at end of file diff --git a/modules/nf-core/propr/grea/tests/grea_test.config b/modules/nf-core/propr/grea/tests/nextflow.config similarity index 100% rename from modules/nf-core/propr/grea/tests/grea_test.config rename to modules/nf-core/propr/grea/tests/nextflow.config diff --git a/modules/nf-core/propr/logratio/main.nf b/modules/nf-core/propr/logratio/main.nf index d4ed11e76267..15054f4ad8df 100644 --- a/modules/nf-core/propr/logratio/main.nf +++ b/modules/nf-core/propr/logratio/main.nf @@ -13,7 +13,7 @@ process PROPR_LOGRATIO { output: tuple val(meta), path("*.logratio.tsv") , emit: logratio tuple val(meta), path("*.R_sessionInfo.log"), emit: session_info - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -22,7 +22,7 @@ process PROPR_LOGRATIO { template 'logratio.R' stub: - prefix = task.ext.prefix ?: "${meta.id}" + def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.logratio.tsv touch ${prefix}.R_sessionInfo.log diff --git a/modules/nf-core/propr/logratio/meta.yml b/modules/nf-core/propr/logratio/meta.yml index deb9b8ee3501..c2e728e718d5 100644 --- a/modules/nf-core/propr/logratio/meta.yml +++ b/modules/nf-core/propr/logratio/meta.yml @@ -1,6 +1,6 @@ name: "propr_logratio" -description: Transform the data matrix using centered logratio transformation (CLR) - or additive logratio transformation (ALR) +description: Transform the data matrix using centered logratio transformation + (CLR) or additive logratio transformation (ALR) keywords: - alr - clr @@ -15,7 +15,8 @@ tools: documentation: "https://rdrr.io/cran/propr/man/propr.html" tool_dev_url: "https://github.com/tpq/propr" doi: "10.1038/s41598-017-16520-0" - licence: ["GPL-2"] + licence: + - "GPL-2" identifier: biotools:propr input: - - meta: @@ -44,8 +45,8 @@ output: [id: 'test', ...] - "*.logratio.tsv": type: file - description: ALR/CLR transformed data matrix. With rows = variables or genes, - columns = samples or cells. + description: ALR/CLR transformed data matrix. With rows = variables or + genes, columns = samples or cells. pattern: "*.logratio.tsv" ontologies: - edam: http://edamontology.org/format_3475 # TSV @@ -68,6 +69,11 @@ output: pattern: "versions.yml" ontologies: - edam: http://edamontology.org/format_3750 # YAML +topics: + versions: + - versions.yml: + type: string + description: The name of the process authors: - "@suzannejin" - "@oprana22" diff --git a/modules/nf-core/propr/logratio/tests/main.nf.test b/modules/nf-core/propr/logratio/tests/main.nf.test index 5f1d4ee7e7db..670542838fa1 100644 --- a/modules/nf-core/propr/logratio/tests/main.nf.test +++ b/modules/nf-core/propr/logratio/tests/main.nf.test @@ -199,8 +199,7 @@ nextflow_process { ) } } - test("mus_musculus - tsv -- stub") { - tag "stub" + test("mus_musculus - tsv - stub") { options "-stub" when { params { @@ -220,7 +219,7 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - process.out, + sanitizeOutput(process.out), path(process.out.versions[0]).yaml ).match() } ) diff --git a/modules/nf-core/propr/logratio/tests/main.nf.test.snap b/modules/nf-core/propr/logratio/tests/main.nf.test.snap index a82c427921f4..ddd7c532b690 100644 --- a/modules/nf-core/propr/logratio/tests/main.nf.test.snap +++ b/modules/nf-core/propr/logratio/tests/main.nf.test.snap @@ -13,11 +13,47 @@ } } ], + "timestamp": "2026-07-20T10:32:31.426923165", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T15:13:57.762737802" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } + }, + "mus_musculus - tsv - stub": { + "content": [ + { + "logratio": [ + [ + { + "id": "test" + }, + "test.clr.NA.NA.logratio.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "session_info": [ + [ + { + "id": "test" + }, + "test.clr.NA.NA.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,17854c506bb1d60e003349d189b206b9" + ] + }, + { + "PROPR_LOGRATIO": { + "r-base": "4.3.0", + "r-propr": "4.2.6" + } + } + ], + "timestamp": "2026-07-20T10:32:37.010585304", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "mus_musculus - tsv": { "content": [ @@ -40,11 +76,11 @@ } } ], + "timestamp": "2026-07-20T10:31:58.297049568", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:35:35.018714127" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "mus_musculus - tsv - alr": { "content": [ @@ -67,11 +103,11 @@ } } ], + "timestamp": "2026-07-20T10:32:09.35463478", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:42:35.397794344" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "mus_musculus - tsv - alr boxcox": { "content": [ @@ -94,66 +130,11 @@ } } ], + "timestamp": "2026-07-20T10:32:14.799953464", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:42:43.698056253" - }, - "mus_musculus - tsv -- stub": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test.clr.NA.NA.logratio.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test" - }, - "test.clr.NA.NA.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "2": [ - "versions.yml:md5,17854c506bb1d60e003349d189b206b9" - ], - "logratio": [ - [ - { - "id": "test" - }, - "test.clr.NA.NA.logratio.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "session_info": [ - [ - { - "id": "test" - }, - "test.clr.NA.NA.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,17854c506bb1d60e003349d189b206b9" - ] - }, - { - "PROPR_LOGRATIO": { - "r-base": "4.3.0", - "r-propr": "4.2.6" - } - } - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:37:59.786809211" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "mus_musculus - tsv - boxcox": { "content": [ @@ -176,11 +157,11 @@ } } ], + "timestamp": "2026-07-20T10:32:03.694465188", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:42:28.01694316" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "mus_musculus - tsv - alr geneid": { "content": [ @@ -203,11 +184,11 @@ } } ], + "timestamp": "2026-07-20T10:32:20.46939457", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:42:51.186760616" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "mus_musculus - tsv - alr genename": { "content": [ @@ -230,10 +211,10 @@ } } ], + "timestamp": "2026-07-20T10:32:25.997962278", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-16T14:42:58.184822937" + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } } } \ No newline at end of file diff --git a/modules/nf-core/propr/propd/main.nf b/modules/nf-core/propr/propd/main.nf index 21d0616ad3b0..4d5db327d7ac 100644 --- a/modules/nf-core/propr/propd/main.nf +++ b/modules/nf-core/propr/propd/main.nf @@ -27,4 +27,22 @@ process PROPR_PROPD { script: template 'propd.R' + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.propd.genewise.tsv + touch ${prefix}.propd.genewise.png + touch ${prefix}.propd.rds + touch ${prefix}.propd.pairwise.tsv + touch ${prefix}.propd.pairwise_filtered.tsv + touch ${prefix}.propd.adjacency.csv + touch ${prefix}.propd.fdr.tsv + touch ${prefix}.R_sessionInfo.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-propr: \$(Rscript -e "cat(as.character(packageVersion('propr')))") + END_VERSIONS + """ } diff --git a/modules/nf-core/propr/propd/meta.yml b/modules/nf-core/propr/propd/meta.yml index c2de530d12a7..17fec1ffce9f 100644 --- a/modules/nf-core/propr/propd/meta.yml +++ b/modules/nf-core/propr/propd/meta.yml @@ -65,7 +65,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.genewise.tsv": type: file description: | @@ -73,7 +73,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV genewise_plot: - - meta: type: file @@ -82,7 +82,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.genewise.png": type: file description: | @@ -99,7 +99,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.rds": type: file description: | @@ -114,7 +114,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.pairwise.tsv": type: file description: | @@ -123,7 +123,7 @@ output: each pair of genes. pattern: "*.propd.pairwise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV results_pairwise_filtered: - - meta: type: file @@ -132,7 +132,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.pairwise_filtered.tsv": type: file description: | @@ -141,7 +141,7 @@ output: proportionality values. pattern: "*.propd.pairwise_filtered.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV adjacency: - - meta: type: file @@ -150,7 +150,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.adjacency.csv": type: file description: | @@ -159,7 +159,7 @@ output: proportional. pattern: "*.propd.adjacency.csv" ontologies: - - edam: http://edamontology.org/format_3752 + - edam: http://edamontology.org/format_3752 # CSV fdr: - - meta: type: file @@ -168,7 +168,7 @@ output: information as compiled from the propd results pattern: "*.propd.genewise.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV - "*.propd.fdr.tsv": type: file description: | @@ -178,7 +178,7 @@ output: computationally expensive. pattern: "*.propd.fdr.tsv" ontologies: - - edam: http://edamontology.org/format_3475 + - edam: http://edamontology.org/format_3475 # TSV session_info: - "*.R_sessionInfo.log": type: file @@ -191,7 +191,7 @@ output: description: File containing software versions pattern: "versions.yml" ontologies: - - edam: http://edamontology.org/format_3750 + - edam: http://edamontology.org/format_3750 # YAML topics: versions: - versions.yml: diff --git a/modules/nf-core/propr/propd/tests/boxcox.config b/modules/nf-core/propr/propd/tests/boxcox.config deleted file mode 100644 index f288b8761994..000000000000 --- a/modules/nf-core/propr/propd/tests/boxcox.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - withName: 'PROPR_PROPD' { - ext.args = {"--alpha 0.1 --round_digits 5"} - } -} diff --git a/modules/nf-core/propr/propd/tests/main.nf.test b/modules/nf-core/propr/propd/tests/main.nf.test index eae00e1b3663..94d402e306ac 100755 --- a/modules/nf-core/propr/propd/tests/main.nf.test +++ b/modules/nf-core/propr/propd/tests/main.nf.test @@ -8,13 +8,14 @@ nextflow_process { tag "modules_nfcore" tag "propr" tag "propr/propd" + config "./nextflow.config" test("Test propr/propd using default params") { - tag "default" - config "./default.config" - when { + params { + module_args = "--round_digits 5" + } process { """ expression_test_data_dir = params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/' @@ -38,12 +39,11 @@ nextflow_process { } then { + assert process.success assertAll( - { assert process.success }, { assert snapshot( - process.out.results_genewise, - process.out.versions, - file(process.out.genewise_plot[0][1]).name + sanitizeOutput(process.out, unstableKeys: ["genewise_plot", "session_info"]), + path(process.out.versions[0]).yaml ).match()} ) } @@ -51,10 +51,10 @@ nextflow_process { test("Test propr/propd when saving all outputs") { - tag "save_all" - config "./save_all.config" - when { + params { + module_args = "--save_pairwise_full true --save_pairwise true --save_adjacency true --save_rdata true --round_digits 5" + } process { """ expression_test_data_dir = params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/' @@ -78,16 +78,11 @@ nextflow_process { } then { + assert process.success assertAll( - { assert process.success }, { assert snapshot( - process.out.results_genewise, - process.out.results_pairwise, - process.out.results_pairwise_filtered, - process.out.results_adjacency, - process.out.versions, - file(process.out.genewise_plot[0][1]).name, - file(process.out.rdata[0][1]).name + sanitizeOutput(process.out, unstableKeys: ["genewise_plot", "session_info", "rdata"]), + path(process.out.versions[0]).yaml ).match()} ) } @@ -95,10 +90,10 @@ nextflow_process { test("Test propr/propd when using Box-cox transformation") { - tag "boxcox" - config "./boxcox.config" - when { + params { + module_args = "--alpha 0.1 --round_digits 5" + } process { """ expression_test_data_dir = params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/' @@ -122,12 +117,11 @@ nextflow_process { } then { + assert process.success assertAll( - { assert process.success }, { assert snapshot( - process.out.results_genewise, - process.out.versions, - file(process.out.genewise_plot[0][1]).name + sanitizeOutput(process.out, unstableKeys: ["genewise_plot", "session_info"]), + path(process.out.versions[0]).yaml ).match()} ) } @@ -135,10 +129,10 @@ nextflow_process { test("Test propr/propd when using permutation tests") { - tag "permutation" - config "./permutation.config" - when { + params { + module_args = "--permutation 10 --number_of_cutoffs 10 --seed 123 --round_digits 5" + } process { """ expression_test_data_dir = params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/' @@ -162,15 +156,35 @@ nextflow_process { } then { + assert process.success assertAll( - { assert process.success }, { assert snapshot( - process.out.results_genewise, - process.out.fdr, - process.out.versions, - file(process.out.genewise_plot[0][1]).name + sanitizeOutput(process.out, unstableKeys: ["genewise_plot", "session_info", "fdr"]), + path(process.out.versions[0]).yaml ).match()} ) } } + + test("Test propr/propd - stub") { + options "-stub" + + when { + params { + module_args = "" + } + process { + """ + input[0] = [[:], '', '', ''] + input[1] = [[id: 'test'], [], []] + """ + } + } + then { + assert process.success + assertAll( + { assert snapshot(sanitizeOutput(process.out)).match() } + ) + } + } } diff --git a/modules/nf-core/propr/propd/tests/main.nf.test.snap b/modules/nf-core/propr/propd/tests/main.nf.test.snap index bb3f18909278..52e8f4376539 100644 --- a/modules/nf-core/propr/propd/tests/main.nf.test.snap +++ b/modules/nf-core/propr/propd/tests/main.nf.test.snap @@ -1,140 +1,364 @@ { "Test propr/propd using default params": { "content": [ - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" + { + "adjacency": [ + + ], + "fdr": [ + + ], + "genewise_plot": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.propd.genewise.png" + ] + ], + "rdata": [ + + ], + "results_genewise": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" + ] + ], + "results_pairwise": [ + + ], + "results_pairwise_filtered": [ + + ], + "session_info": [ + "treatment_mCherry_hND6_.R_sessionInfo.log" + ], + "versions": [ + "versions.yml:md5,a6e655144d7d1d743781538442685666" ] - ], - [ - "versions.yml:md5,a6e655144d7d1d743781538442685666" - ], - "treatment_mCherry_hND6_.propd.genewise.png" + }, + { + "PROPR_PROPD": { + "r-propr": "5.1.8" + } + } ], - "timestamp": "2026-05-13T17:11:38.287539538", + "timestamp": "2026-07-30T09:41:58.618097846", "meta": { "nf-test": "0.9.5", - "nextflow": "26.04.1" + "nextflow": "26.04.6" } }, "Test propr/propd when using Box-cox transformation": { "content": [ - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.genewise.tsv:md5,918f1bd489443235b2d0e22e12731985" + { + "adjacency": [ + + ], + "fdr": [ + + ], + "genewise_plot": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.propd.genewise.png" + ] + ], + "rdata": [ + + ], + "results_genewise": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.genewise.tsv:md5,918f1bd489443235b2d0e22e12731985" + ] + ], + "results_pairwise": [ + + ], + "results_pairwise_filtered": [ + + ], + "session_info": [ + "treatment_mCherry_hND6_.R_sessionInfo.log" + ], + "versions": [ + "versions.yml:md5,a6e655144d7d1d743781538442685666" ] - ], - [ - "versions.yml:md5,a6e655144d7d1d743781538442685666" - ], - "treatment_mCherry_hND6_.propd.genewise.png" + }, + { + "PROPR_PROPD": { + "r-propr": "5.1.8" + } + } ], - "timestamp": "2026-05-13T17:12:08.650175696", + "timestamp": "2026-07-30T09:42:23.358065111", "meta": { "nf-test": "0.9.5", - "nextflow": "26.04.1" + "nextflow": "26.04.6" } }, "Test propr/propd when using permutation tests": { "content": [ - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" + { + "adjacency": [ + + ], + "fdr": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.propd.fdr.tsv" + ] + ], + "genewise_plot": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.propd.genewise.png" + ] + ], + "rdata": [ + + ], + "results_genewise": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" + ] + ], + "results_pairwise": [ + + ], + "results_pairwise_filtered": [ + + ], + "session_info": [ + "treatment_mCherry_hND6_.R_sessionInfo.log" + ], + "versions": [ + "versions.yml:md5,a6e655144d7d1d743781538442685666" ] - ], - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.fdr.tsv:md5,dca61ef4ab98984c2dcd884ce85feef8" - ] - ], - [ - "versions.yml:md5,a6e655144d7d1d743781538442685666" - ], - "treatment_mCherry_hND6_.propd.genewise.png" + }, + { + "PROPR_PROPD": { + "r-propr": "5.1.8" + } + } ], - "timestamp": "2026-05-13T17:12:39.811022624", + "timestamp": "2026-08-03T14:37:03.399810578", "meta": { "nf-test": "0.9.5", - "nextflow": "26.04.1" + "nextflow": "26.04.6" } }, "Test propr/propd when saving all outputs": { "content": [ - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" - ] - ], - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.pairwise.tsv:md5,ff79479ea826c54aa178b0376784cbf1" + { + "adjacency": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.adjacency.csv:md5,3a947ffd8172990c6207aa7561a41cb8" + ] + ], + "fdr": [ + + ], + "genewise_plot": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.propd.genewise.png" + ] + ], + "rdata": [ + [ + { + "blocking": "", + "id": "treatment_mCherry_hND6_", + "reference": "mCherry", + "target": "hND6", + "variable": "treatment" + }, + "treatment_mCherry_hND6_.propd.rds" + ] + ], + "results_genewise": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" + ] + ], + "results_pairwise": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.pairwise.tsv:md5,ff79479ea826c54aa178b0376784cbf1" + ] + ], + "results_pairwise_filtered": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "treatment_mCherry_hND6_.propd.pairwise_filtered.tsv:md5,9473f045ca1acfe1f9d6138528f743d1" + ] + ], + "session_info": [ + "treatment_mCherry_hND6_.R_sessionInfo.log" + ], + "versions": [ + "versions.yml:md5,a6e655144d7d1d743781538442685666" ] - ], - [ - [ - { - "id": "treatment_mCherry_hND6_", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "" - }, - "treatment_mCherry_hND6_.propd.pairwise_filtered.tsv:md5,9473f045ca1acfe1f9d6138528f743d1" + }, + { + "PROPR_PROPD": { + "r-propr": "5.1.8" + } + } + ], + "timestamp": "2026-07-30T09:42:12.938397942", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } + }, + "Test propr/propd - stub": { + "content": [ + { + "adjacency": [ + [ + { + + }, + "null.propd.adjacency.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fdr": [ + [ + { + + }, + "null.propd.fdr.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "genewise_plot": [ + [ + { + + }, + "null.propd.genewise.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "rdata": [ + [ + { + + }, + "null.propd.rds:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "results_genewise": [ + [ + { + + }, + "null.propd.genewise.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "results_pairwise": [ + [ + { + + }, + "null.propd.pairwise.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "results_pairwise_filtered": [ + [ + { + + }, + "null.propd.pairwise_filtered.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "session_info": [ + "null.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "versions": [ + "versions.yml:md5,a6e655144d7d1d743781538442685666" ] - ], - null, - [ - "versions.yml:md5,a6e655144d7d1d743781538442685666" - ], - "treatment_mCherry_hND6_.propd.genewise.png", - "treatment_mCherry_hND6_.propd.rds" + } ], - "timestamp": "2026-05-13T17:11:56.096709291", + "timestamp": "2026-07-15T10:17:25.950918852", "meta": { "nf-test": "0.9.5", - "nextflow": "26.04.1" + "nextflow": "26.04.6" } } } \ No newline at end of file diff --git a/modules/nf-core/propr/propd/tests/default.config b/modules/nf-core/propr/propd/tests/nextflow.config similarity index 54% rename from modules/nf-core/propr/propd/tests/default.config rename to modules/nf-core/propr/propd/tests/nextflow.config index ee1ed788ec44..815a94aed8bb 100644 --- a/modules/nf-core/propr/propd/tests/default.config +++ b/modules/nf-core/propr/propd/tests/nextflow.config @@ -1,5 +1,5 @@ process { withName: 'PROPR_PROPD' { - ext.args = {"--round_digits 5"} + ext.args = params.module_args } } diff --git a/modules/nf-core/propr/propd/tests/permutation.config b/modules/nf-core/propr/propd/tests/permutation.config deleted file mode 100644 index c7718a74da19..000000000000 --- a/modules/nf-core/propr/propd/tests/permutation.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - withName: 'PROPR_PROPD' { - ext.args = {"--permutation 10 --number_of_cutoffs 10 --seed 123 --round_digits 5"} - } -} diff --git a/modules/nf-core/propr/propd/tests/save_all.config b/modules/nf-core/propr/propd/tests/save_all.config deleted file mode 100644 index ba7edfd50873..000000000000 --- a/modules/nf-core/propr/propd/tests/save_all.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - withName: 'PROPR_PROPD' { - ext.args = {"--save_pairwise_full true --save_pairwise true --save_adjacency true --save_rdata true --round_digits 5"} - } -} diff --git a/modules/nf-core/propr/propr/main.nf b/modules/nf-core/propr/propr/main.nf index 8cb37d67da72..21218839446b 100644 --- a/modules/nf-core/propr/propr/main.nf +++ b/modules/nf-core/propr/propr/main.nf @@ -17,11 +17,27 @@ process PROPR_PROPR { tuple val(meta), path("*.adj.csv"), emit: adj , optional:true path "*.warnings.log", emit: warnings path "*.R_sessionInfo.log", emit: session_info - path "versions.yml", emit: versions + path "versions.yml", emit: versions, topic: versions when: task.ext.when == null || task.ext.when script: template 'propr.R' + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.propr.rds + touch ${prefix}.propr.tsv + touch ${prefix}.fdr.tsv + touch ${prefix}.adj.csv + touch ${prefix}.warnings.log + touch ${prefix}.R_sessionInfo.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-propr: \$(Rscript -e "cat(as.character(packageVersion('propr')))") + END_VERSIONS + """ } diff --git a/modules/nf-core/propr/propr/meta.yml b/modules/nf-core/propr/propr/meta.yml index 20de017cc69b..108668c21718 100644 --- a/modules/nf-core/propr/propr/meta.yml +++ b/modules/nf-core/propr/propr/meta.yml @@ -9,7 +9,6 @@ keywords: - logratio - propr - corpcor - tools: - "propr": description: "Logratio methods for omics data" @@ -17,14 +16,16 @@ tools: documentation: "https://rdrr.io/cran/propr/man/propr.html" tool_dev_url: "https://github.com/tpq/propr" doi: "10.1038/s41598-017-16520-0" - licence: ["GPL-2"] + licence: + - "GPL-2" identifier: biotools:propr - "corpcor": description: "Efficient Estimation of Covariance and (Partial) Correlation" homepage: "https://cran.r-project.org/web/packages/corpcor/index.html" documentation: "https://cran.r-project.org/web/packages/corpcor/corpcor.pdf" doi: "10.2202/1544-6115.1175" - licence: ["GPL >=3"] + licence: + - "GPL >=3" identifier: biotools:propr input: @@ -115,5 +116,10 @@ output: pattern: "versions.yml" ontologies: - edam: http://edamontology.org/format_3750 # YAML +topics: + versions: + - versions.yml: + type: string + description: The name of the process authors: - "@suzannejin" diff --git a/modules/nf-core/propr/propr/tests/main.nf.test b/modules/nf-core/propr/propr/tests/main.nf.test index f2e371e80bf1..cc0ec438f436 100644 --- a/modules/nf-core/propr/propr/tests/main.nf.test +++ b/modules/nf-core/propr/propr/tests/main.nf.test @@ -237,4 +237,25 @@ nextflow_process { ) } } + + test("Test propr/propr - stub") { + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + [] + ] + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot(sanitizeOutput(process.out)).match() } + ) + } + } } diff --git a/modules/nf-core/propr/propr/tests/main.nf.test.snap b/modules/nf-core/propr/propr/tests/main.nf.test.snap index cde969bc16f5..468e4f5ff52f 100644 --- a/modules/nf-core/propr/propr/tests/main.nf.test.snap +++ b/modules/nf-core/propr/propr/tests/main.nf.test.snap @@ -10,11 +10,11 @@ ] ] ], + "timestamp": "2024-04-05T11:22:00.577754", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:22:00.577754" + } }, "Test propr/propr calculating adjacency_matrix for rho - fdr": { "content": [ @@ -27,11 +27,11 @@ ] ] ], + "timestamp": "2024-04-05T11:23:04.464473", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:23:04.464473" + } }, "Test propr/propr calculating adjacency_matrix for pcor - adj": { "content": [ @@ -44,11 +44,11 @@ ] ] ], + "timestamp": "2024-04-05T11:24:45.008049", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:24:45.008049" + } }, "Test propr/propr while running alr+pcor.bshrink - fdr": { "content": [ @@ -61,11 +61,11 @@ ] ] ], + "timestamp": "2024-04-05T11:20:50.487477", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:20:50.487477" + } }, "Test propr/propr using default options - matrix": { "content": [ @@ -78,11 +78,11 @@ ] ] ], + "timestamp": "2024-04-05T11:19:27.698729", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:19:27.698729" + } }, "Test propr/propr calculating adjacency_matrix for phs - adj": { "content": [ @@ -95,11 +95,11 @@ ] ] ], + "timestamp": "2024-04-05T11:23:45.966557", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:23:45.966557" + } }, "Test propr/propr while running clr+pcor.bshrink explicitly - matrix": { "content": [ @@ -112,11 +112,11 @@ ] ] ], + "timestamp": "2024-04-05T11:20:07.836881", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:20:07.836881" + } }, "Test propr/propr while running clr+pcor - matrix": { "content": [ @@ -129,11 +129,11 @@ ] ] ], + "timestamp": "2024-04-05T11:21:59.693747", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:21:59.693747" + } }, "Test propr/propr while running alr+pcor.bshrink - matrix": { "content": [ @@ -146,11 +146,11 @@ ] ] ], + "timestamp": "2024-04-05T11:20:49.898429", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:20:49.898429" + } }, "Test propr/propr calculating adjacency_matrix for pcor - fdr": { "content": [ @@ -163,11 +163,63 @@ ] ] ], + "timestamp": "2024-04-05T11:24:43.724784", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:24:43.724784" + } + }, + "Test propr/propr - stub": { + "content": [ + { + "adj": [ + [ + { + "id": "test" + }, + "test.adj.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fdr": [ + [ + { + "id": "test" + }, + "test.fdr.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "matrix": [ + [ + { + "id": "test" + }, + "test.propr.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "propr": [ + [ + { + "id": "test" + }, + "test.propr.rds:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "session_info": [ + "test.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "versions": [ + "versions.yml:md5,2e3159924c190ab42e22a4d0e192b1e6" + ], + "warnings": [ + "test.warnings.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + } + ], + "timestamp": "2026-07-15T10:20:50.181642955", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } }, "Test propr/propr while running clr+rho - fdr": { "content": [ @@ -180,11 +232,11 @@ ] ] ], + "timestamp": "2024-04-05T11:21:19.887004", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:21:19.887004" + } }, "Test propr/propr while running clr+rho - matrix": { "content": [ @@ -197,11 +249,11 @@ ] ] ], + "timestamp": "2024-04-05T11:21:19.194321", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:21:19.194321" + } }, "versions": { "content": [ @@ -209,11 +261,11 @@ "versions.yml:md5,2e3159924c190ab42e22a4d0e192b1e6" ] ], + "timestamp": "2024-04-05T11:19:27.963267", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:19:27.963267" + } }, "Test propr/propr calculating adjacency_matrix for phs - fdr": { "content": [ @@ -226,11 +278,11 @@ ] ] ], + "timestamp": "2024-04-05T11:23:44.841504", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:23:44.841504" + } }, "Test propr/propr calculating adjacency_matrix for pcor - matrix": { "content": [ @@ -243,11 +295,11 @@ ] ] ], + "timestamp": "2024-04-05T11:24:41.975415", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:24:41.975415" + } }, "Test propr/propr while running clr+rho with boxcox transformation - fdr": { "content": [ @@ -260,11 +312,11 @@ ] ] ], + "timestamp": "2024-04-05T11:22:29.830787", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:22:29.830787" + } }, "Test propr/propr calculating adjacency_matrix for rho - adj": { "content": [ @@ -277,11 +329,11 @@ ] ] ], + "timestamp": "2024-04-05T11:23:05.438967", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:23:05.438967" + } }, "Test propr/propr while running clr+rho with boxcox transformation - matrix": { "content": [ @@ -294,11 +346,11 @@ ] ] ], + "timestamp": "2024-04-05T11:22:28.793097", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:22:28.793097" + } }, "Test propr/propr calculating adjacency_matrix for rho - matrix": { "content": [ @@ -311,11 +363,11 @@ ] ] ], + "timestamp": "2024-04-05T11:23:03.240604", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:23:03.240604" + } }, "Test propr/propr while running clr+pcor.bshrink explicitly - fdr": { "content": [ @@ -328,11 +380,11 @@ ] ] ], + "timestamp": "2024-04-05T11:20:08.230977", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:20:08.230977" + } }, "Test propr/propr calculating adjacency_matrix for phs - matrix": { "content": [ @@ -345,10 +397,10 @@ ] ] ], + "timestamp": "2024-04-05T11:23:43.441629", "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" - }, - "timestamp": "2024-04-05T11:23:43.441629" + } } } \ No newline at end of file diff --git a/subworkflows/nf-core/abundance_differential_filter/main.nf b/subworkflows/nf-core/abundance_differential_filter/main.nf index 834b8c07402f..d12e8d7517e9 100644 --- a/subworkflows/nf-core/abundance_differential_filter/main.nf +++ b/subworkflows/nf-core/abundance_differential_filter/main.nf @@ -183,8 +183,6 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { inputs.samples_and_matrix.filter {index -> index[0].differential_method == 'propd' } ) - ch_versions = ch_versions.mix(PROPR_PROPD.out.versions.first()) - // ---------------------------------------------------- // Run DREAM // ---------------------------------------------------- diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test index b02ac59bf7c6..9e6c13889a17 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test +++ b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test @@ -507,8 +507,8 @@ nextflow_workflow { assertAll( { assert workflow.success }, { assert snapshot( - workflow.out.results_genewise, - workflow.out.results_genewise_filtered, + workflow.out.results_genewise.collect { file(it[1]).name }.sort(), + workflow.out.results_genewise_filtered.collect { file(it[1]).name }.sort(), workflow.out.adjacency, workflow.out.versions ).match() } diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap index 032f17cec9aa..6cec83de2156 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap +++ b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap @@ -671,14 +671,13 @@ "versions.yml:md5,1a6a400c49aa4dda7ec5c4ed0cc56340", "versions.yml:md5,1ddaab440e2528c688c05a02dd066f12", "versions.yml:md5,2c0576aefff8da32c7c0cfd8529aa4b5", - "versions.yml:md5,b80e2c320ea0429466a7b7c3c3ac78fa", - "versions.yml:md5,ff5b7c1d83470f6f548f3643bb37a830" + "versions.yml:md5,b80e2c320ea0429466a7b7c3c3ac78fa" ] ], - "timestamp": "2026-05-14T09:07:27.027442931", + "timestamp": "2026-08-03T08:42:44.975836828", "meta": { "nf-test": "0.9.5", - "nextflow": "26.04.1" + "nextflow": "26.04.6" } }, "stub": { @@ -1430,56 +1429,12 @@ "propd - mouse - basic": { "content": [ [ - [ - { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", - "differential_method": "propd" - }, - "treatment_mCherry_hND6__test.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" - ], - [ - { - "id": "treatment_mCherry_hND6_sample_number_test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "sample_number", - "differential_method": "propd" - }, - "treatment_mCherry_hND6_sample_number_test.propd.genewise.tsv:md5,3673576dbafb9e9f48ca707871f3f6a6" - ] + "treatment_mCherry_hND6__test.propd.genewise.tsv", + "treatment_mCherry_hND6_sample_number_test.propd.genewise.tsv" ], [ - [ - { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", - "differential_method": "propd", - "fc_threshold": 1.5, - "stat_threshold": 0.05 - }, - "treatment_mCherry_hND6__test_filtered.tsv:md5,8338b79b1d20d39928ec37d48db784f4" - ], - [ - { - "id": "treatment_mCherry_hND6_sample_number_test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "sample_number", - "differential_method": "propd", - "fc_threshold": 1.5, - "stat_threshold": 0.05 - }, - "treatment_mCherry_hND6_sample_number_test_filtered.tsv:md5,8338b79b1d20d39928ec37d48db784f4" - ] + "treatment_mCherry_hND6__test_filtered.tsv", + "treatment_mCherry_hND6_sample_number_test_filtered.tsv" ], [ [ @@ -1506,13 +1461,13 @@ ] ], [ - "versions.yml:md5,ff5b7c1d83470f6f548f3643bb37a830" + ] ], - "timestamp": "2026-05-14T09:06:41.621996671", + "timestamp": "2026-08-03T09:29:17.012056681", "meta": { "nf-test": "0.9.5", - "nextflow": "26.04.1" + "nextflow": "26.04.6" } } } \ No newline at end of file diff --git a/subworkflows/nf-core/differential_functional_enrichment/main.nf b/subworkflows/nf-core/differential_functional_enrichment/main.nf index 7fcb933a7b2b..c57b1dacb9a3 100644 --- a/subworkflows/nf-core/differential_functional_enrichment/main.nf +++ b/subworkflows/nf-core/differential_functional_enrichment/main.nf @@ -32,9 +32,6 @@ workflow DIFFERENTIAL_FUNCTIONAL_ENRICHMENT { ch_featuresheet // [ meta, features sheet, features id, features symbol ] main: - - ch_versions = channel.empty() - // Add method information into meta map of ch_input // This information is used later to determine which method to run for each input // Also, reorganize the structure to match them with the modules' input organization @@ -149,9 +146,6 @@ workflow DIFFERENTIAL_FUNCTIONAL_ENRICHMENT { ch_session_info = GPROFILER2_GOST.out.session_info - ch_versions = ch_versions - .mix(PROPR_GREA.out.versions) - emit: // here we emit the outputs that will be useful afterwards in the // nf-core/differentialabundance pipeline @@ -196,5 +190,4 @@ workflow DIFFERENTIAL_FUNCTIONAL_ENRICHMENT { // tool versions session_info = ch_session_info - versions = ch_versions } diff --git a/subworkflows/nf-core/differential_functional_enrichment/meta.yml b/subworkflows/nf-core/differential_functional_enrichment/meta.yml index f6969ca19b92..9256b07f8450 100644 --- a/subworkflows/nf-core/differential_functional_enrichment/meta.yml +++ b/subworkflows/nf-core/differential_functional_enrichment/meta.yml @@ -91,12 +91,6 @@ input: description: Features symbol column output: - - versions: - type: file - description: | - File containing software versions - Structure: [ path(versions.yml) ] - pattern: "versions.yml" - gprofiler2_all_enrich: description: Channel containing the main enrichment table output from gprofiler2 structure: diff --git a/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test b/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test index a4f0db79cfba..a9a890b30929 100644 --- a/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test +++ b/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test @@ -341,7 +341,7 @@ nextflow_workflow { assertAll( { assert workflow.success}, { assert snapshot( - workflow.out.grea_results + file(workflow.out.grea_results[0][1]).name, ).match()}, ) } @@ -474,11 +474,7 @@ nextflow_workflow { assertAll( { assert workflow.success}, { assert snapshot( - path(workflow.out.gprofiler2_all_enrich[0][1]).exists(), // This generates empty md5sums and linting fails - workflow.out.gprofiler2_sub_enrich, - workflow.out.gprofiler2_plot_html.collect{ meta, html -> file(html).name }, //assert unstable file - workflow.out.gsea_report, - workflow.out.grea_results + file(workflow.out.grea_results[0][1]).name, ).match()}, ) } diff --git a/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test.snap b/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test.snap index 726182bbaaad..dd448f5a360f 100644 --- a/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test.snap +++ b/subworkflows/nf-core/differential_functional_enrichment/tests/main.nf.test.snap @@ -1,84 +1,12 @@ { "deseq2|limmavoom|propd + gprofiler2|gsea|gsea - mouse": { "content": [ - true, - [ - [ - { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", - "differential_method": "deseq2", - "fc_threshold": 1.5, - "stat_threshold": 0.05, - "functional_method": "gprofiler2" - }, - [ - "treatment_mCherry_hND6__test.gprofiler2.GO:BP.sub_enriched_pathways.tsv:md5,62d7d908452efde8fb974039b2b2aca9", - "treatment_mCherry_hND6__test.gprofiler2.GO:CC.sub_enriched_pathways.tsv:md5,fc86a17c2330517db1dcc3073ca109a8", - "treatment_mCherry_hND6__test.gprofiler2.GO:MF.sub_enriched_pathways.tsv:md5,88d2081fff07d9028004303933b6386b", - "treatment_mCherry_hND6__test.gprofiler2.REAC.sub_enriched_pathways.tsv:md5,44423373f0b992fbb8824ed94795a45a" - ] - ], - [ - { - "id": "treatment_mCherry_hND6_sample_number_test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "sample_number", - "differential_method": "deseq2", - "fc_threshold": 1.5, - "stat_threshold": 0.05, - "functional_method": "gprofiler2" - }, - [ - "treatment_mCherry_hND6_sample_number_test.gprofiler2.GO:BP.sub_enriched_pathways.tsv:md5,f980f50ed6f38c38a6bd084878314397", - "treatment_mCherry_hND6_sample_number_test.gprofiler2.GO:CC.sub_enriched_pathways.tsv:md5,64e30564a3f2ce8b02e5a278bb23ea02", - "treatment_mCherry_hND6_sample_number_test.gprofiler2.GO:MF.sub_enriched_pathways.tsv:md5,bdbee5df60cda70857bfc3d5a8f7ba32", - "treatment_mCherry_hND6_sample_number_test.gprofiler2.KEGG.sub_enriched_pathways.tsv:md5,43b3876d52b0694ac7e2f1d2120c71b6", - "treatment_mCherry_hND6_sample_number_test.gprofiler2.REAC.sub_enriched_pathways.tsv:md5,361963a76c11ca1b5a666cf569718d1b" - ] - ] - ], - [ - "treatment_mCherry_hND6__test.gprofiler2.gostplot.html", - "treatment_mCherry_hND6_sample_number_test.gprofiler2.gostplot.html" - ], - null, - [ - [ - { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", - "differential_method": "propd", - "functional_method": "grea" - }, - "treatment_mCherry_hND6__test.grea.tsv:md5,786faeccf39926d2f7c980ef549a2697" - ], - [ - { - "id": "treatment_mCherry_hND6_sample_number_test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "sample_number", - "differential_method": "propd", - "functional_method": "grea" - }, - "treatment_mCherry_hND6_sample_number_test.grea.tsv:md5,786faeccf39926d2f7c980ef549a2697" - ] - ] + "treatment_mCherry_hND6__test.grea.tsv" ], - "timestamp": "2026-04-22T16:33:48.709662197", + "timestamp": "2026-08-03T10:02:04.852437682", "meta": { "nf-test": "0.9.5", - "nextflow": "26.03.2" + "nextflow": "26.04.6" } }, "deseq2 + gprofiler2 - mouse": { @@ -167,37 +95,12 @@ }, "propd + grea - mouse": { "content": [ - [ - [ - { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", - "differential_method": "propd", - "functional_method": "grea" - }, - "treatment_mCherry_hND6__test.grea.tsv:md5,786faeccf39926d2f7c980ef549a2697" - ], - [ - { - "id": "treatment_mCherry_hND6_sample_number_test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "sample_number", - "differential_method": "propd", - "functional_method": "grea" - }, - "treatment_mCherry_hND6_sample_number_test.grea.tsv:md5,786faeccf39926d2f7c980ef549a2697" - ] - ] + "treatment_mCherry_hND6__test.grea.tsv" ], - "timestamp": "2026-03-12T15:46:55.855321901", + "timestamp": "2026-08-03T10:08:51.589187847", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.04.6" } }, "test gprofiler2 - mouse": { @@ -276,14 +179,12 @@ ] ] ], - [ - - ] + null ], - "timestamp": "2026-04-21T18:36:31.31851", + "timestamp": "2026-07-15T09:46:35.126703147", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.6" } }, "deseq2 + gsea - mouse": { @@ -450,9 +351,6 @@ }, "Condition_genotype_WT_KO.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" ] - ], - "31": [ - ], "4": [ [ @@ -674,16 +572,13 @@ }, "Condition_genotype_WT_KO.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" ] - ], - "versions": [ - ] } ], - "timestamp": "2026-04-22T16:35:31.985366708", + "timestamp": "2026-07-15T09:46:43.516630361", "meta": { "nf-test": "0.9.5", - "nextflow": "26.03.2" + "nextflow": "26.04.6" } } } \ No newline at end of file