From a6e44ac75cbea3c4816face64eb429f2442b34d5 Mon Sep 17 00:00:00 2001 From: LouisLeNezet Date: Mon, 6 Jul 2026 13:09:08 +0200 Subject: [PATCH 1/3] Update to topic --- modules/nf-core/metamaps/classify/main.nf | 12 +- modules/nf-core/metamaps/classify/meta.yml | 31 +++- .../metamaps/classify/tests/main.nf.test | 104 +++++--------- .../metamaps/classify/tests/main.nf.test.snap | 70 +++++---- modules/nf-core/metamaps/mapdirectly/main.nf | 18 +-- modules/nf-core/metamaps/mapdirectly/meta.yml | 31 +++- .../metamaps/mapdirectly/tests/main.nf.test | 47 ++---- .../mapdirectly/tests/main.nf.test.snap | 136 ++++-------------- 8 files changed, 164 insertions(+), 285 deletions(-) diff --git a/modules/nf-core/metamaps/classify/main.nf b/modules/nf-core/metamaps/classify/main.nf index 515de897a6f4..fc53f21fd962 100644 --- a/modules/nf-core/metamaps/classify/main.nf +++ b/modules/nf-core/metamaps/classify/main.nf @@ -20,7 +20,7 @@ process METAMAPS_CLASSIFY { tuple val(meta), path("*classification_res.EM.contigCoverage") , emit: contig_coverage tuple val(meta), path("*classification_res.EM.lengthAndIdentitiesPerMappingUnit") , emit: length_and_id tuple val(meta), path("*classification_res.EM.reads2Taxon.krona") , emit: krona - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('metamaps'), eval("metamaps | sed -n 's/.*MetaMaps v //p'"), emit: versions_metamaps, topic: versions when: task.ext.when == null || task.ext.when @@ -34,11 +34,6 @@ process METAMAPS_CLASSIFY { --mappings ${classification_res} \\ --threads ${task.cpus} \\ --DB ${database_folder} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - metamaps: \$(metamaps | sed -n 2p | sed 's/^.*MetaMaps v //') - END_VERSIONS """ stub: @@ -51,11 +46,6 @@ process METAMAPS_CLASSIFY { touch ${prefix}_classification_res.EM.contigCoverage touch ${prefix}_classification_res.EM.lengthAndIdentitiesPerMappingUnit touch ${prefix}_classification_res.EM.reads2Taxon.krona - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - metamaps: \$(metamaps | sed -n 2p | sed 's/^.*MetaMaps v //') - END_VERSIONS """ } diff --git a/modules/nf-core/metamaps/classify/meta.yml b/modules/nf-core/metamaps/classify/meta.yml index 8d936b10e2c9..1dd85ffee689 100644 --- a/modules/nf-core/metamaps/classify/meta.yml +++ b/modules/nf-core/metamaps/classify/meta.yml @@ -12,7 +12,8 @@ tools: documentation: https://github.com/DiltheyLab/MetaMaps/blob/master/README.md tool_dev_url: https://github.com/DiltheyLab/MetaMaps doi: "10.1038/s41467-019-10934-2" - licence: ["Public Domain"] + licence: + - "Public Domain" identifier: biotools:metamaps input: @@ -123,13 +124,29 @@ output: description: Taxon ID assignment of reads in Krona format pattern: "*.{classification_res.EM.reads2Taxon.krona}" ontologies: [] + versions_metamaps: + - - ${task.process}: + type: string + description: The name of the process + - metamaps: + type: string + description: The name of the tool + - metamaps | sed -n 's/.*MetaMaps v //p': + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - metamaps: + type: string + description: The name of the tool + - metamaps | sed -n 's/.*MetaMaps v //p': + type: eval + description: The expression to obtain the version of the tool + authors: - "@henningonsbring" - "@sofstam" diff --git a/modules/nf-core/metamaps/classify/tests/main.nf.test b/modules/nf-core/metamaps/classify/tests/main.nf.test index e005bc8490c0..9c2a465987c7 100644 --- a/modules/nf-core/metamaps/classify/tests/main.nf.test +++ b/modules/nf-core/metamaps/classify/tests/main.nf.test @@ -2,6 +2,7 @@ nextflow_process { name "Test Process METAMAPS_CLASSIFY" script "../main.nf" + config "./nextflow.config" process "METAMAPS_CLASSIFY" tag "modules" @@ -11,52 +12,49 @@ nextflow_process { tag "metamaps/classify" tag "untar" - test("sarscov2_nanopore_classify") { - setup { - run("UNTAR") { - config "./nextflow.config" - script "../../../untar/main.nf" - process { - """ - input[0] = [ - [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) - ] - """ - } + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = [ + [], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) + ] + """ } - run("METAMAPS_MAPDIRECTLY") { - script "../../../metamaps/mapdirectly/main.nf" - process { - """ - input[0] = [ - [ id:'test', single_end:true ], // meta map + } + run("METAMAPS_MAPDIRECTLY") { + script "../../../metamaps/mapdirectly/main.nf" + process { + """ + input[0] = [ + [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test_2.fastq.gz', checkIfExists: true) - ] - input[1] = UNTAR.out.untar.map{ it[1] } - """ - } + ] + input[1] = UNTAR.out.untar.map{ it[1] } + """ } } + } + test("sarscov2_nanopore_classify") { when { process { """ - classification_folder = METAMAPS_MAPDIRECTLY.out.classification_res - .join(METAMAPS_MAPDIRECTLY.out.meta_file) - .join(METAMAPS_MAPDIRECTLY.out.meta_unmappedreadsLengths) - .join(METAMAPS_MAPDIRECTLY.out.para_file) - input[0] = classification_folder + input[0] = METAMAPS_MAPDIRECTLY.out.classification_res + .join(METAMAPS_MAPDIRECTLY.out.meta_file) + .join(METAMAPS_MAPDIRECTLY.out.meta_unmappedreadsLengths) + .join(METAMAPS_MAPDIRECTLY.out.para_file) input[1] = UNTAR.out.untar.map{ it[1] } """ } } - - then { - assertAll( + assertAll( { assert process.success }, - { assert snapshot ( sanitizeOutput(process.out) ).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } @@ -66,55 +64,23 @@ nextflow_process { options "-stub" - setup { - run("UNTAR") { - config "./nextflow.config" - script "../../../untar/main.nf" - process { - """ - input[0] = [ - [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) - ] - """ - } - } - run("METAMAPS_MAPDIRECTLY") { - script "../../../metamaps/mapdirectly/main.nf" - process { - """ - input[0] = [ - [ id:'test', single_end:true ], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test_2.fastq.gz', checkIfExists: true) - ] - input[1] = UNTAR.out.untar.map{ it[1] } - """ - } - } - } - when { process { """ - classification_folder = METAMAPS_MAPDIRECTLY.out.classification_res - .join(METAMAPS_MAPDIRECTLY.out.meta_file) - .join(METAMAPS_MAPDIRECTLY.out.meta_unmappedreadsLengths) - .join(METAMAPS_MAPDIRECTLY.out.para_file) - input[0] = classification_folder + input[0] = METAMAPS_MAPDIRECTLY.out.classification_res + .join(METAMAPS_MAPDIRECTLY.out.meta_file) + .join(METAMAPS_MAPDIRECTLY.out.meta_unmappedreadsLengths) + .join(METAMAPS_MAPDIRECTLY.out.para_file) input[1] = UNTAR.out.untar.map{ it[1] } """ } } - - then { - assertAll( + assertAll( { assert process.success }, - { assert snapshot ( sanitizeOutput(process.out) ).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } - } - - } diff --git a/modules/nf-core/metamaps/classify/tests/main.nf.test.snap b/modules/nf-core/metamaps/classify/tests/main.nf.test.snap index 16ccc9834f62..da221e342129 100644 --- a/modules/nf-core/metamaps/classify/tests/main.nf.test.snap +++ b/modules/nf-core/metamaps/classify/tests/main.nf.test.snap @@ -5,8 +5,7 @@ "contig_coverage": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM.contigCoverage:md5,131507f62806647f11b1dc10d546c73f" ] @@ -14,8 +13,7 @@ "em": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM:md5,c6b1f5475e3fb9c6633aa0623456eebc" ] @@ -23,8 +21,7 @@ "evidence_unknown_species": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM.evidenceUnknownSpecies:md5,a8577e31b3d9b3a598b43fc531075e81" ] @@ -32,8 +29,7 @@ "krona": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM.reads2Taxon.krona:md5,9f644c743e2f4ed5617fe3d421758771" ] @@ -41,8 +37,7 @@ "length_and_id": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM.lengthAndIdentitiesPerMappingUnit:md5,56be33596aa37bc360bbec47cebdc5e2" ] @@ -50,30 +45,32 @@ "reads2taxon": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM.reads2Taxon:md5,f08d1d1865a3949a9c542b5b930fb37c" ] ], - "versions": [ - "versions.yml:md5,60993f8b87f7a2e25367c7dc96c9b859" + "versions_metamaps": [ + [ + "METAMAPS_CLASSIFY", + "metamaps", + "0.1 " + ] ], "wimp": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.EM.WIMP:md5,b39a980519a382422ac6da49bea13de8" ] ] } ], - "timestamp": "2026-02-16T10:31:48.827781306", + "timestamp": "2026-07-06T12:50:09.649235078", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.04.3" } }, "sarscov2_nanopore_classify - stub": { @@ -82,8 +79,7 @@ "contig_coverage": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM.contigCoverage:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -91,8 +87,7 @@ "em": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -100,8 +95,7 @@ "evidence_unknown_species": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM.evidenceUnknownSpecies:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -109,8 +103,7 @@ "krona": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM.reads2Taxon.krona:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -118,8 +111,7 @@ "length_and_id": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM.lengthAndIdentitiesPerMappingUnit:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -127,30 +119,32 @@ "reads2taxon": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM.reads2Taxon:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,60993f8b87f7a2e25367c7dc96c9b859" + "versions_metamaps": [ + [ + "METAMAPS_CLASSIFY", + "metamaps", + "0.1 " + ] ], "wimp": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.EM.WIMP:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] } ], - "timestamp": "2026-02-16T10:31:57.309999771", + "timestamp": "2026-07-06T12:50:20.781697174", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.04.3" } } } \ No newline at end of file diff --git a/modules/nf-core/metamaps/mapdirectly/main.nf b/modules/nf-core/metamaps/mapdirectly/main.nf index 907c051d69a8..0b5076dadbe9 100644 --- a/modules/nf-core/metamaps/mapdirectly/main.nf +++ b/modules/nf-core/metamaps/mapdirectly/main.nf @@ -16,7 +16,7 @@ process METAMAPS_MAPDIRECTLY { tuple val(meta), path("*classification_res.meta") , emit: meta_file tuple val(meta), path("*classification_res.meta.unmappedReadsLengths"), emit: meta_unmappedreadsLengths tuple val(meta), path("*classification_res.parameters") , emit: para_file - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('metamaps'), eval("metamaps | sed -n 's/.*MetaMaps v //p'"), emit: versions_metamaps, topic: versions when: task.ext.when == null || task.ext.when @@ -28,17 +28,12 @@ process METAMAPS_MAPDIRECTLY { db=`find -L ${database} -name "DB.fa"` metamaps \\ mapDirectly \\ - $args \\ + ${args} \\ --all \\ --reference \$db \\ - --threads $task.cpus \\ - --query $reads \\ + --threads ${task.cpus} \\ + --query ${reads} \\ --output ${prefix}.classification_res - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - metamaps: \$(metamaps | sed -n 2p | sed 's/^.*MetaMaps v //') - END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" @@ -47,10 +42,5 @@ process METAMAPS_MAPDIRECTLY { touch ${prefix}_classification_res.meta touch ${prefix}_classification_res.meta.unmappedReadsLengths touch ${prefix}_classification_res.parameters - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - metamaps: \$(metamaps | sed -n 2p | sed 's/^.*MetaMaps v //') - END_VERSIONS """ } diff --git a/modules/nf-core/metamaps/mapdirectly/meta.yml b/modules/nf-core/metamaps/mapdirectly/meta.yml index 64b372f4a4fc..a3500f3cbd2e 100644 --- a/modules/nf-core/metamaps/mapdirectly/meta.yml +++ b/modules/nf-core/metamaps/mapdirectly/meta.yml @@ -12,7 +12,8 @@ tools: documentation: https://github.com/DiltheyLab/MetaMaps/blob/master/README.md tool_dev_url: https://github.com/DiltheyLab/MetaMaps doi: "10.1038/s41467-019-10934-2" - licence: ["Public Domain"] + licence: + - "Public Domain" identifier: biotools:metamaps input: @@ -77,13 +78,29 @@ output: description: Log with parameters pattern: "*.{classification_res.parameters}" ontologies: [] + versions_metamaps: + - - ${task.process}: + type: string + description: The name of the process + - metamaps: + type: string + description: The name of the tool + - metamaps | sed -n 's/.*MetaMaps v //p': + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - metamaps: + type: string + description: The name of the tool + - metamaps | sed -n 's/.*MetaMaps v //p': + type: eval + description: The expression to obtain the version of the tool + authors: - "@henningonsbring" - "@sofstam" diff --git a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test index 8c313154d6cc..dafd853d906b 100644 --- a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test +++ b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test @@ -10,27 +10,27 @@ nextflow_process { tag "metamaps/mapdirectly" tag "untar" - test("sarscov2_nanopore_mapdirectly") { - setup { run("UNTAR") { config "./nextflow.config" script "../../../untar/main.nf" - process { - """ - input[0] = [ - [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) - ] - """ - } + process { + """ + input[0] = [ + [], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) + ] + """ } } + } + test("sarscov2_nanopore_mapdirectly") { when { process { """ input[0] = [ - [ id:'test', single_end:true ], // meta map + [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test.fastq.gz', checkIfExists: true) ] input[1] = UNTAR.out.untar.map{ it[1] } @@ -38,38 +38,21 @@ nextflow_process { } } - then { assertAll( { assert process.success }, - { assert snapshot ( process.out ).match() } + { assert snapshot(sanitizeOutput(process.out, unstableKeys:["classification_res"])).match() } ) } } - test("sarscov2_nanopore_mapdirectly - stub") { - - options "-stub" - - setup { - run("UNTAR") { - config "./nextflow.config" - script "../../../untar/main.nf" - process { - """ - input[0] = [ - [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) - ] - """ - } - } - } - + test("sarscov2_nanopore_mapdirectly - stub") { + options "-stub" when { process { """ input[0] = [ - [ id:'test', single_end:true ], // meta map + [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test.fastq.gz', checkIfExists: true) ] input[1] = UNTAR.out.untar.map{ it[1] } @@ -80,7 +63,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot ( process.out ).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } } diff --git a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap index 895284f152eb..6ecc40a6b9ce 100644 --- a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap +++ b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap @@ -2,50 +2,10 @@ "sarscov2_nanopore_mapdirectly - stub": { "content": [ { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test_classification_res:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - "test_classification_res.meta:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - "test_classification_res.meta.unmappedReadsLengths:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "3": [ - [ - { - "id": "test", - "single_end": true - }, - "test_classification_res.parameters:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "4": [ - "versions.yml:md5,54af95dffcf4481d255c84d70cf851ef" - ], "classification_res": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -53,8 +13,7 @@ "meta_file": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.meta:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -62,8 +21,7 @@ "meta_unmappedreadsLengths": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.meta.unmappedReadsLengths:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -71,79 +29,41 @@ "para_file": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test_classification_res.parameters:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,54af95dffcf4481d255c84d70cf851ef" + "versions_metamaps": [ + [ + "METAMAPS_MAPDIRECTLY", + "metamaps", + "0.1 " + ] ] } ], + "timestamp": "2026-07-06T12:50:40.486373176", "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.3" - }, - "timestamp": "2024-12-17T18:42:07.130639636" + "nf-test": "0.9.5", + "nextflow": "26.04.3" + } }, "sarscov2_nanopore_mapdirectly": { "content": [ { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.classification_res:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - "test.classification_res.meta:md5,cf13c221c6d05329af73a0480466ddfb" - ] - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - "test.classification_res.meta.unmappedReadsLengths:md5,f636a6dc2372a5c93d472dd109a5e06d" - ] - ], - "3": [ - [ - { - "id": "test", - "single_end": true - }, - "test.classification_res.parameters:md5,c0fedae5209f2ac9ff41b48bdd2a403b" - ] - ], - "4": [ - "versions.yml:md5,54af95dffcf4481d255c84d70cf851ef" - ], "classification_res": [ [ { - "id": "test", - "single_end": true + "id": "test" }, - "test.classification_res:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.classification_res" ] ], "meta_file": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.meta:md5,cf13c221c6d05329af73a0480466ddfb" ] @@ -151,8 +71,7 @@ "meta_unmappedreadsLengths": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.meta.unmappedReadsLengths:md5,f636a6dc2372a5c93d472dd109a5e06d" ] @@ -160,21 +79,24 @@ "para_file": [ [ { - "id": "test", - "single_end": true + "id": "test" }, "test.classification_res.parameters:md5,c0fedae5209f2ac9ff41b48bdd2a403b" ] ], - "versions": [ - "versions.yml:md5,54af95dffcf4481d255c84d70cf851ef" + "versions_metamaps": [ + [ + "METAMAPS_MAPDIRECTLY", + "metamaps", + "0.1 " + ] ] } ], + "timestamp": "2026-07-06T13:02:56.379808387", "meta": { - "nf-test": "0.8.4", - "nextflow": "23.04.1" - }, - "timestamp": "2024-06-12T14:12:22.645009" + "nf-test": "0.9.5", + "nextflow": "26.04.3" + } } } \ No newline at end of file From 3d0d2247df1994f307b38e138b15744bcdf859da Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Mon, 6 Jul 2026 12:13:40 +0000 Subject: [PATCH 2/3] [automated] Fix code linting --- AGENTS.md | 43 +++++- modules/nf-core/baysor/preview/main.nf | 2 +- .../nf-core/baysor/preview/tests/main.nf.test | 2 +- modules/nf-core/baysor/run/main.nf | 4 +- modules/nf-core/baysor/run/tests/main.nf.test | 2 +- modules/nf-core/baysor/segfree/main.nf | 2 +- .../nf-core/baysor/segfree/tests/main.nf.test | 2 +- .../nf-core/caalm/caalm/environment.gpu.yml | 4 +- modules/nf-core/catpack/bins/environment.yml | 2 +- modules/nf-core/echtvar/encode/main.nf | 2 +- modules/nf-core/fgumi/merge/meta.yml | 2 +- .../fungtion/downloadmodels/environment.yml | 2 +- .../nf-core/leviosam2/lift/tests/main.nf.test | 2 - modules/nf-core/lofreq/alnqual/meta.yml | 36 ++--- modules/nf-core/lofreq/call/meta.yml | 36 ++--- modules/nf-core/lofreq/callparallel/meta.yml | 36 ++--- modules/nf-core/lofreq/filter/meta.yml | 36 ++--- modules/nf-core/lofreq/indelqual/meta.yml | 36 ++--- modules/nf-core/lofreq/somatic/meta.yml | 36 ++--- modules/nf-core/lofreq/viterbi/meta.yml | 36 ++--- modules/nf-core/memote/report/main.nf | 2 +- modules/nf-core/memote/run/main.nf | 2 +- modules/nf-core/misopy/index/meta.yml | 140 +++++++++--------- modules/nf-core/nonpareil/curve/meta.yml | 104 ++++++------- modules/nf-core/nonpareil/nonpareil/meta.yml | 36 ++--- .../nonpareil/nonpareilcurvesr/meta.yml | 36 ++--- modules/nf-core/nonpareil/set/meta.yml | 36 ++--- modules/nf-core/numorph/3dunet/Dockerfile | 2 +- modules/nf-core/numorph/3dunet/README.md | 3 +- .../nf-core/numorph/3dunet/tests/main.nf.test | 2 +- modules/nf-core/opt/flip/environment.yml | 2 +- modules/nf-core/opt/flip/tests/main.nf.test | 6 +- modules/nf-core/opt/stat/environment.yml | 2 +- modules/nf-core/opt/stat/tests/main.nf.test | 4 +- modules/nf-core/opt/track/environment.yml | 2 +- modules/nf-core/rmarkdownnotebook/main.nf | 2 +- modules/nf-core/rmarkdownnotebook/meta.yml | 4 +- .../get_periodic_lengths_and_offsets.py | 1 - .../nf-core/opt_flip_track_stat/main.nf | 2 +- 39 files changed, 369 insertions(+), 342 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 2c8f54f8282f..88ef0a4acd89 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,21 +3,24 @@ This is the AI agent context file for the nf-core modules repository. All AI agents and coding assistants **MUST** read and strictly follow the rules contained in this document. ## Natural language + All comments and documentation **MUST** be written in English with British spelling. ## Key terms + - **Module**: a single process that achieves a single, well defined task (e.g. aligning reads to a genome) - **Subworkflow**: a sequence of chained modules that achieve a specific objective (e.g. FASTQ cleanup and quality check) - **Component**: a module or subworkflow ## Repository structure + You are working in the nf-core modules repository. Repository structure: ``` . ├── modules │ ├── environment-schema.json // schema for module's environment.yml -│ ├── meta-schema.json // schema for module's meta.yml +│ ├── meta-schema.json // schema for module's meta.yml │ └── nf-core // directory containing nf-core modules, described below ├── nf-test.config // configuration for nf-test ├── subworkflows @@ -30,12 +33,15 @@ You are working in the nf-core modules repository. Repository structure: Certain rarely edited files were omitted in the treemap. You **MUST NOT** edit them unless the user explicitly asks for it. ### modules/nf-core structure + Module directories are under modules/nf-core, either directly or with one nesting level. The following rules apply: + - If a tool has only one command, it is included directly (e.g. modules/nf-core/iqtree) - If a tool has subcommands, they are contained as subdirectories of the tool directory (e.g. modules/nf-core/bedops/convert2bed); if the tool without subcommands has a separate functionality, it is included as a subcommand (e.g. modules/nf-core/kraken2/kraken2) - If a tool has multiple levels of subcommands, the subcommands are concatenated (e.g. `aws s3 ls` would be modules/nf-core/aws/s3ls) ### Module directory structure + Required structure: ``` @@ -44,13 +50,15 @@ modules/nf-core/{module}/ ├── main.nf // Nextflow code of the module ├── meta.yml // contains information about inputs, outputs and tools in the module └── tests - ├── main.nf.test // nf-test unit tests for the module + ├── main.nf.test // nf-test unit tests for the module ├── main.nf.test.snap // snapshots for the tests (see note below) └── nextflow.config // Nextflow configuration used for testing ONLY ``` + You **MAY** manually change version strings in test snapshots after a version bump. Any other change **MUST ONLY** be introduced through `nf-test` or `nf-core` commands. ### Subworkflow directory structure + Each subworkflow has a single top-level directory, without nesting. Required structure: ``` @@ -58,15 +66,17 @@ subworkflows/nf-core/{subworkflow}/ ├── main.nf // Nextflow code of the subworkflow ├── meta.yml // contains information about inputs, outputs and tools in the subworkflow └── tests - ├── main.nf.test // nf-test unit tests for the subworkflow + ├── main.nf.test // nf-test unit tests for the subworkflow ├── main.nf.test.snap // snapshots for the tests (see note above) └── nextflow.config // Nextflow configuration used for testing ONLY; multiple config files may exist in some cases ``` ## Structure of a module + Each module contains several files. Each file has a well-defined structure that you **MUST** follow. ### main.nf + - main.nf **MUST** define **ONLY** one Nextflow `process` - You **MUST NOT** add any directives other than `tag`, `label`, `conda`, and `container` - `input` and `output` sections **MUST** follow the specification at https://nf-co.re/docs/specifications/components/modules/input-output-options @@ -81,40 +91,51 @@ Each module contains several files. Each file has a well-defined structure that `meta.yml` **MUST** follow the specification at https://nf-co.re/docs/specifications/components/modules/documentation ### environment.yml -This file lists Conda channels and packages necessary to run the module with Conda and to build Seqera containers. + +This file lists Conda channels and packages necessary to run the module with Conda and to build Seqera containers. + - You **SHOULD NOT** add channels unless strictly necessary. - You **MUST NOT** add "defaults" to channels. - Each dependency **MUST** specify the channel and version, but **NOT** the build number. - If pip dependencies are used, you **MUST** also pin the version of pip. ### tests/main.nf.test + The test file **MUST** follow the specificaton at https://nf-co.re/docs/specifications/components/modules/testing. + - Test names **MUST** follow the rules in the "Test names" section of the specification. Stub test names **MUST** end with `- stub`. - You **MUST** follow assertion rules at https://nf-co.re/docs/developing/testing/assertions. ### tests/nextflow.config + tests/nextflow.config has no effect on pipeline runtime, it is only applied in unit tests. You **MUST NOT** create additional configs in modules. To create multiple configurations, use `module_args` as described at https://nf-co.re/docs/specifications/components/modules/testing#configuration-of-extargs-in-tests. ## Structure of a subworkflow + Subworkflows are structured similarly to modules. Subworkflows have no environment.yml, since Conda information is inherited from the included modules. The differences in specific files are described below. ### main.nf + - The file starts with include statements for modules and other subworkflows. - The subworkflow is defined in a single named `workflow` block, with `take` (input), `main` (script), and `emit` (output) sections. - The subworkflow **MAY** take any inputs that are required for the tools and produce any output that may reasonably be useful. - The subworkflow **SHOULD** contain multiple modules (at least 3, or 2 with complex logic) and any Nextflow logic required to connect them. ### meta.yml + The following sections differ: + - a `components` section **MUST** be present, containing a list of called modules, instead of `tools`, - `input` and `output` sections **MUST** contain all variables and files, but these sections **NEED NOT** exactly match the channel structure of the Nextflow file, - a `topics` section **MUST NOT** be present. ## Meta map + The meta map is a Nextflow map passed along with each file that contains sample-specific information. Modules: + - nf-core modules **SHOULD** accept a meta map for at least the main input, unless the purpose of the module makes it clearly pointless. - If a meta map is accepted, it **MUST** also be propagated in at least 1 output. - If there are multiple file input channels, the module **MAY** define additional meta inputs called `meta2`, `meta3`, and so on. @@ -122,12 +143,15 @@ Modules: - Modules **MUST NOT** assume the existence of any other keys in the meta map. Subworkflows: + - Subworkflows **NEED NOT** specifically accept meta inputs. -- Any channel operations in subworkflows **MUST** preserve the meta where present. +- Any channel operations in subworkflows **MUST** preserve the meta where present. - The presence of metas in input and output channels **MUST** be documented through comments (example: `// channel: [ val(meta), [ bam ] ]`) and meta.yml. ## `ext` options + The following `ext` options are allowed in nf-core: + - `ext.args`: arguments for the underlying tool, passed directly if present (for multi-tool modules, `args2` through `args99` are allowed as well) - `ext.prefix`: prefix used to name output files - `ext.prefix2`: a second prefix used in case of multiple outputs; you **MUST NOT** use it for other purposes, e.g. file formats @@ -136,9 +160,11 @@ The following `ext` options are allowed in nf-core: Modules **MUST NOT** assume the presence of other `ext` options. ## GPU-capable modules + Modules that use GPUs **MUST** follow the documentation at https://nf-co.re/docs/developing/components/gpu-modules. ## nf-core tools + nf-core provides a CLI toolkit for working with the nf-core template. The core command is `nf-core`. - You **SHOULD** use the tools instead of creating files manually. @@ -146,16 +172,18 @@ nf-core provides a CLI toolkit for working with the nf-core template. The core c - You **SHOULD** use `nf-core subworkflows --help` to discover commands relevant for subworkflows. - You **MUST** write subtool module names in commands with a slash, for example `samtools/sort`. - ## nf-test and testing + - Run tests with `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda} --stop-on-first-failure` - If you expect the output to change (e.g. after a tool update), you **SHOULD** update the snapshot with `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda} --update-snapshot`. You **MUST** regenerate snapshots on the same CPU architecture as CI. ## git and branch policy + - You **MUST** create a new branch with a meaningful name for each feature, whether you are working directly in the nf-core repository or on a fork. - If you work on multiple features in parallel, you **SHOULD** use a separate worktree for each task to prevent clobber. ## Push routine + - You **SHOULD** only push after implementing some meaningful changes and if the code is working. You **MUST** obtain permission to push from the user. - Before pushing, you **MUST** run `nf-core modules/subworkflows lint {name}`. You **MUST** resolve all errors and all possible warnings. You **MUST** repeat this routine until there are no solvable outstanding issues. - You **MUST** run `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda}`. If the run fails, you **MUST** resolve the underlying issues. If the test fails due to mismatching snapshots, update them with `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda} --update-snapshot` only if permitted (see "nf-test" above). Otherwise, you **MUST** fix the issue that caused the unexpected change. @@ -163,6 +191,7 @@ nf-core provides a CLI toolkit for working with the nf-core template. The core c - If you know the code will cause issues or you intend to push more changes, you **SHOULD** add `[skip ci]` at the end of the commit title. Omit this tag if the changes for final, review-ready commits. ## PR procedure + - All changes **MUST** be submitted to nf-core `master` through GitHub pull request. - You **MUST NOT** create "ready for review" pull requests. You **MAY** create draft pull requests if authorised by the user. - A PR **SHOULD** contain changes in a single component. @@ -172,11 +201,13 @@ nf-core provides a CLI toolkit for working with the nf-core template. The core c - All CI checks **MUST** pass before the PR can be merged. ## Agent self-disclosure + - If you generated a majority of the code in a commit, you **MUST** add "Generated by {your name}" at the end of the commit message body. - If you open a PR autonomously, you **MUST** add "Generated by {your name}" at the end of the PR message (above the checklist). - If you post a comment in a PR on behalf of the user, you **MUST** add "Comment added by {your name}" at the end of the comment. ## References + - Nextflow documentation: https://docs.seqera.io/nextflow/ - nf-core tools documentation: https://nf-co.re/docs/nf-core-tools/ - nf-test documentation: https://www.nf-test.com/docs/getting-started/ diff --git a/modules/nf-core/baysor/preview/main.nf b/modules/nf-core/baysor/preview/main.nf index 3f4ffa1fb239..a595575d95cd 100644 --- a/modules/nf-core/baysor/preview/main.nf +++ b/modules/nf-core/baysor/preview/main.nf @@ -36,4 +36,4 @@ process BAYSOR_PREVIEW { """ touch "${prefix}_preview.html" """ -} \ No newline at end of file +} diff --git a/modules/nf-core/baysor/preview/tests/main.nf.test b/modules/nf-core/baysor/preview/tests/main.nf.test index 2a30382b85d0..c3262d2110f1 100644 --- a/modules/nf-core/baysor/preview/tests/main.nf.test +++ b/modules/nf-core/baysor/preview/tests/main.nf.test @@ -55,4 +55,4 @@ nextflow_process { ) } } -} \ No newline at end of file +} diff --git a/modules/nf-core/baysor/run/main.nf b/modules/nf-core/baysor/run/main.nf index d07148594244..4e4d039d6cb4 100644 --- a/modules/nf-core/baysor/run/main.nf +++ b/modules/nf-core/baysor/run/main.nf @@ -23,7 +23,7 @@ process BAYSOR_RUN { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - + def prior_seg = prior_column ? ":${prior_column}" : (prior_segmentation ?: '') def confidence = prior_confidence ? "--prior-segmentation-confidence=${prior_confidence}" : '' def scaling_factor = scale ? "--scale=${scale}" : '' @@ -57,4 +57,4 @@ process BAYSOR_RUN { touch "${prefix}_segmentation.csv" touch "${prefix}_segmentation_polygons_2d.json" """ -} \ No newline at end of file +} diff --git a/modules/nf-core/baysor/run/tests/main.nf.test b/modules/nf-core/baysor/run/tests/main.nf.test index 61e2617c1b02..8a507a2fb4da 100644 --- a/modules/nf-core/baysor/run/tests/main.nf.test +++ b/modules/nf-core/baysor/run/tests/main.nf.test @@ -66,4 +66,4 @@ nextflow_process { ) } } -} \ No newline at end of file +} diff --git a/modules/nf-core/baysor/segfree/main.nf b/modules/nf-core/baysor/segfree/main.nf index 1587c04635bc..5f1dc37696cd 100644 --- a/modules/nf-core/baysor/segfree/main.nf +++ b/modules/nf-core/baysor/segfree/main.nf @@ -37,4 +37,4 @@ process BAYSOR_SEGFREE { """ touch "${prefix}_ncvs.loom" """ -} \ No newline at end of file +} diff --git a/modules/nf-core/baysor/segfree/tests/main.nf.test b/modules/nf-core/baysor/segfree/tests/main.nf.test index 2ca98e2689e8..4ab59f8adb4c 100644 --- a/modules/nf-core/baysor/segfree/tests/main.nf.test +++ b/modules/nf-core/baysor/segfree/tests/main.nf.test @@ -55,4 +55,4 @@ nextflow_process { ) } } -} \ No newline at end of file +} diff --git a/modules/nf-core/caalm/caalm/environment.gpu.yml b/modules/nf-core/caalm/caalm/environment.gpu.yml index 98953da6dbde..a8f8e2ea1058 100644 --- a/modules/nf-core/caalm/caalm/environment.gpu.yml +++ b/modules/nf-core/caalm/caalm/environment.gpu.yml @@ -4,8 +4,8 @@ channels: - conda-forge - bioconda dependencies: - - conda-forge::faiss-cpu=1.10.0 # CAALM only uses CPU FAISS APIs; faiss-gpu currently forces CUDA 12.9 - - conda-forge::mkl=2024.* # pins the MKL ABI for FAISS + - conda-forge::faiss-cpu=1.10.0 # CAALM only uses CPU FAISS APIs; faiss-gpu currently forces CUDA 12.9 + - conda-forge::mkl=2024.* # pins the MKL ABI for FAISS - conda-forge::python=3.10.0 - conda-forge::pytorch-gpu=2.6.0 - conda-forge::cuda-version=12.6 diff --git a/modules/nf-core/catpack/bins/environment.yml b/modules/nf-core/catpack/bins/environment.yml index ae275ea8d033..5b9085835cdc 100644 --- a/modules/nf-core/catpack/bins/environment.yml +++ b/modules/nf-core/catpack/bins/environment.yml @@ -5,4 +5,4 @@ channels: - bioconda dependencies: - bioconda::cat=6.0.1 - - conda-forge::gzip=1.14 \ No newline at end of file + - conda-forge::gzip=1.14 diff --git a/modules/nf-core/echtvar/encode/main.nf b/modules/nf-core/echtvar/encode/main.nf index a4907bb2266a..b4803d3fa3e6 100644 --- a/modules/nf-core/echtvar/encode/main.nf +++ b/modules/nf-core/echtvar/encode/main.nf @@ -13,7 +13,7 @@ process ECHTVAR_ENCODE { output: tuple val(meta), path("*.zip"), emit: db - tuple val("${task.process}"), val('echtvar'), eval("echtvar --version | sed 's/echtvar //g'"), emit: versions_echtvar, topic: versions + tuple val("${task.process}"), val('echtvar'), eval("echtvar --version | sed 's/echtvar //g'"), emit: versions_echtvar, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/fgumi/merge/meta.yml b/modules/nf-core/fgumi/merge/meta.yml index 7f2f92e74c54..288f0d76d615 100644 --- a/modules/nf-core/fgumi/merge/meta.yml +++ b/modules/nf-core/fgumi/merge/meta.yml @@ -48,7 +48,7 @@ output: - "fgumi": type: string description: The name of the tool - - "fgumi --version | sed \"s/^fgumi //\"": + - 'fgumi --version | sed "s/^fgumi //"': type: eval description: The expression to obtain the version of the tool diff --git a/modules/nf-core/fungtion/downloadmodels/environment.yml b/modules/nf-core/fungtion/downloadmodels/environment.yml index 9583769933a8..7dd02fa082e9 100644 --- a/modules/nf-core/fungtion/downloadmodels/environment.yml +++ b/modules/nf-core/fungtion/downloadmodels/environment.yml @@ -10,4 +10,4 @@ dependencies: - r-e1071=1.7_17 - r-optparse=1.8.2 - pip: - - fungtion==1.0.0 + - fungtion==1.0.0 diff --git a/modules/nf-core/leviosam2/lift/tests/main.nf.test b/modules/nf-core/leviosam2/lift/tests/main.nf.test index 628f9f2e9d94..579e3bf6f6f0 100644 --- a/modules/nf-core/leviosam2/lift/tests/main.nf.test +++ b/modules/nf-core/leviosam2/lift/tests/main.nf.test @@ -151,5 +151,3 @@ nextflow_process { } } - - diff --git a/modules/nf-core/lofreq/alnqual/meta.yml b/modules/nf-core/lofreq/alnqual/meta.yml index b8b2b52f5f34..87e86f1d92ec 100644 --- a/modules/nf-core/lofreq/alnqual/meta.yml +++ b/modules/nf-core/lofreq/alnqual/meta.yml @@ -43,26 +43,26 @@ output: pattern: "*.{bam,cram,sam}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@MarieLataretu" maintainers: diff --git a/modules/nf-core/lofreq/call/meta.yml b/modules/nf-core/lofreq/call/meta.yml index 4b81884a2afb..3fcb2b81b4cd 100644 --- a/modules/nf-core/lofreq/call/meta.yml +++ b/modules/nf-core/lofreq/call/meta.yml @@ -47,26 +47,26 @@ output: pattern: "*.{vcf}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@bjohnnyd" maintainers: diff --git a/modules/nf-core/lofreq/callparallel/meta.yml b/modules/nf-core/lofreq/callparallel/meta.yml index e1e90597e736..7e74398d405b 100644 --- a/modules/nf-core/lofreq/callparallel/meta.yml +++ b/modules/nf-core/lofreq/callparallel/meta.yml @@ -80,26 +80,26 @@ output: pattern: "*.{vcf.gz.tbi}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@kaurravneet4123" - "@bjohnnyd" diff --git a/modules/nf-core/lofreq/filter/meta.yml b/modules/nf-core/lofreq/filter/meta.yml index 7c3d1c5d383a..8ad7e575866a 100644 --- a/modules/nf-core/lofreq/filter/meta.yml +++ b/modules/nf-core/lofreq/filter/meta.yml @@ -40,26 +40,26 @@ output: pattern: "*.{vcf}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@bjohnnyd" maintainers: diff --git a/modules/nf-core/lofreq/indelqual/meta.yml b/modules/nf-core/lofreq/indelqual/meta.yml index fa332e263556..9e8fdabd55ee 100644 --- a/modules/nf-core/lofreq/indelqual/meta.yml +++ b/modules/nf-core/lofreq/indelqual/meta.yml @@ -49,26 +49,26 @@ output: pattern: "*.{bam}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@kaurravneet4123" maintainers: diff --git a/modules/nf-core/lofreq/somatic/meta.yml b/modules/nf-core/lofreq/somatic/meta.yml index f0db607aef69..00e2c7402f10 100644 --- a/modules/nf-core/lofreq/somatic/meta.yml +++ b/modules/nf-core/lofreq/somatic/meta.yml @@ -75,26 +75,26 @@ output: pattern: "*.{vcf.gz}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@nevinwu" maintainers: diff --git a/modules/nf-core/lofreq/viterbi/meta.yml b/modules/nf-core/lofreq/viterbi/meta.yml index 09b61935a6a1..5e0991b57005 100644 --- a/modules/nf-core/lofreq/viterbi/meta.yml +++ b/modules/nf-core/lofreq/viterbi/meta.yml @@ -51,26 +51,26 @@ output: pattern: "*.{bam}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@MarieLataretu" maintainers: diff --git a/modules/nf-core/memote/report/main.nf b/modules/nf-core/memote/report/main.nf index fcdbe2ad68d4..b20d42520552 100644 --- a/modules/nf-core/memote/report/main.nf +++ b/modules/nf-core/memote/report/main.nf @@ -35,7 +35,7 @@ process MEMOTE_REPORT { """ export HOME=\${PWD} export COBRA_SOLVER=glpk_exact - + touch ${prefix}.html """ } diff --git a/modules/nf-core/memote/run/main.nf b/modules/nf-core/memote/run/main.nf index a2acfd498a30..002575d1d03c 100644 --- a/modules/nf-core/memote/run/main.nf +++ b/modules/nf-core/memote/run/main.nf @@ -36,7 +36,7 @@ process MEMOTE_RUN { """ export HOME=\${PWD} export COBRA_SOLVER=glpk_exact - + echo "" | gzip > ${prefix}.json.gz """ } diff --git a/modules/nf-core/misopy/index/meta.yml b/modules/nf-core/misopy/index/meta.yml index 7ce525fddfb3..66b79d342080 100644 --- a/modules/nf-core/misopy/index/meta.yml +++ b/modules/nf-core/misopy/index/meta.yml @@ -2,87 +2,87 @@ name: misopy_index description: Build an indexed representation of a GFF for efficient retrieval of genes keywords: -- misopy -- index -- gff -- alternative splicing + - misopy + - index + - gff + - alternative splicing tools: -- "misopy": - description: Mixture of Isoforms model (MISO) for isoform quantitation using - RNA-Seq - homepage: https://github.com/yarden/MISO - documentation: https://miso.readthedocs.io/en/fastmiso/ - tool_dev_url: https://github.com/yarden/MISO - doi: 10.1038/nmeth.1528 - licence: - - "GPL v2" - identifier: biotools:misopy + - "misopy": + description: Mixture of Isoforms model (MISO) for isoform quantitation using + RNA-Seq + homepage: https://github.com/yarden/MISO + documentation: https://miso.readthedocs.io/en/fastmiso/ + tool_dev_url: https://github.com/yarden/MISO + doi: 10.1038/nmeth.1528 + licence: + - "GPL v2" + identifier: biotools:misopy input: -- - meta: - type: map - description: | - Groovy Map containing genome information - e.g. `[ id:'genome1' ]` - - gff3: - type: file - description: GFF3 file - pattern: "*.gff3" - ontologies: - - edam: "http://edamontology.org/format_1965" -output: - miso_index: - - meta: type: map description: | Groovy Map containing genome information e.g. `[ id:'genome1' ]` - - index: + - gff3: type: file - description: Processed MISO index file - pattern: "*.{shelve}" - ontologies: [] + description: GFF3 file + pattern: "*.gff3" + ontologies: + - edam: "http://edamontology.org/format_1965" +output: + miso_index: + - - meta: + type: map + description: | + Groovy Map containing genome information + e.g. `[ id:'genome1' ]` + - index: + type: file + description: Processed MISO index file + pattern: "*.{shelve}" + ontologies: [] versions_python: - - - ${task.process}: - type: string - description: The name of the process - - python: - type: string - description: The name of the tool - - python --version 2>&1 | sed "s/Python //g": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - python: + type: string + description: The name of the tool + - python --version 2>&1 | sed "s/Python //g": + type: eval + description: The expression to obtain the version of the tool versions_misopy: - - - ${task.process}: - type: string - description: The name of the process - - misopy: - type: string - description: The name of the tool - - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - misopy: + type: string + description: The name of the tool + - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: The name of the process - - python: - type: string - description: The name of the tool - - python --version 2>&1 | sed "s/Python //g": - type: eval - description: The expression to obtain the version of the tool - - - ${task.process}: - type: string - description: The name of the process - - misopy: - type: string - description: The name of the tool - - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - python: + type: string + description: The name of the tool + - python --version 2>&1 | sed "s/Python //g": + type: eval + description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - misopy: + type: string + description: The name of the tool + - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": + type: eval + description: The expression to obtain the version of the tool authors: -- "@valentinoruggieri" -- "@piplus2" + - "@valentinoruggieri" + - "@piplus2" maintainers: -- "@piplus2" + - "@piplus2" diff --git a/modules/nf-core/nonpareil/curve/meta.yml b/modules/nf-core/nonpareil/curve/meta.yml index d80acc89ca64..ccb55e9a562d 100644 --- a/modules/nf-core/nonpareil/curve/meta.yml +++ b/modules/nf-core/nonpareil/curve/meta.yml @@ -1,69 +1,69 @@ name: "nonpareil_curve" -description: Visualise metagenome redundancy curve in PNG format from a single +description: Visualise metagenome redundancy curve in PNG format from a single Nonpareil npo file keywords: -- metagenomics -- statistics -- coverage -- complexity -- redundancy -- diversity -- visualisation + - metagenomics + - statistics + - coverage + - complexity + - redundancy + - diversity + - visualisation tools: -- "nonpareil": - description: "Estimate average coverage and create curves for metagenomic datasets" - homepage: "https://github.com/lmrodriguezr/nonpareil" - documentation: "https://nonpareil.readthedocs.io/en/latest/" - tool_dev_url: "https://github.com/lmrodriguezr/nonpareil" - doi: "10.1128/msystems.00039-" - licence: - - "Artistic License 2.0" - identifier: biotools:nonpareil + - "nonpareil": + description: "Estimate average coverage and create curves for metagenomic datasets" + homepage: "https://github.com/lmrodriguezr/nonpareil" + documentation: "https://nonpareil.readthedocs.io/en/latest/" + tool_dev_url: "https://github.com/lmrodriguezr/nonpareil" + doi: "10.1128/msystems.00039-" + licence: + - "Artistic License 2.0" + identifier: biotools:nonpareil input: -- - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test', single_end:false ]` - - npo: - type: file - description: Single npo redundancy summary file from nonpareil itself - pattern: "*.npo" - ontologies: [] -output: - png: - - meta: type: map description: | Groovy Map containing sample information e.g. `[ id:'test', single_end:false ]` - - '*.png': + - npo: type: file - description: PNG file of the Nonpareil curve - pattern: "*.png" + description: Single npo redundancy summary file from nonpareil itself + pattern: "*.npo" ontologies: [] +output: + png: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - "*.png": + type: file + description: PNG file of the Nonpareil curve + pattern: "*.png" + ontologies: [] versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool authors: -- "@jfy133" + - "@jfy133" maintainers: -- "@jfy133" + - "@jfy133" diff --git a/modules/nf-core/nonpareil/nonpareil/meta.yml b/modules/nf-core/nonpareil/nonpareil/meta.yml index 3bfe2a07571e..b8c8160f1b23 100644 --- a/modules/nf-core/nonpareil/nonpareil/meta.yml +++ b/modules/nf-core/nonpareil/nonpareil/meta.yml @@ -83,26 +83,26 @@ output: pattern: "*.npo" ontologies: [] versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml b/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml index 88ccc147f168..0da526ee9377 100644 --- a/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml +++ b/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml @@ -82,26 +82,26 @@ output: ontologies: - edam: http://edamontology.org/format_3508 # PDF versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/nonpareil/set/meta.yml b/modules/nf-core/nonpareil/set/meta.yml index 76af8d1bef2b..7afa33008dc0 100644 --- a/modules/nf-core/nonpareil/set/meta.yml +++ b/modules/nf-core/nonpareil/set/meta.yml @@ -43,26 +43,26 @@ output: pattern: "*.png" ontologies: [] versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/numorph/3dunet/Dockerfile b/modules/nf-core/numorph/3dunet/Dockerfile index 9e8bf8fce748..c8d265a6d5b8 100644 --- a/modules/nf-core/numorph/3dunet/Dockerfile +++ b/modules/nf-core/numorph/3dunet/Dockerfile @@ -22,7 +22,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ RUN pip install --upgrade pip -# the tool needs this +# the tool needs this RUN pip install git+https://github.com/keras-team/keras-contrib.git # Install the package diff --git a/modules/nf-core/numorph/3dunet/README.md b/modules/nf-core/numorph/3dunet/README.md index 45a782c523cd..cf9dee03b48e 100644 --- a/modules/nf-core/numorph/3dunet/README.md +++ b/modules/nf-core/numorph/3dunet/README.md @@ -1,7 +1,6 @@ # Updating the docker container and making a new module release -To update this tool : -2. Edit the Dockerfile in the following lines: +To update this tool : 2. Edit the Dockerfile in the following lines: ```diff - ARG NUMORPH_PREPROCESSING_VERSION="1.0.0" diff --git a/modules/nf-core/numorph/3dunet/tests/main.nf.test b/modules/nf-core/numorph/3dunet/tests/main.nf.test index c5781e055312..8b7fa893a9c1 100644 --- a/modules/nf-core/numorph/3dunet/tests/main.nf.test +++ b/modules/nf-core/numorph/3dunet/tests/main.nf.test @@ -87,4 +87,4 @@ nextflow_process { } -} \ No newline at end of file +} diff --git a/modules/nf-core/opt/flip/environment.yml b/modules/nf-core/opt/flip/environment.yml index 31d94cf32a1f..32098a5698d9 100644 --- a/modules/nf-core/opt/flip/environment.yml +++ b/modules/nf-core/opt/flip/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::opt=0.0.1" \ No newline at end of file + - "bioconda::opt=0.0.1" diff --git a/modules/nf-core/opt/flip/tests/main.nf.test b/modules/nf-core/opt/flip/tests/main.nf.test index c81b08c4220a..f1e0ffb23c56 100644 --- a/modules/nf-core/opt/flip/tests/main.nf.test +++ b/modules/nf-core/opt/flip/tests/main.nf.test @@ -31,14 +31,14 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(sanitizeOutput(process.out)).match() } - ) + ) } } test("testrun opt/flip panel probe sequences -stub") { - + options "-stub" - + when { process { """ diff --git a/modules/nf-core/opt/stat/environment.yml b/modules/nf-core/opt/stat/environment.yml index 31d94cf32a1f..32098a5698d9 100644 --- a/modules/nf-core/opt/stat/environment.yml +++ b/modules/nf-core/opt/stat/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::opt=0.0.1" \ No newline at end of file + - "bioconda::opt=0.0.1" diff --git a/modules/nf-core/opt/stat/tests/main.nf.test b/modules/nf-core/opt/stat/tests/main.nf.test index 6451ecb30e00..6a1916ecc28a 100644 --- a/modules/nf-core/opt/stat/tests/main.nf.test +++ b/modules/nf-core/opt/stat/tests/main.nf.test @@ -66,9 +66,9 @@ nextflow_process { } test("testrun opt/stat panel probe sequences -stub") { - + options "-stub" - + when { process { """ diff --git a/modules/nf-core/opt/track/environment.yml b/modules/nf-core/opt/track/environment.yml index 31d94cf32a1f..32098a5698d9 100644 --- a/modules/nf-core/opt/track/environment.yml +++ b/modules/nf-core/opt/track/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::opt=0.0.1" \ No newline at end of file + - "bioconda::opt=0.0.1" diff --git a/modules/nf-core/rmarkdownnotebook/main.nf b/modules/nf-core/rmarkdownnotebook/main.nf index b258b535efcf..eb07c8102979 100644 --- a/modules/nf-core/rmarkdownnotebook/main.nf +++ b/modules/nf-core/rmarkdownnotebook/main.nf @@ -21,7 +21,7 @@ process RMARKDOWNNOTEBOOK { tuple val(meta), path("artifacts/*") , emit: artifacts, optional: true tuple val(meta), path("session_info.log") , emit: session_info tuple val("${task.process}"), val("rmarkdownnotebook"), eval("Rscript -e \"cat(paste(packageVersion('rmarkdown'), collapse='.'))\""), emit: versions_rmarkdownnotebook, topic: versions - + when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/rmarkdownnotebook/meta.yml b/modules/nf-core/rmarkdownnotebook/meta.yml index a9edb427c0fc..0193db57ce8b 100644 --- a/modules/nf-core/rmarkdownnotebook/meta.yml +++ b/modules/nf-core/rmarkdownnotebook/meta.yml @@ -88,7 +88,7 @@ output: - rmarkdownnotebook: type: string description: Name of the tool - - "Rscript -e \"cat(paste(packageVersion('rmarkdown'), collapse='.'))\"": + - 'Rscript -e "cat(paste(packageVersion(''rmarkdown''), collapse=''.''))"': type: eval description: The expression to obtain the version of the tool topics: @@ -99,7 +99,7 @@ topics: - rmarkdownnotebook: type: string description: Name of the tool - - "Rscript -e \"cat(paste(packageVersion('rmarkdown'), collapse='.'))\"": + - 'Rscript -e "cat(paste(packageVersion(''rmarkdown''), collapse=''.''))"': type: eval description: The expression to obtain the version of the tool authors: diff --git a/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py b/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py index ae6f7c853fb0..7a4af10fce21 100644 --- a/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py +++ b/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py @@ -18,7 +18,6 @@ import yaml from rpbp.ribo_utils.utils import get_periodic_lengths_and_offsets - prefix = "${prefix}" parser = argparse.ArgumentParser() diff --git a/subworkflows/nf-core/opt_flip_track_stat/main.nf b/subworkflows/nf-core/opt_flip_track_stat/main.nf index 63751fa41d14..79ab4cb67fb8 100644 --- a/subworkflows/nf-core/opt_flip_track_stat/main.nf +++ b/subworkflows/nf-core/opt_flip_track_stat/main.nf @@ -26,4 +26,4 @@ workflow OPT_FLIP_TRACK_STAT { emit: summary = ch_summary // channel: [ val(meta), ["collapsed_summary.tsv"]] -} \ No newline at end of file +} From c2b693b848b768b4587d526ef42e1afd8472f18f Mon Sep 17 00:00:00 2001 From: LouisLeNezet Date: Mon, 6 Jul 2026 14:47:16 +0200 Subject: [PATCH 3/3] Revert "[automated] Fix code linting" This reverts commit 3d0d2247df1994f307b38e138b15744bcdf859da. --- AGENTS.md | 43 +----- modules/nf-core/baysor/preview/main.nf | 2 +- .../nf-core/baysor/preview/tests/main.nf.test | 2 +- modules/nf-core/baysor/run/main.nf | 4 +- modules/nf-core/baysor/run/tests/main.nf.test | 2 +- modules/nf-core/baysor/segfree/main.nf | 2 +- .../nf-core/baysor/segfree/tests/main.nf.test | 2 +- .../nf-core/caalm/caalm/environment.gpu.yml | 4 +- modules/nf-core/catpack/bins/environment.yml | 2 +- modules/nf-core/echtvar/encode/main.nf | 2 +- modules/nf-core/fgumi/merge/meta.yml | 2 +- .../fungtion/downloadmodels/environment.yml | 2 +- .../nf-core/leviosam2/lift/tests/main.nf.test | 2 + modules/nf-core/lofreq/alnqual/meta.yml | 36 ++--- modules/nf-core/lofreq/call/meta.yml | 36 ++--- modules/nf-core/lofreq/callparallel/meta.yml | 36 ++--- modules/nf-core/lofreq/filter/meta.yml | 36 ++--- modules/nf-core/lofreq/indelqual/meta.yml | 36 ++--- modules/nf-core/lofreq/somatic/meta.yml | 36 ++--- modules/nf-core/lofreq/viterbi/meta.yml | 36 ++--- modules/nf-core/memote/report/main.nf | 2 +- modules/nf-core/memote/run/main.nf | 2 +- modules/nf-core/misopy/index/meta.yml | 140 +++++++++--------- modules/nf-core/nonpareil/curve/meta.yml | 104 ++++++------- modules/nf-core/nonpareil/nonpareil/meta.yml | 36 ++--- .../nonpareil/nonpareilcurvesr/meta.yml | 36 ++--- modules/nf-core/nonpareil/set/meta.yml | 36 ++--- modules/nf-core/numorph/3dunet/Dockerfile | 2 +- modules/nf-core/numorph/3dunet/README.md | 3 +- .../nf-core/numorph/3dunet/tests/main.nf.test | 2 +- modules/nf-core/opt/flip/environment.yml | 2 +- modules/nf-core/opt/flip/tests/main.nf.test | 6 +- modules/nf-core/opt/stat/environment.yml | 2 +- modules/nf-core/opt/stat/tests/main.nf.test | 4 +- modules/nf-core/opt/track/environment.yml | 2 +- modules/nf-core/rmarkdownnotebook/main.nf | 2 +- modules/nf-core/rmarkdownnotebook/meta.yml | 4 +- .../get_periodic_lengths_and_offsets.py | 1 + .../nf-core/opt_flip_track_stat/main.nf | 2 +- 39 files changed, 342 insertions(+), 369 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 88ef0a4acd89..2c8f54f8282f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,24 +3,21 @@ This is the AI agent context file for the nf-core modules repository. All AI agents and coding assistants **MUST** read and strictly follow the rules contained in this document. ## Natural language - All comments and documentation **MUST** be written in English with British spelling. ## Key terms - - **Module**: a single process that achieves a single, well defined task (e.g. aligning reads to a genome) - **Subworkflow**: a sequence of chained modules that achieve a specific objective (e.g. FASTQ cleanup and quality check) - **Component**: a module or subworkflow ## Repository structure - You are working in the nf-core modules repository. Repository structure: ``` . ├── modules │ ├── environment-schema.json // schema for module's environment.yml -│ ├── meta-schema.json // schema for module's meta.yml +│ ├── meta-schema.json // schema for module's meta.yml │ └── nf-core // directory containing nf-core modules, described below ├── nf-test.config // configuration for nf-test ├── subworkflows @@ -33,15 +30,12 @@ You are working in the nf-core modules repository. Repository structure: Certain rarely edited files were omitted in the treemap. You **MUST NOT** edit them unless the user explicitly asks for it. ### modules/nf-core structure - Module directories are under modules/nf-core, either directly or with one nesting level. The following rules apply: - - If a tool has only one command, it is included directly (e.g. modules/nf-core/iqtree) - If a tool has subcommands, they are contained as subdirectories of the tool directory (e.g. modules/nf-core/bedops/convert2bed); if the tool without subcommands has a separate functionality, it is included as a subcommand (e.g. modules/nf-core/kraken2/kraken2) - If a tool has multiple levels of subcommands, the subcommands are concatenated (e.g. `aws s3 ls` would be modules/nf-core/aws/s3ls) ### Module directory structure - Required structure: ``` @@ -50,15 +44,13 @@ modules/nf-core/{module}/ ├── main.nf // Nextflow code of the module ├── meta.yml // contains information about inputs, outputs and tools in the module └── tests - ├── main.nf.test // nf-test unit tests for the module + ├── main.nf.test // nf-test unit tests for the module ├── main.nf.test.snap // snapshots for the tests (see note below) └── nextflow.config // Nextflow configuration used for testing ONLY ``` - You **MAY** manually change version strings in test snapshots after a version bump. Any other change **MUST ONLY** be introduced through `nf-test` or `nf-core` commands. ### Subworkflow directory structure - Each subworkflow has a single top-level directory, without nesting. Required structure: ``` @@ -66,17 +58,15 @@ subworkflows/nf-core/{subworkflow}/ ├── main.nf // Nextflow code of the subworkflow ├── meta.yml // contains information about inputs, outputs and tools in the subworkflow └── tests - ├── main.nf.test // nf-test unit tests for the subworkflow + ├── main.nf.test // nf-test unit tests for the subworkflow ├── main.nf.test.snap // snapshots for the tests (see note above) └── nextflow.config // Nextflow configuration used for testing ONLY; multiple config files may exist in some cases ``` ## Structure of a module - Each module contains several files. Each file has a well-defined structure that you **MUST** follow. ### main.nf - - main.nf **MUST** define **ONLY** one Nextflow `process` - You **MUST NOT** add any directives other than `tag`, `label`, `conda`, and `container` - `input` and `output` sections **MUST** follow the specification at https://nf-co.re/docs/specifications/components/modules/input-output-options @@ -91,51 +81,40 @@ Each module contains several files. Each file has a well-defined structure that `meta.yml` **MUST** follow the specification at https://nf-co.re/docs/specifications/components/modules/documentation ### environment.yml - -This file lists Conda channels and packages necessary to run the module with Conda and to build Seqera containers. - +This file lists Conda channels and packages necessary to run the module with Conda and to build Seqera containers. - You **SHOULD NOT** add channels unless strictly necessary. - You **MUST NOT** add "defaults" to channels. - Each dependency **MUST** specify the channel and version, but **NOT** the build number. - If pip dependencies are used, you **MUST** also pin the version of pip. ### tests/main.nf.test - The test file **MUST** follow the specificaton at https://nf-co.re/docs/specifications/components/modules/testing. - - Test names **MUST** follow the rules in the "Test names" section of the specification. Stub test names **MUST** end with `- stub`. - You **MUST** follow assertion rules at https://nf-co.re/docs/developing/testing/assertions. ### tests/nextflow.config - tests/nextflow.config has no effect on pipeline runtime, it is only applied in unit tests. You **MUST NOT** create additional configs in modules. To create multiple configurations, use `module_args` as described at https://nf-co.re/docs/specifications/components/modules/testing#configuration-of-extargs-in-tests. ## Structure of a subworkflow - Subworkflows are structured similarly to modules. Subworkflows have no environment.yml, since Conda information is inherited from the included modules. The differences in specific files are described below. ### main.nf - - The file starts with include statements for modules and other subworkflows. - The subworkflow is defined in a single named `workflow` block, with `take` (input), `main` (script), and `emit` (output) sections. - The subworkflow **MAY** take any inputs that are required for the tools and produce any output that may reasonably be useful. - The subworkflow **SHOULD** contain multiple modules (at least 3, or 2 with complex logic) and any Nextflow logic required to connect them. ### meta.yml - The following sections differ: - - a `components` section **MUST** be present, containing a list of called modules, instead of `tools`, - `input` and `output` sections **MUST** contain all variables and files, but these sections **NEED NOT** exactly match the channel structure of the Nextflow file, - a `topics` section **MUST NOT** be present. ## Meta map - The meta map is a Nextflow map passed along with each file that contains sample-specific information. Modules: - - nf-core modules **SHOULD** accept a meta map for at least the main input, unless the purpose of the module makes it clearly pointless. - If a meta map is accepted, it **MUST** also be propagated in at least 1 output. - If there are multiple file input channels, the module **MAY** define additional meta inputs called `meta2`, `meta3`, and so on. @@ -143,15 +122,12 @@ Modules: - Modules **MUST NOT** assume the existence of any other keys in the meta map. Subworkflows: - - Subworkflows **NEED NOT** specifically accept meta inputs. -- Any channel operations in subworkflows **MUST** preserve the meta where present. +- Any channel operations in subworkflows **MUST** preserve the meta where present. - The presence of metas in input and output channels **MUST** be documented through comments (example: `// channel: [ val(meta), [ bam ] ]`) and meta.yml. ## `ext` options - The following `ext` options are allowed in nf-core: - - `ext.args`: arguments for the underlying tool, passed directly if present (for multi-tool modules, `args2` through `args99` are allowed as well) - `ext.prefix`: prefix used to name output files - `ext.prefix2`: a second prefix used in case of multiple outputs; you **MUST NOT** use it for other purposes, e.g. file formats @@ -160,11 +136,9 @@ The following `ext` options are allowed in nf-core: Modules **MUST NOT** assume the presence of other `ext` options. ## GPU-capable modules - Modules that use GPUs **MUST** follow the documentation at https://nf-co.re/docs/developing/components/gpu-modules. ## nf-core tools - nf-core provides a CLI toolkit for working with the nf-core template. The core command is `nf-core`. - You **SHOULD** use the tools instead of creating files manually. @@ -172,18 +146,16 @@ nf-core provides a CLI toolkit for working with the nf-core template. The core c - You **SHOULD** use `nf-core subworkflows --help` to discover commands relevant for subworkflows. - You **MUST** write subtool module names in commands with a slash, for example `samtools/sort`. -## nf-test and testing +## nf-test and testing - Run tests with `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda} --stop-on-first-failure` - If you expect the output to change (e.g. after a tool update), you **SHOULD** update the snapshot with `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda} --update-snapshot`. You **MUST** regenerate snapshots on the same CPU architecture as CI. ## git and branch policy - - You **MUST** create a new branch with a meaningful name for each feature, whether you are working directly in the nf-core repository or on a fork. - If you work on multiple features in parallel, you **SHOULD** use a separate worktree for each task to prevent clobber. ## Push routine - - You **SHOULD** only push after implementing some meaningful changes and if the code is working. You **MUST** obtain permission to push from the user. - Before pushing, you **MUST** run `nf-core modules/subworkflows lint {name}`. You **MUST** resolve all errors and all possible warnings. You **MUST** repeat this routine until there are no solvable outstanding issues. - You **MUST** run `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda}`. If the run fails, you **MUST** resolve the underlying issues. If the test fails due to mismatching snapshots, update them with `nf-test test {modules|subworkflows}/{path}/tests --profile=+{docker|singularity|conda} --update-snapshot` only if permitted (see "nf-test" above). Otherwise, you **MUST** fix the issue that caused the unexpected change. @@ -191,7 +163,6 @@ nf-core provides a CLI toolkit for working with the nf-core template. The core c - If you know the code will cause issues or you intend to push more changes, you **SHOULD** add `[skip ci]` at the end of the commit title. Omit this tag if the changes for final, review-ready commits. ## PR procedure - - All changes **MUST** be submitted to nf-core `master` through GitHub pull request. - You **MUST NOT** create "ready for review" pull requests. You **MAY** create draft pull requests if authorised by the user. - A PR **SHOULD** contain changes in a single component. @@ -201,13 +172,11 @@ nf-core provides a CLI toolkit for working with the nf-core template. The core c - All CI checks **MUST** pass before the PR can be merged. ## Agent self-disclosure - - If you generated a majority of the code in a commit, you **MUST** add "Generated by {your name}" at the end of the commit message body. - If you open a PR autonomously, you **MUST** add "Generated by {your name}" at the end of the PR message (above the checklist). - If you post a comment in a PR on behalf of the user, you **MUST** add "Comment added by {your name}" at the end of the comment. ## References - - Nextflow documentation: https://docs.seqera.io/nextflow/ - nf-core tools documentation: https://nf-co.re/docs/nf-core-tools/ - nf-test documentation: https://www.nf-test.com/docs/getting-started/ diff --git a/modules/nf-core/baysor/preview/main.nf b/modules/nf-core/baysor/preview/main.nf index a595575d95cd..3f4ffa1fb239 100644 --- a/modules/nf-core/baysor/preview/main.nf +++ b/modules/nf-core/baysor/preview/main.nf @@ -36,4 +36,4 @@ process BAYSOR_PREVIEW { """ touch "${prefix}_preview.html" """ -} +} \ No newline at end of file diff --git a/modules/nf-core/baysor/preview/tests/main.nf.test b/modules/nf-core/baysor/preview/tests/main.nf.test index c3262d2110f1..2a30382b85d0 100644 --- a/modules/nf-core/baysor/preview/tests/main.nf.test +++ b/modules/nf-core/baysor/preview/tests/main.nf.test @@ -55,4 +55,4 @@ nextflow_process { ) } } -} +} \ No newline at end of file diff --git a/modules/nf-core/baysor/run/main.nf b/modules/nf-core/baysor/run/main.nf index 4e4d039d6cb4..d07148594244 100644 --- a/modules/nf-core/baysor/run/main.nf +++ b/modules/nf-core/baysor/run/main.nf @@ -23,7 +23,7 @@ process BAYSOR_RUN { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - + def prior_seg = prior_column ? ":${prior_column}" : (prior_segmentation ?: '') def confidence = prior_confidence ? "--prior-segmentation-confidence=${prior_confidence}" : '' def scaling_factor = scale ? "--scale=${scale}" : '' @@ -57,4 +57,4 @@ process BAYSOR_RUN { touch "${prefix}_segmentation.csv" touch "${prefix}_segmentation_polygons_2d.json" """ -} +} \ No newline at end of file diff --git a/modules/nf-core/baysor/run/tests/main.nf.test b/modules/nf-core/baysor/run/tests/main.nf.test index 8a507a2fb4da..61e2617c1b02 100644 --- a/modules/nf-core/baysor/run/tests/main.nf.test +++ b/modules/nf-core/baysor/run/tests/main.nf.test @@ -66,4 +66,4 @@ nextflow_process { ) } } -} +} \ No newline at end of file diff --git a/modules/nf-core/baysor/segfree/main.nf b/modules/nf-core/baysor/segfree/main.nf index 5f1dc37696cd..1587c04635bc 100644 --- a/modules/nf-core/baysor/segfree/main.nf +++ b/modules/nf-core/baysor/segfree/main.nf @@ -37,4 +37,4 @@ process BAYSOR_SEGFREE { """ touch "${prefix}_ncvs.loom" """ -} +} \ No newline at end of file diff --git a/modules/nf-core/baysor/segfree/tests/main.nf.test b/modules/nf-core/baysor/segfree/tests/main.nf.test index 4ab59f8adb4c..2ca98e2689e8 100644 --- a/modules/nf-core/baysor/segfree/tests/main.nf.test +++ b/modules/nf-core/baysor/segfree/tests/main.nf.test @@ -55,4 +55,4 @@ nextflow_process { ) } } -} +} \ No newline at end of file diff --git a/modules/nf-core/caalm/caalm/environment.gpu.yml b/modules/nf-core/caalm/caalm/environment.gpu.yml index a8f8e2ea1058..98953da6dbde 100644 --- a/modules/nf-core/caalm/caalm/environment.gpu.yml +++ b/modules/nf-core/caalm/caalm/environment.gpu.yml @@ -4,8 +4,8 @@ channels: - conda-forge - bioconda dependencies: - - conda-forge::faiss-cpu=1.10.0 # CAALM only uses CPU FAISS APIs; faiss-gpu currently forces CUDA 12.9 - - conda-forge::mkl=2024.* # pins the MKL ABI for FAISS + - conda-forge::faiss-cpu=1.10.0 # CAALM only uses CPU FAISS APIs; faiss-gpu currently forces CUDA 12.9 + - conda-forge::mkl=2024.* # pins the MKL ABI for FAISS - conda-forge::python=3.10.0 - conda-forge::pytorch-gpu=2.6.0 - conda-forge::cuda-version=12.6 diff --git a/modules/nf-core/catpack/bins/environment.yml b/modules/nf-core/catpack/bins/environment.yml index 5b9085835cdc..ae275ea8d033 100644 --- a/modules/nf-core/catpack/bins/environment.yml +++ b/modules/nf-core/catpack/bins/environment.yml @@ -5,4 +5,4 @@ channels: - bioconda dependencies: - bioconda::cat=6.0.1 - - conda-forge::gzip=1.14 + - conda-forge::gzip=1.14 \ No newline at end of file diff --git a/modules/nf-core/echtvar/encode/main.nf b/modules/nf-core/echtvar/encode/main.nf index b4803d3fa3e6..a4907bb2266a 100644 --- a/modules/nf-core/echtvar/encode/main.nf +++ b/modules/nf-core/echtvar/encode/main.nf @@ -13,7 +13,7 @@ process ECHTVAR_ENCODE { output: tuple val(meta), path("*.zip"), emit: db - tuple val("${task.process}"), val('echtvar'), eval("echtvar --version | sed 's/echtvar //g'"), emit: versions_echtvar, topic: versions + tuple val("${task.process}"), val('echtvar'), eval("echtvar --version | sed 's/echtvar //g'"), emit: versions_echtvar, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/fgumi/merge/meta.yml b/modules/nf-core/fgumi/merge/meta.yml index 288f0d76d615..7f2f92e74c54 100644 --- a/modules/nf-core/fgumi/merge/meta.yml +++ b/modules/nf-core/fgumi/merge/meta.yml @@ -48,7 +48,7 @@ output: - "fgumi": type: string description: The name of the tool - - 'fgumi --version | sed "s/^fgumi //"': + - "fgumi --version | sed \"s/^fgumi //\"": type: eval description: The expression to obtain the version of the tool diff --git a/modules/nf-core/fungtion/downloadmodels/environment.yml b/modules/nf-core/fungtion/downloadmodels/environment.yml index 7dd02fa082e9..9583769933a8 100644 --- a/modules/nf-core/fungtion/downloadmodels/environment.yml +++ b/modules/nf-core/fungtion/downloadmodels/environment.yml @@ -10,4 +10,4 @@ dependencies: - r-e1071=1.7_17 - r-optparse=1.8.2 - pip: - - fungtion==1.0.0 + - fungtion==1.0.0 diff --git a/modules/nf-core/leviosam2/lift/tests/main.nf.test b/modules/nf-core/leviosam2/lift/tests/main.nf.test index 579e3bf6f6f0..628f9f2e9d94 100644 --- a/modules/nf-core/leviosam2/lift/tests/main.nf.test +++ b/modules/nf-core/leviosam2/lift/tests/main.nf.test @@ -151,3 +151,5 @@ nextflow_process { } } + + diff --git a/modules/nf-core/lofreq/alnqual/meta.yml b/modules/nf-core/lofreq/alnqual/meta.yml index 87e86f1d92ec..b8b2b52f5f34 100644 --- a/modules/nf-core/lofreq/alnqual/meta.yml +++ b/modules/nf-core/lofreq/alnqual/meta.yml @@ -43,26 +43,26 @@ output: pattern: "*.{bam,cram,sam}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@MarieLataretu" maintainers: diff --git a/modules/nf-core/lofreq/call/meta.yml b/modules/nf-core/lofreq/call/meta.yml index 3fcb2b81b4cd..4b81884a2afb 100644 --- a/modules/nf-core/lofreq/call/meta.yml +++ b/modules/nf-core/lofreq/call/meta.yml @@ -47,26 +47,26 @@ output: pattern: "*.{vcf}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@bjohnnyd" maintainers: diff --git a/modules/nf-core/lofreq/callparallel/meta.yml b/modules/nf-core/lofreq/callparallel/meta.yml index 7e74398d405b..e1e90597e736 100644 --- a/modules/nf-core/lofreq/callparallel/meta.yml +++ b/modules/nf-core/lofreq/callparallel/meta.yml @@ -80,26 +80,26 @@ output: pattern: "*.{vcf.gz.tbi}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@kaurravneet4123" - "@bjohnnyd" diff --git a/modules/nf-core/lofreq/filter/meta.yml b/modules/nf-core/lofreq/filter/meta.yml index 8ad7e575866a..7c3d1c5d383a 100644 --- a/modules/nf-core/lofreq/filter/meta.yml +++ b/modules/nf-core/lofreq/filter/meta.yml @@ -40,26 +40,26 @@ output: pattern: "*.{vcf}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@bjohnnyd" maintainers: diff --git a/modules/nf-core/lofreq/indelqual/meta.yml b/modules/nf-core/lofreq/indelqual/meta.yml index 9e8fdabd55ee..fa332e263556 100644 --- a/modules/nf-core/lofreq/indelqual/meta.yml +++ b/modules/nf-core/lofreq/indelqual/meta.yml @@ -49,26 +49,26 @@ output: pattern: "*.{bam}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@kaurravneet4123" maintainers: diff --git a/modules/nf-core/lofreq/somatic/meta.yml b/modules/nf-core/lofreq/somatic/meta.yml index 00e2c7402f10..f0db607aef69 100644 --- a/modules/nf-core/lofreq/somatic/meta.yml +++ b/modules/nf-core/lofreq/somatic/meta.yml @@ -75,26 +75,26 @@ output: pattern: "*.{vcf.gz}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@nevinwu" maintainers: diff --git a/modules/nf-core/lofreq/viterbi/meta.yml b/modules/nf-core/lofreq/viterbi/meta.yml index 5e0991b57005..09b61935a6a1 100644 --- a/modules/nf-core/lofreq/viterbi/meta.yml +++ b/modules/nf-core/lofreq/viterbi/meta.yml @@ -51,26 +51,26 @@ output: pattern: "*.{bam}" ontologies: [] versions_lofreq: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - lofreq: - type: string - description: Tool name - - "lofreq version | sed -n '1s/^.* //p'": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - lofreq: + type: string + description: Tool name + - "lofreq version | sed -n '1s/^.* //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@MarieLataretu" maintainers: diff --git a/modules/nf-core/memote/report/main.nf b/modules/nf-core/memote/report/main.nf index b20d42520552..fcdbe2ad68d4 100644 --- a/modules/nf-core/memote/report/main.nf +++ b/modules/nf-core/memote/report/main.nf @@ -35,7 +35,7 @@ process MEMOTE_REPORT { """ export HOME=\${PWD} export COBRA_SOLVER=glpk_exact - + touch ${prefix}.html """ } diff --git a/modules/nf-core/memote/run/main.nf b/modules/nf-core/memote/run/main.nf index 002575d1d03c..a2acfd498a30 100644 --- a/modules/nf-core/memote/run/main.nf +++ b/modules/nf-core/memote/run/main.nf @@ -36,7 +36,7 @@ process MEMOTE_RUN { """ export HOME=\${PWD} export COBRA_SOLVER=glpk_exact - + echo "" | gzip > ${prefix}.json.gz """ } diff --git a/modules/nf-core/misopy/index/meta.yml b/modules/nf-core/misopy/index/meta.yml index 66b79d342080..7ce525fddfb3 100644 --- a/modules/nf-core/misopy/index/meta.yml +++ b/modules/nf-core/misopy/index/meta.yml @@ -2,87 +2,87 @@ name: misopy_index description: Build an indexed representation of a GFF for efficient retrieval of genes keywords: - - misopy - - index - - gff - - alternative splicing +- misopy +- index +- gff +- alternative splicing tools: - - "misopy": - description: Mixture of Isoforms model (MISO) for isoform quantitation using - RNA-Seq - homepage: https://github.com/yarden/MISO - documentation: https://miso.readthedocs.io/en/fastmiso/ - tool_dev_url: https://github.com/yarden/MISO - doi: 10.1038/nmeth.1528 - licence: - - "GPL v2" - identifier: biotools:misopy +- "misopy": + description: Mixture of Isoforms model (MISO) for isoform quantitation using + RNA-Seq + homepage: https://github.com/yarden/MISO + documentation: https://miso.readthedocs.io/en/fastmiso/ + tool_dev_url: https://github.com/yarden/MISO + doi: 10.1038/nmeth.1528 + licence: + - "GPL v2" + identifier: biotools:misopy input: +- - meta: + type: map + description: | + Groovy Map containing genome information + e.g. `[ id:'genome1' ]` + - gff3: + type: file + description: GFF3 file + pattern: "*.gff3" + ontologies: + - edam: "http://edamontology.org/format_1965" +output: + miso_index: - - meta: type: map description: | Groovy Map containing genome information e.g. `[ id:'genome1' ]` - - gff3: + - index: type: file - description: GFF3 file - pattern: "*.gff3" - ontologies: - - edam: "http://edamontology.org/format_1965" -output: - miso_index: - - - meta: - type: map - description: | - Groovy Map containing genome information - e.g. `[ id:'genome1' ]` - - index: - type: file - description: Processed MISO index file - pattern: "*.{shelve}" - ontologies: [] + description: Processed MISO index file + pattern: "*.{shelve}" + ontologies: [] versions_python: - - - ${task.process}: - type: string - description: The name of the process - - python: - type: string - description: The name of the tool - - python --version 2>&1 | sed "s/Python //g": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - python: + type: string + description: The name of the tool + - python --version 2>&1 | sed "s/Python //g": + type: eval + description: The expression to obtain the version of the tool versions_misopy: - - - ${task.process}: - type: string - description: The name of the process - - misopy: - type: string - description: The name of the tool - - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - misopy: + type: string + description: The name of the tool + - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: The name of the process - - python: - type: string - description: The name of the tool - - python --version 2>&1 | sed "s/Python //g": - type: eval - description: The expression to obtain the version of the tool - - - ${task.process}: - type: string - description: The name of the process - - misopy: - type: string - description: The name of the tool - - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - python: + type: string + description: The name of the tool + - python --version 2>&1 | sed "s/Python //g": + type: eval + description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - misopy: + type: string + description: The name of the tool + - python -c "import pkg_resources; print(pkg_resources.get_distribution('misopy').version)": + type: eval + description: The expression to obtain the version of the tool authors: - - "@valentinoruggieri" - - "@piplus2" +- "@valentinoruggieri" +- "@piplus2" maintainers: - - "@piplus2" +- "@piplus2" diff --git a/modules/nf-core/nonpareil/curve/meta.yml b/modules/nf-core/nonpareil/curve/meta.yml index ccb55e9a562d..d80acc89ca64 100644 --- a/modules/nf-core/nonpareil/curve/meta.yml +++ b/modules/nf-core/nonpareil/curve/meta.yml @@ -1,69 +1,69 @@ name: "nonpareil_curve" -description: Visualise metagenome redundancy curve in PNG format from a single +description: Visualise metagenome redundancy curve in PNG format from a single Nonpareil npo file keywords: - - metagenomics - - statistics - - coverage - - complexity - - redundancy - - diversity - - visualisation +- metagenomics +- statistics +- coverage +- complexity +- redundancy +- diversity +- visualisation tools: - - "nonpareil": - description: "Estimate average coverage and create curves for metagenomic datasets" - homepage: "https://github.com/lmrodriguezr/nonpareil" - documentation: "https://nonpareil.readthedocs.io/en/latest/" - tool_dev_url: "https://github.com/lmrodriguezr/nonpareil" - doi: "10.1128/msystems.00039-" - licence: - - "Artistic License 2.0" - identifier: biotools:nonpareil +- "nonpareil": + description: "Estimate average coverage and create curves for metagenomic datasets" + homepage: "https://github.com/lmrodriguezr/nonpareil" + documentation: "https://nonpareil.readthedocs.io/en/latest/" + tool_dev_url: "https://github.com/lmrodriguezr/nonpareil" + doi: "10.1128/msystems.00039-" + licence: + - "Artistic License 2.0" + identifier: biotools:nonpareil input: +- - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - npo: + type: file + description: Single npo redundancy summary file from nonpareil itself + pattern: "*.npo" + ontologies: [] +output: + png: - - meta: type: map description: | Groovy Map containing sample information e.g. `[ id:'test', single_end:false ]` - - npo: + - '*.png': type: file - description: Single npo redundancy summary file from nonpareil itself - pattern: "*.npo" + description: PNG file of the Nonpareil curve + pattern: "*.png" ontologies: [] -output: - png: - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test', single_end:false ]` - - "*.png": - type: file - description: PNG file of the Nonpareil curve - pattern: "*.png" - ontologies: [] versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool authors: - - "@jfy133" +- "@jfy133" maintainers: - - "@jfy133" +- "@jfy133" diff --git a/modules/nf-core/nonpareil/nonpareil/meta.yml b/modules/nf-core/nonpareil/nonpareil/meta.yml index b8c8160f1b23..3bfe2a07571e 100644 --- a/modules/nf-core/nonpareil/nonpareil/meta.yml +++ b/modules/nf-core/nonpareil/nonpareil/meta.yml @@ -83,26 +83,26 @@ output: pattern: "*.npo" ontologies: [] versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml b/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml index 0da526ee9377..88ccc147f168 100644 --- a/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml +++ b/modules/nf-core/nonpareil/nonpareilcurvesr/meta.yml @@ -82,26 +82,26 @@ output: ontologies: - edam: http://edamontology.org/format_3508 # PDF versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - nonpareil: - type: string - description: Tool name - - nonpareil -V 2>&1 | sed "s/Nonpareil v//": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - nonpareil: + type: string + description: Tool name + - nonpareil -V 2>&1 | sed "s/Nonpareil v//": + type: eval + description: The expression to obtain the version of the tool authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/nonpareil/set/meta.yml b/modules/nf-core/nonpareil/set/meta.yml index 7afa33008dc0..76af8d1bef2b 100644 --- a/modules/nf-core/nonpareil/set/meta.yml +++ b/modules/nf-core/nonpareil/set/meta.yml @@ -43,26 +43,26 @@ output: pattern: "*.png" ontologies: [] versions_nonpareil: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool topics: versions: - - - ${task.process}: - type: string - description: Process which generated the version - - Nonpareil: - type: string - description: Tool name - - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": - type: eval - description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: Process which generated the version + - Nonpareil: + type: string + description: Tool name + - Rscript -e "library(Nonpareil); cat(paste(unlist(packageVersion('Nonpareil')), collapse = '.'))": + type: eval + description: The expression to obtain the version of the tool authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/numorph/3dunet/Dockerfile b/modules/nf-core/numorph/3dunet/Dockerfile index c8d265a6d5b8..9e8bf8fce748 100644 --- a/modules/nf-core/numorph/3dunet/Dockerfile +++ b/modules/nf-core/numorph/3dunet/Dockerfile @@ -22,7 +22,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ RUN pip install --upgrade pip -# the tool needs this +# the tool needs this RUN pip install git+https://github.com/keras-team/keras-contrib.git # Install the package diff --git a/modules/nf-core/numorph/3dunet/README.md b/modules/nf-core/numorph/3dunet/README.md index cf9dee03b48e..45a782c523cd 100644 --- a/modules/nf-core/numorph/3dunet/README.md +++ b/modules/nf-core/numorph/3dunet/README.md @@ -1,6 +1,7 @@ # Updating the docker container and making a new module release -To update this tool : 2. Edit the Dockerfile in the following lines: +To update this tool : +2. Edit the Dockerfile in the following lines: ```diff - ARG NUMORPH_PREPROCESSING_VERSION="1.0.0" diff --git a/modules/nf-core/numorph/3dunet/tests/main.nf.test b/modules/nf-core/numorph/3dunet/tests/main.nf.test index 8b7fa893a9c1..c5781e055312 100644 --- a/modules/nf-core/numorph/3dunet/tests/main.nf.test +++ b/modules/nf-core/numorph/3dunet/tests/main.nf.test @@ -87,4 +87,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/nf-core/opt/flip/environment.yml b/modules/nf-core/opt/flip/environment.yml index 32098a5698d9..31d94cf32a1f 100644 --- a/modules/nf-core/opt/flip/environment.yml +++ b/modules/nf-core/opt/flip/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::opt=0.0.1" + - "bioconda::opt=0.0.1" \ No newline at end of file diff --git a/modules/nf-core/opt/flip/tests/main.nf.test b/modules/nf-core/opt/flip/tests/main.nf.test index f1e0ffb23c56..c81b08c4220a 100644 --- a/modules/nf-core/opt/flip/tests/main.nf.test +++ b/modules/nf-core/opt/flip/tests/main.nf.test @@ -31,14 +31,14 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(sanitizeOutput(process.out)).match() } - ) + ) } } test("testrun opt/flip panel probe sequences -stub") { - + options "-stub" - + when { process { """ diff --git a/modules/nf-core/opt/stat/environment.yml b/modules/nf-core/opt/stat/environment.yml index 32098a5698d9..31d94cf32a1f 100644 --- a/modules/nf-core/opt/stat/environment.yml +++ b/modules/nf-core/opt/stat/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::opt=0.0.1" + - "bioconda::opt=0.0.1" \ No newline at end of file diff --git a/modules/nf-core/opt/stat/tests/main.nf.test b/modules/nf-core/opt/stat/tests/main.nf.test index 6a1916ecc28a..6451ecb30e00 100644 --- a/modules/nf-core/opt/stat/tests/main.nf.test +++ b/modules/nf-core/opt/stat/tests/main.nf.test @@ -66,9 +66,9 @@ nextflow_process { } test("testrun opt/stat panel probe sequences -stub") { - + options "-stub" - + when { process { """ diff --git a/modules/nf-core/opt/track/environment.yml b/modules/nf-core/opt/track/environment.yml index 32098a5698d9..31d94cf32a1f 100644 --- a/modules/nf-core/opt/track/environment.yml +++ b/modules/nf-core/opt/track/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::opt=0.0.1" + - "bioconda::opt=0.0.1" \ No newline at end of file diff --git a/modules/nf-core/rmarkdownnotebook/main.nf b/modules/nf-core/rmarkdownnotebook/main.nf index eb07c8102979..b258b535efcf 100644 --- a/modules/nf-core/rmarkdownnotebook/main.nf +++ b/modules/nf-core/rmarkdownnotebook/main.nf @@ -21,7 +21,7 @@ process RMARKDOWNNOTEBOOK { tuple val(meta), path("artifacts/*") , emit: artifacts, optional: true tuple val(meta), path("session_info.log") , emit: session_info tuple val("${task.process}"), val("rmarkdownnotebook"), eval("Rscript -e \"cat(paste(packageVersion('rmarkdown'), collapse='.'))\""), emit: versions_rmarkdownnotebook, topic: versions - + when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/rmarkdownnotebook/meta.yml b/modules/nf-core/rmarkdownnotebook/meta.yml index 0193db57ce8b..a9edb427c0fc 100644 --- a/modules/nf-core/rmarkdownnotebook/meta.yml +++ b/modules/nf-core/rmarkdownnotebook/meta.yml @@ -88,7 +88,7 @@ output: - rmarkdownnotebook: type: string description: Name of the tool - - 'Rscript -e "cat(paste(packageVersion(''rmarkdown''), collapse=''.''))"': + - "Rscript -e \"cat(paste(packageVersion('rmarkdown'), collapse='.'))\"": type: eval description: The expression to obtain the version of the tool topics: @@ -99,7 +99,7 @@ topics: - rmarkdownnotebook: type: string description: Name of the tool - - 'Rscript -e "cat(paste(packageVersion(''rmarkdown''), collapse=''.''))"': + - "Rscript -e \"cat(paste(packageVersion('rmarkdown'), collapse='.'))\"": type: eval description: The expression to obtain the version of the tool authors: diff --git a/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py b/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py index 7a4af10fce21..ae6f7c853fb0 100644 --- a/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py +++ b/modules/nf-core/rpbp/getperiodiclengthsoffsets/templates/get_periodic_lengths_and_offsets.py @@ -18,6 +18,7 @@ import yaml from rpbp.ribo_utils.utils import get_periodic_lengths_and_offsets + prefix = "${prefix}" parser = argparse.ArgumentParser() diff --git a/subworkflows/nf-core/opt_flip_track_stat/main.nf b/subworkflows/nf-core/opt_flip_track_stat/main.nf index 79ab4cb67fb8..63751fa41d14 100644 --- a/subworkflows/nf-core/opt_flip_track_stat/main.nf +++ b/subworkflows/nf-core/opt_flip_track_stat/main.nf @@ -26,4 +26,4 @@ workflow OPT_FLIP_TRACK_STAT { emit: summary = ch_summary // channel: [ val(meta), ["collapsed_summary.tsv"]] -} +} \ No newline at end of file