From 0084d3e21eaa37fd61b56546b6bdadf9e956ad1c Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 14 Jan 2026 10:55:23 -0800 Subject: [PATCH 1/4] feat: Added ViralConsensus module --- .../nf-core/viralconsensus/environment.yml | 8 ++ modules/nf-core/viralconsensus/main.nf | 50 ++++++++ modules/nf-core/viralconsensus/meta.yml | 113 +++++++++++++++++ .../nf-core/viralconsensus/tests/main.nf.test | 115 +++++++++++++++++ .../viralconsensus/tests/main.nf.test.snap | 119 ++++++++++++++++++ .../viralconsensus/tests/nextflow.config | 5 + .../tests/nextflow_optional.config | 7 ++ 7 files changed, 417 insertions(+) create mode 100644 modules/nf-core/viralconsensus/environment.yml create mode 100644 modules/nf-core/viralconsensus/main.nf create mode 100644 modules/nf-core/viralconsensus/meta.yml create mode 100644 modules/nf-core/viralconsensus/tests/main.nf.test create mode 100644 modules/nf-core/viralconsensus/tests/main.nf.test.snap create mode 100644 modules/nf-core/viralconsensus/tests/nextflow.config create mode 100644 modules/nf-core/viralconsensus/tests/nextflow_optional.config diff --git a/modules/nf-core/viralconsensus/environment.yml b/modules/nf-core/viralconsensus/environment.yml new file mode 100644 index 000000000000..390707db5d97 --- /dev/null +++ b/modules/nf-core/viralconsensus/environment.yml @@ -0,0 +1,8 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + # renovate: datasource=conda depName=bioconda/viral_consensus + - bioconda::viral_consensus=1.0.0 diff --git a/modules/nf-core/viralconsensus/main.nf b/modules/nf-core/viralconsensus/main.nf new file mode 100644 index 000000000000..b34420ba7cbd --- /dev/null +++ b/modules/nf-core/viralconsensus/main.nf @@ -0,0 +1,50 @@ +process VIRALCONSENSUS { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/viral_consensus:1.0.0--hcf1f8c1_0': + 'biocontainers/viral_consensus:1.0.0--hcf1f8c1_0' }" + + input: + tuple val(meta), path(bam) + path fasta + path primer_bed + + output: + tuple val(meta), path("*.consensus.fa"), emit: fasta + tuple val(meta), path("*.pos_counts.tsv"), optional: true, emit: pos_counts + tuple val(meta), path("*.ins_counts.json"), optional: true, emit: ins_counts + tuple val("${task.process}"), val('viralconsensus'), eval("viral_consensus --version 2>&1 | head -n1 | sed 's/ViralConsensus //'"), topic: versions, emit: versions_viralconsensus + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def primer_arg = primer_bed ? "-p ${primer_bed}" : '' + def pos_counts_arg = task.ext.save_pos_counts ? "-op ${prefix}.pos_counts.tsv" : '' + def ins_counts_arg = task.ext.save_ins_counts ? "-oi ${prefix}.ins_counts.json" : '' + """ + viral_consensus \\ + -i $bam \\ + -r $fasta \\ + -o ${prefix}.consensus.fa \\ + $primer_arg \\ + $pos_counts_arg \\ + $ins_counts_arg \\ + $args + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def touch_pos_counts = task.ext.save_pos_counts ? "touch ${prefix}.pos_counts.tsv" : '' + def touch_ins_counts = task.ext.save_ins_counts ? "touch ${prefix}.ins_counts.json" : '' + """ + touch ${prefix}.consensus.fa + $touch_pos_counts + $touch_ins_counts + """ +} diff --git a/modules/nf-core/viralconsensus/meta.yml b/modules/nf-core/viralconsensus/meta.yml new file mode 100644 index 000000000000..99ab0cb9dc99 --- /dev/null +++ b/modules/nf-core/viralconsensus/meta.yml @@ -0,0 +1,113 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "viralconsensus" +description: Fast and memory-efficient viral consensus genome sequence + generation from read alignments +keywords: + - virus + - genomics + - consensus + - bam + - fasta +tools: + - "viralconsensus": + description: "ViralConsensus is a fast and memory-efficient tool for calling viral + consensus genome sequences directly from read alignment data." + homepage: "https://github.com/niemasd/ViralConsensus" + documentation: "https://github.com/niemasd/ViralConsensus#usage" + tool_dev_url: "https://github.com/niemasd/ViralConsensus" + doi: "10.1093/bioinformatics/btad317" + licence: ["GPL-3.0-or-later"] + identifier: biotools:viralconsensus + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/SAM/CRAM file containing aligned reads + pattern: "*.{bam,sam,cram}" + ontologies: + - edam: http://edamontology.org/format_2572 + - fasta: + type: file + description: Reference genome sequence in FASTA format + pattern: "*.{fa,fasta,fna}" + ontologies: + - edam: http://edamontology.org/format_1929 + - primer_bed: + type: file + description: Optional BED file with primer coordinates for trimming + pattern: "*.bed" + ontologies: + - edam: http://edamontology.org/format_3003 + +output: + fasta: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.consensus.fa": + type: file + description: Consensus genome sequence in FASTA format + pattern: "*.consensus.fa" + ontologies: + - edam: http://edamontology.org/format_1929 + pos_counts: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.pos_counts.tsv": + type: file + description: Per-position base counts (optional, enabled via + task.ext.save_pos_counts) + pattern: "*.pos_counts.tsv" + ontologies: + - edam: http://edamontology.org/format_3475 + ins_counts: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.ins_counts.json": + type: file + description: Insertion counts (optional, enabled via + task.ext.save_ins_counts) + pattern: "*.ins_counts.json" + ontologies: + - edam: http://edamontology.org/format_3464 + versions_viralconsensus: + - - ${task.process}: + type: string + description: The name of the process + - viralconsensus: + type: string + description: The name of the tool + - "viral_consensus --version 2>&1 | head -n1 | sed 's/ViralConsensus //'": + type: eval + description: The expression to obtain the version of the tool + +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - viralconsensus: + type: string + description: The name of the tool + - "viral_consensus --version 2>&1 | head -n1 | sed 's/ViralConsensus //'": + type: eval + description: The expression to obtain the version of the tool + +authors: + - "@niemasd" +maintainers: + - "@niemasd" + - "@lucaspatel" diff --git a/modules/nf-core/viralconsensus/tests/main.nf.test b/modules/nf-core/viralconsensus/tests/main.nf.test new file mode 100644 index 000000000000..4f5a19b480d0 --- /dev/null +++ b/modules/nf-core/viralconsensus/tests/main.nf.test @@ -0,0 +1,115 @@ +nextflow_process { + + name "Test Process VIRALCONSENSUS" + script "../main.nf" + process "VIRALCONSENSUS" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "viralconsensus" + + test("sarscov2 - bam - basic") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.fasta, + process.out.versions_viralconsensus + ).match("basic") } + ) + } + } + + test("sarscov2 - bam - with primer bed") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[2] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/test.bed', checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.fasta, + process.out.versions_viralconsensus + ).match("primer") } + ) + } + } + + test("sarscov2 - bam - with optional outputs") { + + config "./nextflow_optional.config" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.fasta }, + { assert process.out.pos_counts }, + { assert process.out.ins_counts }, + { assert snapshot(process.out.versions_viralconsensus).match("optional_versions") } + ) + } + } + + test("sarscov2 - bam - stub") { + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match("stub") } + ) + } + } +} diff --git a/modules/nf-core/viralconsensus/tests/main.nf.test.snap b/modules/nf-core/viralconsensus/tests/main.nf.test.snap new file mode 100644 index 000000000000..c4c2333dd35a --- /dev/null +++ b/modules/nf-core/viralconsensus/tests/main.nf.test.snap @@ -0,0 +1,119 @@ +{ + "optional_versions": { + "content": [ + [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-13T15:28:13.237078" + }, + "primer": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.consensus.fa:md5,67220b967a5ebe4827f1ff418fd73654" + ] + ], + [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-13T15:28:02.876743" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.consensus.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ], + "fasta": [ + [ + { + "id": "test" + }, + "test.consensus.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "ins_counts": [ + + ], + "pos_counts": [ + + ], + "versions_viralconsensus": [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-13T15:27:00.993246" + }, + "basic": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.consensus.fa:md5,c1a43a011177eff31a4afa9fb8612c7b" + ] + ], + [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-13T15:27:52.452933" + } +} \ No newline at end of file diff --git a/modules/nf-core/viralconsensus/tests/nextflow.config b/modules/nf-core/viralconsensus/tests/nextflow.config new file mode 100644 index 000000000000..e221518b52da --- /dev/null +++ b/modules/nf-core/viralconsensus/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: VIRALCONSENSUS { + ext.args = '-q 20 -d 10 -f 0.5' + } +} diff --git a/modules/nf-core/viralconsensus/tests/nextflow_optional.config b/modules/nf-core/viralconsensus/tests/nextflow_optional.config new file mode 100644 index 000000000000..35913a26f371 --- /dev/null +++ b/modules/nf-core/viralconsensus/tests/nextflow_optional.config @@ -0,0 +1,7 @@ +process { + withName: VIRALCONSENSUS { + ext.args = '-q 20 -d 10 -f 0.5' + ext.save_pos_counts = true + ext.save_ins_counts = true + } +} From 21f2c121bce5a0d56bcf26dcccafcea77ef52963 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 14 Jan 2026 15:26:09 -0800 Subject: [PATCH 2/4] fix: update test snapshots for Docker compatibility --- modules/nf-core/viralconsensus/tests/main.nf.test.snap | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/viralconsensus/tests/main.nf.test.snap b/modules/nf-core/viralconsensus/tests/main.nf.test.snap index c4c2333dd35a..005c4a40bda9 100644 --- a/modules/nf-core/viralconsensus/tests/main.nf.test.snap +++ b/modules/nf-core/viralconsensus/tests/main.nf.test.snap @@ -13,7 +13,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-13T15:28:13.237078" + "timestamp": "2026-01-14T15:23:45.652845" }, "primer": { "content": [ @@ -37,7 +37,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-13T15:28:02.876743" + "timestamp": "2026-01-14T15:23:40.272776" }, "stub": { "content": [ @@ -90,7 +90,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-13T15:27:00.993246" + "timestamp": "2026-01-14T15:23:48.828319" }, "basic": { "content": [ @@ -114,6 +114,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-13T15:27:52.452933" + "timestamp": "2026-01-14T15:23:36.859097" } } \ No newline at end of file From 745fdb3934455763a998a5ac08598b3c2467e1e9 Mon Sep 17 00:00:00 2001 From: Lucas Date: Sat, 24 Jan 2026 19:43:56 -0800 Subject: [PATCH 3/4] fix: task.ext to optional inputs --- modules/nf-core/viralconsensus/main.nf | 10 ++++++---- modules/nf-core/viralconsensus/meta.yml | 12 ++++++++++-- modules/nf-core/viralconsensus/tests/main.nf.test | 8 ++++++++ .../viralconsensus/tests/nextflow_optional.config | 2 -- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/viralconsensus/main.nf b/modules/nf-core/viralconsensus/main.nf index b34420ba7cbd..e43ade1ba205 100644 --- a/modules/nf-core/viralconsensus/main.nf +++ b/modules/nf-core/viralconsensus/main.nf @@ -11,6 +11,8 @@ process VIRALCONSENSUS { tuple val(meta), path(bam) path fasta path primer_bed + val save_pos_counts + val save_ins_counts output: tuple val(meta), path("*.consensus.fa"), emit: fasta @@ -25,8 +27,8 @@ process VIRALCONSENSUS { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def primer_arg = primer_bed ? "-p ${primer_bed}" : '' - def pos_counts_arg = task.ext.save_pos_counts ? "-op ${prefix}.pos_counts.tsv" : '' - def ins_counts_arg = task.ext.save_ins_counts ? "-oi ${prefix}.ins_counts.json" : '' + def pos_counts_arg = save_pos_counts ? "-op ${prefix}.pos_counts.tsv" : '' + def ins_counts_arg = save_ins_counts ? "-oi ${prefix}.ins_counts.json" : '' """ viral_consensus \\ -i $bam \\ @@ -40,8 +42,8 @@ process VIRALCONSENSUS { stub: def prefix = task.ext.prefix ?: "${meta.id}" - def touch_pos_counts = task.ext.save_pos_counts ? "touch ${prefix}.pos_counts.tsv" : '' - def touch_ins_counts = task.ext.save_ins_counts ? "touch ${prefix}.ins_counts.json" : '' + def touch_pos_counts = save_pos_counts ? "touch ${prefix}.pos_counts.tsv" : '' + def touch_ins_counts = save_ins_counts ? "touch ${prefix}.ins_counts.json" : '' """ touch ${prefix}.consensus.fa $touch_pos_counts diff --git a/modules/nf-core/viralconsensus/meta.yml b/modules/nf-core/viralconsensus/meta.yml index 99ab0cb9dc99..092740eb7971 100644 --- a/modules/nf-core/viralconsensus/meta.yml +++ b/modules/nf-core/viralconsensus/meta.yml @@ -43,6 +43,14 @@ input: pattern: "*.bed" ontologies: - edam: http://edamontology.org/format_3003 + - save_pos_counts: + type: boolean + description: | + Save per-position counts to a TSV file + - save_ins_counts: + type: boolean + description: | + Save insertion counts to a JSON file output: fasta: @@ -66,7 +74,7 @@ output: - "*.pos_counts.tsv": type: file description: Per-position base counts (optional, enabled via - task.ext.save_pos_counts) + save_pos_counts input) pattern: "*.pos_counts.tsv" ontologies: - edam: http://edamontology.org/format_3475 @@ -79,7 +87,7 @@ output: - "*.ins_counts.json": type: file description: Insertion counts (optional, enabled via - task.ext.save_ins_counts) + save_ins_counts input) pattern: "*.ins_counts.json" ontologies: - edam: http://edamontology.org/format_3464 diff --git a/modules/nf-core/viralconsensus/tests/main.nf.test b/modules/nf-core/viralconsensus/tests/main.nf.test index 4f5a19b480d0..378052169f4c 100644 --- a/modules/nf-core/viralconsensus/tests/main.nf.test +++ b/modules/nf-core/viralconsensus/tests/main.nf.test @@ -20,6 +20,8 @@ nextflow_process { ] input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) input[2] = [] + input[3] = false + input[4] = false """ } } @@ -46,6 +48,8 @@ nextflow_process { ] input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) input[2] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/test.bed', checkIfExists: true) + input[3] = false + input[4] = false """ } } @@ -74,6 +78,8 @@ nextflow_process { ] input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) input[2] = [] + input[3] = true + input[4] = true """ } } @@ -101,6 +107,8 @@ nextflow_process { ] input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) input[2] = [] + input[3] = false + input[4] = false """ } } diff --git a/modules/nf-core/viralconsensus/tests/nextflow_optional.config b/modules/nf-core/viralconsensus/tests/nextflow_optional.config index 35913a26f371..e221518b52da 100644 --- a/modules/nf-core/viralconsensus/tests/nextflow_optional.config +++ b/modules/nf-core/viralconsensus/tests/nextflow_optional.config @@ -1,7 +1,5 @@ process { withName: VIRALCONSENSUS { ext.args = '-q 20 -d 10 -f 0.5' - ext.save_pos_counts = true - ext.save_ins_counts = true } } From 8a5fd20ea7d752eece84fdc957095bc6bd77f5b3 Mon Sep 17 00:00:00 2001 From: Lucas Date: Sat, 24 Jan 2026 19:58:17 -0800 Subject: [PATCH 4/4] fix: update configuration of ext.args in tests --- .../nf-core/viralconsensus/tests/main.nf.test | 26 ++-- .../viralconsensus/tests/main.nf.test.snap | 126 +++++++++++------- .../viralconsensus/tests/nextflow.config | 2 +- .../tests/nextflow_optional.config | 5 - 4 files changed, 94 insertions(+), 65 deletions(-) delete mode 100644 modules/nf-core/viralconsensus/tests/nextflow_optional.config diff --git a/modules/nf-core/viralconsensus/tests/main.nf.test b/modules/nf-core/viralconsensus/tests/main.nf.test index 378052169f4c..ea4a46743607 100644 --- a/modules/nf-core/viralconsensus/tests/main.nf.test +++ b/modules/nf-core/viralconsensus/tests/main.nf.test @@ -3,7 +3,6 @@ nextflow_process { name "Test Process VIRALCONSENSUS" script "../main.nf" process "VIRALCONSENSUS" - config "./nextflow.config" tag "modules" tag "modules_nfcore" @@ -31,8 +30,8 @@ nextflow_process { { assert process.success }, { assert snapshot( process.out.fasta, - process.out.versions_viralconsensus - ).match("basic") } + process.out.findAll { key, val -> key.startsWith("versions") } + ).match() } ) } } @@ -59,17 +58,20 @@ nextflow_process { { assert process.success }, { assert snapshot( process.out.fasta, - process.out.versions_viralconsensus - ).match("primer") } + process.out.findAll { key, val -> key.startsWith("versions") } + ).match() } ) } } test("sarscov2 - bam - with optional outputs") { - config "./nextflow_optional.config" + config "./nextflow.config" when { + params { + module_args = '-q 30 -d 5 -f 0.6' + } process { """ input[0] = [ @@ -87,10 +89,12 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert process.out.fasta }, - { assert process.out.pos_counts }, - { assert process.out.ins_counts }, - { assert snapshot(process.out.versions_viralconsensus).match("optional_versions") } + { assert snapshot( + process.out.fasta, + process.out.pos_counts, + process.out.ins_counts, + process.out.findAll { key, val -> key.startsWith("versions") } + ).match() } ) } } @@ -116,7 +120,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match("stub") } + { assert snapshot(process.out).match() } ) } } diff --git a/modules/nf-core/viralconsensus/tests/main.nf.test.snap b/modules/nf-core/viralconsensus/tests/main.nf.test.snap index 005c4a40bda9..a114903ecd92 100644 --- a/modules/nf-core/viralconsensus/tests/main.nf.test.snap +++ b/modules/nf-core/viralconsensus/tests/main.nf.test.snap @@ -1,45 +1,5 @@ { - "optional_versions": { - "content": [ - [ - [ - "VIRALCONSENSUS", - "viralconsensus", - "viral_consensus v1.0.0" - ] - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2026-01-14T15:23:45.652845" - }, - "primer": { - "content": [ - [ - [ - { - "id": "test" - }, - "test.consensus.fa:md5,67220b967a5ebe4827f1ff418fd73654" - ] - ], - [ - [ - "VIRALCONSENSUS", - "viralconsensus", - "viral_consensus v1.0.0" - ] - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2026-01-14T15:23:40.272776" - }, - "stub": { + "sarscov2 - bam - stub": { "content": [ { "0": [ @@ -90,9 +50,35 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-14T15:23:48.828319" + "timestamp": "2026-01-24T19:54:20.412415" }, - "basic": { + "sarscov2 - bam - with primer bed": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.consensus.fa:md5,67220b967a5ebe4827f1ff418fd73654" + ] + ], + { + "versions_viralconsensus": [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-24T19:56:36.892682" + }, + "sarscov2 - bam - basic": { "content": [ [ [ @@ -102,18 +88,62 @@ "test.consensus.fa:md5,c1a43a011177eff31a4afa9fb8612c7b" ] ], + { + "versions_viralconsensus": [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-24T19:56:33.226459" + }, + "sarscov2 - bam - with optional outputs": { + "content": [ [ [ - "VIRALCONSENSUS", - "viralconsensus", - "viral_consensus v1.0.0" + { + "id": "test" + }, + "test.consensus.fa:md5,8002717bf92a11fb4cf1bc97089063e3" ] - ] + ], + [ + [ + { + "id": "test" + }, + "test.pos_counts.tsv:md5,94284ee424c75e13761452b4a18e4ad3" + ] + ], + [ + [ + { + "id": "test" + }, + "test.ins_counts.json:md5,b144d1a3bbb6c56dfc6376a198645d57" + ] + ], + { + "versions_viralconsensus": [ + [ + "VIRALCONSENSUS", + "viralconsensus", + "viral_consensus v1.0.0" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-14T15:23:36.859097" + "timestamp": "2026-01-24T19:56:42.830597" } } \ No newline at end of file diff --git a/modules/nf-core/viralconsensus/tests/nextflow.config b/modules/nf-core/viralconsensus/tests/nextflow.config index e221518b52da..50898f37a1cf 100644 --- a/modules/nf-core/viralconsensus/tests/nextflow.config +++ b/modules/nf-core/viralconsensus/tests/nextflow.config @@ -1,5 +1,5 @@ process { withName: VIRALCONSENSUS { - ext.args = '-q 20 -d 10 -f 0.5' + ext.args = params.module_args } } diff --git a/modules/nf-core/viralconsensus/tests/nextflow_optional.config b/modules/nf-core/viralconsensus/tests/nextflow_optional.config deleted file mode 100644 index e221518b52da..000000000000 --- a/modules/nf-core/viralconsensus/tests/nextflow_optional.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - withName: VIRALCONSENSUS { - ext.args = '-q 20 -d 10 -f 0.5' - } -}