From a963c9b4bb2f3d118e17fc59b5a3b98f6cd3722c Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 20 Apr 2026 20:44:45 +0200 Subject: [PATCH 1/2] Add rundbcan synteny_pdf as optional, topic upgrade, bump version to 5.2.8 --- .../rundbcan/cazymeannotation/environment.yml | 2 +- .../nf-core/rundbcan/cazymeannotation/main.nf | 26 +++----- .../rundbcan/cazymeannotation/meta.yml | 41 ++++++++---- .../cazymeannotation/tests/main.nf.test | 10 +-- .../cazymeannotation/tests/main.nf.test.snap | 54 ++++++++------- .../nf-core/rundbcan/database/environment.yml | 2 +- modules/nf-core/rundbcan/database/main.nf | 20 ++---- modules/nf-core/rundbcan/database/meta.yml | 36 ++++++---- .../rundbcan/database/tests/main.nf.test | 7 +- .../rundbcan/database/tests/main.nf.test.snap | 42 ++++++------ .../nf-core/rundbcan/easycgc/environment.yml | 2 +- modules/nf-core/rundbcan/easycgc/main.nf | 40 +++++------ modules/nf-core/rundbcan/easycgc/meta.yml | 42 +++++++----- .../rundbcan/easycgc/tests/main.nf.test | 10 +-- .../rundbcan/easycgc/tests/main.nf.test.snap | 54 ++++++++------- .../rundbcan/easysubstrate/environment.yml | 2 +- .../nf-core/rundbcan/easysubstrate/main.nf | 44 +++++-------- .../nf-core/rundbcan/easysubstrate/meta.yml | 42 +++++++----- .../rundbcan/easysubstrate/tests/main.nf.test | 12 ++-- .../easysubstrate/tests/main.nf.test.snap | 66 ++++++++----------- 20 files changed, 275 insertions(+), 279 deletions(-) diff --git a/modules/nf-core/rundbcan/cazymeannotation/environment.yml b/modules/nf-core/rundbcan/cazymeannotation/environment.yml index d7941afd8855..da2844c4fbb4 100644 --- a/modules/nf-core/rundbcan/cazymeannotation/environment.yml +++ b/modules/nf-core/rundbcan/cazymeannotation/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - conda-forge dependencies: - - bioconda::dbcan=5.2.6 + - bioconda::dbcan=5.2.8 diff --git a/modules/nf-core/rundbcan/cazymeannotation/main.nf b/modules/nf-core/rundbcan/cazymeannotation/main.nf index b2c5bd8813ce..cf02f48694f7 100644 --- a/modules/nf-core/rundbcan/cazymeannotation/main.nf +++ b/modules/nf-core/rundbcan/cazymeannotation/main.nf @@ -1,22 +1,22 @@ process RUNDBCAN_CAZYMEANNOTATION { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' + : 'biocontainers/dbcan:5.2.8--pyhdfd78af_0'}" input: tuple val(meta), path(input_raw_data) path dbcan_db output: - tuple val(meta), path("${prefix}_overview.tsv") , emit: cazyme_annotation - tuple val(meta), path("${prefix}_dbCAN_hmm_results.tsv") , emit: dbcanhmm_results + tuple val(meta), path("${prefix}_overview.tsv"), emit: cazyme_annotation + tuple val(meta), path("${prefix}_dbCAN_hmm_results.tsv"), emit: dbcanhmm_results tuple val(meta), path("${prefix}_dbCANsub_hmm_results.tsv"), emit: dbcansub_results - tuple val(meta), path("${prefix}_diamond.out") , emit: dbcandiamond_results - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}_diamond.out"), emit: dbcandiamond_results + tuple val("${task.process}"), val('rundbcan'), eval("run_dbcan version | sed 's/dbCAN version: //g'"), emit: versions_rundbcan, topic: versions when: task.ext.when == null || task.ext.when @@ -36,11 +36,6 @@ process RUNDBCAN_CAZYMEANNOTATION { mv dbCAN_hmm_results.tsv ${prefix}_dbCAN_hmm_results.tsv mv dbCANsub_hmm_results.tsv ${prefix}_dbCANsub_hmm_results.tsv mv diamond.out ${prefix}_diamond.out - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ stub: @@ -50,10 +45,5 @@ process RUNDBCAN_CAZYMEANNOTATION { touch ${prefix}_dbCAN_hmm_results.tsv touch ${prefix}_dbCANsub_hmm_results.tsv touch ${prefix}_diamond.out - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ } diff --git a/modules/nf-core/rundbcan/cazymeannotation/meta.yml b/modules/nf-core/rundbcan/cazymeannotation/meta.yml index 88675bdfcca8..83a525e2b7b3 100644 --- a/modules/nf-core/rundbcan/cazymeannotation/meta.yml +++ b/modules/nf-core/rundbcan/cazymeannotation/meta.yml @@ -1,8 +1,7 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "rundbcan_cazymeannotation" -description: CAZyme annotation module for the dbcan pipeline. This module is used - to annotate carbohydrate-active enzymes (CAZymes) from genomic data using the dbCAN - annotation tool. +description: CAZyme annotation module for the dbcan pipeline. This module is + used to annotate carbohydrate-active enzymes (CAZymes) from genomic data using + the dbCAN annotation tool. keywords: - dbCAN - download @@ -17,9 +16,9 @@ tools: documentation: "https://run-dbcan.readthedocs.io/en/latest/" tool_dev_url: "https://github.com/bcb-unl/run_dbcan" doi: "10.1093/nar/gkad328" - licence: ["GPL v3-or-later"] + licence: + - "GPL v3-or-later" identifier: biotools:dbcan - input: - - meta: type: map @@ -31,8 +30,8 @@ input: description: FASTA file for protein sequences. pattern: "*.{fasta,fa,faa}" ontologies: - - edam: "http://edamontology.org/data_2044" # Sequence - - edam: "http://edamontology.org/format_1929" # FASTA + - edam: "http://edamontology.org/data_2044" + - edam: "http://edamontology.org/format_1929" - dbcan_db: type: directory description: Path to the dbCAN database directory. @@ -81,13 +80,27 @@ output: description: | TSV file containing the detailed dbCAN diamond results for CAZyme annotation. ontologies: [] + versions_rundbcan: + - - ${task.process}: + type: string + description: The name of the process + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + 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 + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + type: eval + description: The expression to obtain the version of the tool authors: - "@Xinpeng021001" maintainers: diff --git a/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test b/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test index d3ff75788186..714927a65eea 100644 --- a/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test +++ b/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test @@ -37,10 +37,7 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() + { assert snapshot(process.out).match() } ) } @@ -61,10 +58,7 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test.snap b/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test.snap index f984379d81bf..82dd7dc59d3d 100644 --- a/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test.snap +++ b/modules/nf-core/rundbcan/cazymeannotation/tests/main.nf.test.snap @@ -35,7 +35,11 @@ ] ], "4": [ - "versions.yml:md5,51c852df9519c8781977cf96a01dfc6a" + [ + "RUNDBCAN_CAZYMEANNOTATION", + "rundbcan", + "5.2.8" + ] ], "cazyme_annotation": [ [ @@ -69,21 +73,20 @@ "stub_dbCANsub_hmm_results.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,51c852df9519c8781977cf96a01dfc6a" + "versions_rundbcan": [ + [ + "RUNDBCAN_CAZYMEANNOTATION", + "rundbcan", + "5.2.8" + ] ] - }, - { - "RUNDBCAN_CAZYMEANNOTATION": { - "dbcan": "5.2.6" - } } ], + "timestamp": "2026-04-20T12:23:30.010346172", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T13:06:18.515911731" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } }, "dbcancazyme - simplified": { "content": [ @@ -121,7 +124,11 @@ ] ], "4": [ - "versions.yml:md5,51c852df9519c8781977cf96a01dfc6a" + [ + "RUNDBCAN_CAZYMEANNOTATION", + "rundbcan", + "5.2.8" + ] ], "cazyme_annotation": [ [ @@ -155,20 +162,19 @@ "test_dbCANsub_hmm_results.tsv:md5,d771df5ab5b2967ced24c04fe54abf17" ] ], - "versions": [ - "versions.yml:md5,51c852df9519c8781977cf96a01dfc6a" + "versions_rundbcan": [ + [ + "RUNDBCAN_CAZYMEANNOTATION", + "rundbcan", + "5.2.8" + ] ] - }, - { - "RUNDBCAN_CAZYMEANNOTATION": { - "dbcan": "5.2.6" - } } ], + "timestamp": "2026-04-20T12:23:24.276249869", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T13:06:15.732926016" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } } } \ No newline at end of file diff --git a/modules/nf-core/rundbcan/database/environment.yml b/modules/nf-core/rundbcan/database/environment.yml index d7941afd8855..da2844c4fbb4 100644 --- a/modules/nf-core/rundbcan/database/environment.yml +++ b/modules/nf-core/rundbcan/database/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - conda-forge dependencies: - - bioconda::dbcan=5.2.6 + - bioconda::dbcan=5.2.8 diff --git a/modules/nf-core/rundbcan/database/main.nf b/modules/nf-core/rundbcan/database/main.nf index 74cd6ff9d5d2..656c7cf3fcf4 100644 --- a/modules/nf-core/rundbcan/database/main.nf +++ b/modules/nf-core/rundbcan/database/main.nf @@ -2,13 +2,13 @@ process RUNDBCAN_DATABASE { label 'process_low' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' + : 'biocontainers/dbcan:5.2.8--pyhdfd78af_0'}" output: - path "dbcan_db" , emit: dbcan_db - path "versions.yml", emit: versions + path "dbcan_db", emit: dbcan_db + tuple val("${task.process}"), val('rundbcan'), eval("run_dbcan version | sed 's/dbCAN version: //g'"), emit: versions_rundbcan, topic: versions when: task.ext.when == null || task.ext.when @@ -18,20 +18,10 @@ process RUNDBCAN_DATABASE { run_dbcan database \\ --db_dir dbcan_db \\ --aws_s3 - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ stub: """ mkdir -p dbcan_db - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ } diff --git a/modules/nf-core/rundbcan/database/meta.yml b/modules/nf-core/rundbcan/database/meta.yml index 001a06fa80c5..5c0b0267f945 100644 --- a/modules/nf-core/rundbcan/database/meta.yml +++ b/modules/nf-core/rundbcan/database/meta.yml @@ -1,6 +1,6 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "rundbcan_database" -description: command from run_dbcan to prepare the database for dbCAN annotation. +description: command from run_dbcan to prepare the database for dbCAN + annotation. keywords: - dbCAN - download @@ -15,23 +15,37 @@ tools: documentation: "https://run-dbcan.readthedocs.io/en/latest/" tool_dev_url: "https://github.com/bcb-unl/run_dbcan" doi: "10.1093/nar/gkad328" - licence: ["GPL v3-or-later"] + licence: + - "GPL v3-or-later" identifier: biotools:dbcan - +input: [] output: dbcan_db: - dbcan_db: type: directory description: Download directory for dbCAN databases pattern: "dbcan_db" + versions_rundbcan: + - - ${task.process}: + type: string + description: The name of the process + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + 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 + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + type: eval + description: The expression to obtain the version of the tool authors: - "@Xinpeng021001" maintainers: diff --git a/modules/nf-core/rundbcan/database/tests/main.nf.test b/modules/nf-core/rundbcan/database/tests/main.nf.test index d81a33197532..561f73899370 100644 --- a/modules/nf-core/rundbcan/database/tests/main.nf.test +++ b/modules/nf-core/rundbcan/database/tests/main.nf.test @@ -21,11 +21,9 @@ nextflow_process { then { assert process.success assert path(process.out.dbcan_db.get(0)).exists() - assert path(process.out.versions[0]).exists() assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml + process.out.findAll { key, val -> key.startsWith('versions') } ).match() } ) } @@ -47,8 +45,7 @@ nextflow_process { assertAll( { assert snapshot( file(process.out.dbcan_db.get(0)).name, - process.out.versions, - path(process.out.versions[0]).yaml + process.out.findAll { key, val -> key.startsWith('versions') } ).match() } ) } diff --git a/modules/nf-core/rundbcan/database/tests/main.nf.test.snap b/modules/nf-core/rundbcan/database/tests/main.nf.test.snap index ccf533f96b91..7fd3e2348dba 100644 --- a/modules/nf-core/rundbcan/database/tests/main.nf.test.snap +++ b/modules/nf-core/rundbcan/database/tests/main.nf.test.snap @@ -1,37 +1,39 @@ { "rundbcan - database - basic": { "content": [ - [ - "versions.yml:md5,1cb5864f97367a12e59f0ca7dabfece2" - ], { - "RUNDBCAN_DATABASE": { - "dbcan": "5.2.6" - } + "versions_rundbcan": [ + [ + "RUNDBCAN_DATABASE", + "rundbcan", + "5.2.8" + ] + ] } ], + "timestamp": "2026-04-20T12:35:23.340092811", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T13:11:26.280576128" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } }, "rundbcan - database - stub": { "content": [ "dbcan_db", - [ - "versions.yml:md5,1cb5864f97367a12e59f0ca7dabfece2" - ], { - "RUNDBCAN_DATABASE": { - "dbcan": "5.2.6" - } + "versions_rundbcan": [ + [ + "RUNDBCAN_DATABASE", + "rundbcan", + "5.2.8" + ] + ] } ], + "timestamp": "2026-04-20T12:35:29.047040575", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T13:11:28.96590784" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } } } \ No newline at end of file diff --git a/modules/nf-core/rundbcan/easycgc/environment.yml b/modules/nf-core/rundbcan/easycgc/environment.yml index d7941afd8855..da2844c4fbb4 100644 --- a/modules/nf-core/rundbcan/easycgc/environment.yml +++ b/modules/nf-core/rundbcan/easycgc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - conda-forge dependencies: - - bioconda::dbcan=5.2.6 + - bioconda::dbcan=5.2.8 diff --git a/modules/nf-core/rundbcan/easycgc/main.nf b/modules/nf-core/rundbcan/easycgc/main.nf index 04df10c4b754..a787106f11bc 100644 --- a/modules/nf-core/rundbcan/easycgc/main.nf +++ b/modules/nf-core/rundbcan/easycgc/main.nf @@ -1,28 +1,28 @@ process RUNDBCAN_EASYCGC { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' + : 'biocontainers/dbcan:5.2.8--pyhdfd78af_0'}" input: - tuple val(meta), path(input_raw_data) + tuple val(meta), path(input_raw_data) tuple val(meta2), path(input_gff), val(gff_type) - path dbcan_db + path dbcan_db output: - tuple val(meta), path("${prefix}_overview.tsv") , emit: cazyme_annotation - tuple val(meta), path("${prefix}_dbCAN_hmm_results.tsv") , emit: dbcanhmm_results + tuple val(meta), path("${prefix}_overview.tsv"), emit: cazyme_annotation + tuple val(meta), path("${prefix}_dbCAN_hmm_results.tsv"), emit: dbcanhmm_results tuple val(meta), path("${prefix}_dbCANsub_hmm_results.tsv"), emit: dbcansub_results - tuple val(meta), path("${prefix}_diamond.out") , emit: dbcandiamond_results - tuple val(meta), path("${prefix}_cgc.gff") , emit: cgc_gff - tuple val(meta), path("${prefix}_cgc_standard_out.tsv") , emit: cgc_standard_out - tuple val(meta), path("${prefix}_diamond.out.tc") , emit: diamond_out_tc - tuple val(meta), path("${prefix}_TF_hmm_results.tsv") , emit: tf_hmm_results, optional: true - tuple val(meta), path("${prefix}_STP_hmm_results.tsv") , emit: stp_hmm_results - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}_diamond.out"), emit: dbcandiamond_results + tuple val(meta), path("${prefix}_cgc.gff"), emit: cgc_gff + tuple val(meta), path("${prefix}_cgc_standard_out.tsv"), emit: cgc_standard_out + tuple val(meta), path("${prefix}_diamond.out.tc"), emit: diamond_out_tc + tuple val(meta), path("${prefix}_TF_hmm_results.tsv"), emit: tf_hmm_results, optional: true + tuple val(meta), path("${prefix}_STP_hmm_results.tsv"), emit: stp_hmm_results + tuple val("${task.process}"), val('rundbcan'), eval("run_dbcan version | sed 's/dbCAN version: //g'"), emit: versions_rundbcan, topic: versions when: task.ext.when == null || task.ext.when @@ -52,11 +52,6 @@ process RUNDBCAN_EASYCGC { if [ -f TF_hmm_results.tsv ]; then mv TF_hmm_results.tsv ${prefix}_TF_hmm_results.tsv fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ stub: @@ -72,10 +67,5 @@ process RUNDBCAN_EASYCGC { touch ${prefix}_TF_hmm_results.tsv touch ${prefix}_STP_hmm_results.tsv touch ${prefix}_total_cgc_info.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ } diff --git a/modules/nf-core/rundbcan/easycgc/meta.yml b/modules/nf-core/rundbcan/easycgc/meta.yml index 9428944b30a7..f3668881e372 100644 --- a/modules/nf-core/rundbcan/easycgc/meta.yml +++ b/modules/nf-core/rundbcan/easycgc/meta.yml @@ -1,8 +1,7 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "rundbcan_easycgc" -description: CGC annotation module for the dbcan pipeline. This module is used to - annotate carbohydrate-active enzymes (CAZymes) from genomic data using the dbCAN - annotation tool. +description: CGC annotation module for the dbcan pipeline. This module is used + to annotate carbohydrate-active enzymes (CAZymes) from genomic data using the + dbCAN annotation tool. keywords: - dbCAN - download @@ -17,9 +16,9 @@ tools: documentation: "https://run-dbcan.readthedocs.io/en/latest/" tool_dev_url: "https://github.com/bcb-unl/run_dbcan" doi: "10.1093/nar/gkad328" - licence: ["GPL v3-or-later"] + licence: + - "GPL v3-or-later" identifier: biotools:dbcan - input: - - meta: type: map @@ -31,8 +30,8 @@ input: description: FASTA file for protein sequences. pattern: "*.{fasta,fa,faa}" ontologies: - - edam: "http://edamontology.org/data_2044" # Sequence - - edam: "http://edamontology.org/format_1929" # FASTA + - edam: "http://edamontology.org/data_2044" + - edam: "http://edamontology.org/format_1929" - - meta2: type: map description: | @@ -49,7 +48,6 @@ input: - dbcan_db: type: directory description: Path to the dbCAN database directory. - output: cazyme_annotation: - - meta: @@ -150,13 +148,27 @@ output: description: | TSV file containing the results of signaling transduction proteins (STP) annotation. ontologies: [] + versions_rundbcan: + - - ${task.process}: + type: string + description: The name of the process + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + 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 + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + type: eval + description: The expression to obtain the version of the tool authors: - "@Xinpeng021001" maintainers: diff --git a/modules/nf-core/rundbcan/easycgc/tests/main.nf.test b/modules/nf-core/rundbcan/easycgc/tests/main.nf.test index a3cf6ec22cf7..c50c365df543 100644 --- a/modules/nf-core/rundbcan/easycgc/tests/main.nf.test +++ b/modules/nf-core/rundbcan/easycgc/tests/main.nf.test @@ -43,10 +43,7 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() + { assert snapshot(process.out).match() } ) } @@ -68,10 +65,7 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/rundbcan/easycgc/tests/main.nf.test.snap b/modules/nf-core/rundbcan/easycgc/tests/main.nf.test.snap index 671982307ea9..997de21fbd36 100644 --- a/modules/nf-core/rundbcan/easycgc/tests/main.nf.test.snap +++ b/modules/nf-core/rundbcan/easycgc/tests/main.nf.test.snap @@ -70,7 +70,11 @@ ] ], "9": [ - "versions.yml:md5,c60e758c5cd075dc308ba30508b11b27" + [ + "RUNDBCAN_EASYCGC", + "rundbcan", + "5.2.8" + ] ], "cazyme_annotation": [ [ @@ -139,21 +143,20 @@ "tf_hmm_results": [ ], - "versions": [ - "versions.yml:md5,c60e758c5cd075dc308ba30508b11b27" + "versions_rundbcan": [ + [ + "RUNDBCAN_EASYCGC", + "rundbcan", + "5.2.8" + ] ] - }, - { - "RUNDBCAN_EASYCGC": { - "dbcan": "5.2.6" - } } ], + "timestamp": "2026-04-20T12:45:57.450276128", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T14:37:07.440132787" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } }, "easycgc - stub": { "content": [ @@ -231,7 +234,11 @@ ] ], "9": [ - "versions.yml:md5,c60e758c5cd075dc308ba30508b11b27" + [ + "RUNDBCAN_EASYCGC", + "rundbcan", + "5.2.8" + ] ], "cazyme_annotation": [ [ @@ -305,20 +312,19 @@ "stub_TF_hmm_results.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,c60e758c5cd075dc308ba30508b11b27" + "versions_rundbcan": [ + [ + "RUNDBCAN_EASYCGC", + "rundbcan", + "5.2.8" + ] ] - }, - { - "RUNDBCAN_EASYCGC": { - "dbcan": "5.2.6" - } } ], + "timestamp": "2026-04-20T12:46:03.050032568", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T13:16:26.988658038" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } } } \ No newline at end of file diff --git a/modules/nf-core/rundbcan/easysubstrate/environment.yml b/modules/nf-core/rundbcan/easysubstrate/environment.yml index d7941afd8855..da2844c4fbb4 100644 --- a/modules/nf-core/rundbcan/easysubstrate/environment.yml +++ b/modules/nf-core/rundbcan/easysubstrate/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - conda-forge dependencies: - - bioconda::dbcan=5.2.6 + - bioconda::dbcan=5.2.8 diff --git a/modules/nf-core/rundbcan/easysubstrate/main.nf b/modules/nf-core/rundbcan/easysubstrate/main.nf index 16e8aebe0638..141b7d272965 100644 --- a/modules/nf-core/rundbcan/easysubstrate/main.nf +++ b/modules/nf-core/rundbcan/easysubstrate/main.nf @@ -1,31 +1,31 @@ process RUNDBCAN_EASYSUBSTRATE { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' + : 'biocontainers/dbcan:5.2.8--pyhdfd78af_0'}" input: - tuple val(meta), path(input_raw_data) + tuple val(meta), path(input_raw_data) tuple val(meta2), path(input_gff), val(gff_type) - path dbcan_db + path dbcan_db output: - tuple val(meta), path("${prefix}_overview.tsv") , emit: cazyme_annotation - tuple val(meta), path("${prefix}_dbCAN_hmm_results.tsv") , emit: dbcanhmm_results + tuple val(meta), path("${prefix}_overview.tsv"), emit: cazyme_annotation + tuple val(meta), path("${prefix}_dbCAN_hmm_results.tsv"), emit: dbcanhmm_results tuple val(meta), path("${prefix}_dbCANsub_hmm_results.tsv"), emit: dbcansub_results - tuple val(meta), path("${prefix}_diamond.out") , emit: dbcandiamond_results - tuple val(meta), path("${prefix}_cgc.gff") , emit: cgc_gff - tuple val(meta), path("${prefix}_cgc_standard_out.tsv") , emit: cgc_standard_out - tuple val(meta), path("${prefix}_diamond.out.tc") , emit: diamond_out_tc - tuple val(meta), path("${prefix}_TF_hmm_results.tsv") , emit: tf_hmm_results, optional: true - tuple val(meta), path("${prefix}_STP_hmm_results.tsv") , emit: stp_hmm_results - tuple val(meta), path("${prefix}_total_cgc_info.tsv") , emit: total_cgc_info + tuple val(meta), path("${prefix}_diamond.out"), emit: dbcandiamond_results + tuple val(meta), path("${prefix}_cgc.gff"), emit: cgc_gff + tuple val(meta), path("${prefix}_cgc_standard_out.tsv"), emit: cgc_standard_out + tuple val(meta), path("${prefix}_diamond.out.tc"), emit: diamond_out_tc + tuple val(meta), path("${prefix}_TF_hmm_results.tsv"), emit: tf_hmm_results, optional: true + tuple val(meta), path("${prefix}_STP_hmm_results.tsv"), emit: stp_hmm_results + tuple val(meta), path("${prefix}_total_cgc_info.tsv"), emit: total_cgc_info tuple val(meta), path("${prefix}_substrate_prediction.tsv"), emit: substrate_prediction - tuple val(meta), path("${prefix}_synteny_pdf/") , emit: synteny_pdf - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}_synteny_pdf/"), optional: true, emit: synteny_pdf + tuple val("${task.process}"), val('rundbcan'), eval("run_dbcan version | sed 's/dbCAN version: //g'"), emit: versions_rundbcan, topic: versions when: task.ext.when == null || task.ext.when @@ -60,11 +60,6 @@ process RUNDBCAN_EASYSUBSTRATE { if [ -f TF_hmm_results.tsv ]; then mv TF_hmm_results.tsv ${prefix}_TF_hmm_results.tsv fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ stub: @@ -84,10 +79,5 @@ process RUNDBCAN_EASYSUBSTRATE { touch ${prefix}_PUL_blast.out touch ${prefix}_substrate_prediction.tsv mkdir -p ${prefix}_synteny_pdf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dbcan: \$(echo \$(run_dbcan version) | cut -f2 -d':' | cut -f2 -d' ') - END_VERSIONS """ } diff --git a/modules/nf-core/rundbcan/easysubstrate/meta.yml b/modules/nf-core/rundbcan/easysubstrate/meta.yml index a6ace2b89ec0..f8350bb7e453 100644 --- a/modules/nf-core/rundbcan/easysubstrate/meta.yml +++ b/modules/nf-core/rundbcan/easysubstrate/meta.yml @@ -1,8 +1,7 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "rundbcan_easysubstrate" -description: Substrate annotation module for the dbcan pipeline. This module is used - to annotate carbohydrate-active enzymes (CAZymes) from genomic data using the dbCAN - annotation tool. +description: Substrate annotation module for the dbcan pipeline. This module is + used to annotate carbohydrate-active enzymes (CAZymes) from genomic data using + the dbCAN annotation tool. keywords: - dbCAN - download @@ -17,9 +16,9 @@ tools: documentation: "https://run-dbcan.readthedocs.io/en/latest/" tool_dev_url: "https://github.com/bcb-unl/run_dbcan" doi: "10.1093/nar/gkad328" - licence: ["GPL v3-or-later"] + licence: + - "GPL v3-or-later" identifier: biotools:dbcan - input: - - meta: type: map @@ -31,8 +30,8 @@ input: description: FASTA file for protein sequences. pattern: "*.{fasta,fa,faa}" ontologies: - - edam: "http://edamontology.org/data_2044" # Sequence - - edam: "http://edamontology.org/format_1929" # FASTA + - edam: "http://edamontology.org/data_2044" + - edam: "http://edamontology.org/format_1929" - - meta2: type: map description: | @@ -49,7 +48,6 @@ input: - dbcan_db: type: directory description: Path to the dbCAN database directory. - output: cazyme_annotation: - - meta: @@ -182,13 +180,27 @@ output: type: directory description: | Directory containing the synteny plots in PDF format for the CAZyme gene clusters (CGC) identified by dbCAN. This directory will contain one or more PDF files showing the syntenic regions of the CGC in the genome. + versions_rundbcan: + - - ${task.process}: + type: string + description: The name of the process + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + 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 + - rundbcan: + type: string + description: The name of the tool + - "run_dbcan version | sed 's/dbCAN version: //g'": + type: eval + description: The expression to obtain the version of the tool authors: - "@Xinpeng021001" maintainers: diff --git a/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test b/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test index b6c016a1d32a..43ba39cc4311 100644 --- a/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test +++ b/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test @@ -44,18 +44,17 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.cazyme_annotation, + path(process.out.cazyme_annotation[0][1]).text.contains('QYO62262.1|GH13'), process.out.dbcanhmm_results, process.out.dbcansub_results, - process.out.dbcandiamond_results, + path(process.out.dbcandiamond_results[0][1]).text.contains('GH13'), process.out.cgc_gff, process.out.cgc_standard_out, process.out.diamond_out_tc, process.out.tf_hmm_results, process.out.stp_hmm_results, process.out.total_cgc_info, - process.out.versions, - path(process.out.versions[0]).yaml + process.out.findAll { key, val -> key.startsWith('versions') } ).match() } ) @@ -79,10 +78,7 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test.snap b/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test.snap index 37d779b4550b..0d4a45b4b52f 100644 --- a/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test.snap +++ b/modules/nf-core/rundbcan/easysubstrate/tests/main.nf.test.snap @@ -37,7 +37,11 @@ ] ], "12": [ - "versions.yml:md5,b3b2fdbf18a2af95cc972c93ae3d9b86" + [ + "RUNDBCAN_EASYSUBSTRATE", + "rundbcan", + "5.2.8" + ] ], "2": [ [ @@ -201,32 +205,24 @@ "stub_total_cgc_info.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,b3b2fdbf18a2af95cc972c93ae3d9b86" + "versions_rundbcan": [ + [ + "RUNDBCAN_EASYSUBSTRATE", + "rundbcan", + "5.2.8" + ] ] - }, - { - "RUNDBCAN_EASYSUBSTRATE": { - "dbcan": "5.2.6" - } } ], + "timestamp": "2026-04-20T12:56:22.019632962", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T13:21:03.654343854" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } }, "easysubstrate - simplified": { "content": [ - [ - [ - { - "id": "test" - }, - "test_overview.tsv:md5,946555b9669d8e0b1705ca512ad3c60d" - ] - ], + false, [ [ { @@ -243,14 +239,7 @@ "test_dbCANsub_hmm_results.tsv:md5,d771df5ab5b2967ced24c04fe54abf17" ] ], - [ - [ - { - "id": "test" - }, - "test_diamond.out:md5,f6d902c0af43d8b33a41d647327c673e" - ] - ], + true, [ [ { @@ -294,19 +283,20 @@ "test_total_cgc_info.tsv:md5,86b551fe09a76b253b6c955363255af9" ] ], - [ - "versions.yml:md5,b3b2fdbf18a2af95cc972c93ae3d9b86" - ], { - "RUNDBCAN_EASYSUBSTRATE": { - "dbcan": "5.2.6" - } + "versions_rundbcan": [ + [ + "RUNDBCAN_EASYSUBSTRATE", + "rundbcan", + "5.2.8" + ] + ] } ], + "timestamp": "2026-04-20T15:59:57.278107864", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2026-02-02T15:25:26.403675169" + "nf-test": "0.9.5", + "nextflow": "24.10.3" + } } } \ No newline at end of file From 9e4493dbcf16c76b990134c018f14d4b4bcef1ef Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 23 Apr 2026 09:53:55 +0000 Subject: [PATCH 2/2] Resync version updated numbers --- modules/nf-core/rundbcan/cazymeannotation/main.nf | 4 ++-- modules/nf-core/rundbcan/database/main.nf | 4 ++-- modules/nf-core/rundbcan/easycgc/main.nf | 4 ++-- modules/nf-core/rundbcan/easysubstrate/main.nf | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/rundbcan/cazymeannotation/main.nf b/modules/nf-core/rundbcan/cazymeannotation/main.nf index 2ede7e49e304..466739e6f0fe 100644 --- a/modules/nf-core/rundbcan/cazymeannotation/main.nf +++ b/modules/nf-core/rundbcan/cazymeannotation/main.nf @@ -4,8 +4,8 @@ process RUNDBCAN_CAZYMEANNOTATION { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'quay.io/biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' : + 'quay.io/biocontainers/dbcan:5.2.8--pyhdfd78af_0' }" input: tuple val(meta), path(input_raw_data) diff --git a/modules/nf-core/rundbcan/database/main.nf b/modules/nf-core/rundbcan/database/main.nf index 2bd4282abb55..4055edbc2730 100644 --- a/modules/nf-core/rundbcan/database/main.nf +++ b/modules/nf-core/rundbcan/database/main.nf @@ -3,8 +3,8 @@ process RUNDBCAN_DATABASE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'quay.io/biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' : + 'quay.io/biocontainers/dbcan:5.2.8--pyhdfd78af_0' }" output: path "dbcan_db", emit: dbcan_db diff --git a/modules/nf-core/rundbcan/easycgc/main.nf b/modules/nf-core/rundbcan/easycgc/main.nf index 4c92fd71d691..c177d0b0161d 100644 --- a/modules/nf-core/rundbcan/easycgc/main.nf +++ b/modules/nf-core/rundbcan/easycgc/main.nf @@ -4,8 +4,8 @@ process RUNDBCAN_EASYCGC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'quay.io/biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' : + 'quay.io/biocontainers/dbcan:5.2.8--pyhdfd78af_0' }" input: tuple val(meta), path(input_raw_data) diff --git a/modules/nf-core/rundbcan/easysubstrate/main.nf b/modules/nf-core/rundbcan/easysubstrate/main.nf index 0e0e8a0f8fcd..1e6dd502e6f3 100644 --- a/modules/nf-core/rundbcan/easysubstrate/main.nf +++ b/modules/nf-core/rundbcan/easysubstrate/main.nf @@ -4,8 +4,8 @@ process RUNDBCAN_EASYSUBSTRATE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dbcan:5.2.6--pyhdfd78af_0' : - 'quay.io/biocontainers/dbcan:5.2.6--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dbcan:5.2.8--pyhdfd78af_0' : + 'quay.io/biocontainers/dbcan:5.2.8--pyhdfd78af_0' }" input: tuple val(meta), path(input_raw_data)