From 66588fcd100e084793b2d541194ece7fda32ff7c Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Tue, 28 Oct 2025 16:19:48 +0100 Subject: [PATCH 01/12] fix: linting error --- .../nf-core/vembrane/table/environment.yml | 7 + modules/nf-core/vembrane/table/main.nf | 49 ++++ modules/nf-core/vembrane/table/meta.yml | 63 ++++ .../nf-core/vembrane/table/tests/main.nf.test | 137 +++++++++ .../vembrane/table/tests/main.nf.test.snap | 270 ++++++++++++++++++ .../vembrane/table/tests/nextflow.config | 6 + 6 files changed, 532 insertions(+) create mode 100644 modules/nf-core/vembrane/table/environment.yml create mode 100644 modules/nf-core/vembrane/table/main.nf create mode 100644 modules/nf-core/vembrane/table/meta.yml create mode 100644 modules/nf-core/vembrane/table/tests/main.nf.test create mode 100644 modules/nf-core/vembrane/table/tests/main.nf.test.snap create mode 100644 modules/nf-core/vembrane/table/tests/nextflow.config diff --git a/modules/nf-core/vembrane/table/environment.yml b/modules/nf-core/vembrane/table/environment.yml new file mode 100644 index 00000000000..825a5fac4b7 --- /dev/null +++ b/modules/nf-core/vembrane/table/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::vembrane=2.4.0 diff --git a/modules/nf-core/vembrane/table/main.nf b/modules/nf-core/vembrane/table/main.nf new file mode 100644 index 00000000000..b7de2105c41 --- /dev/null +++ b/modules/nf-core/vembrane/table/main.nf @@ -0,0 +1,49 @@ + + +process VEMBRANE_TABLE { + 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/vembrane:2.4.0--pyhdfd78af_0': + 'biocontainers/vembrane:2.4.0--pyhdfd78af_0'}" + + input: + tuple val(meta), path(vcf) + val expression + + output: + tuple val(meta), path("*.tsv"), emit: table + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + vembrane table \\ + $args \\ + --output ${prefix}.tsv \\ + '$expression' \\ + $vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vembrane: \$(vembrane --version 2>&1 | head -n1 | sed 's/vembrane //') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vembrane: \$(vembrane --version 2>&1 | head -n1 | sed 's/vembrane //') + END_VERSIONS + """ +} diff --git a/modules/nf-core/vembrane/table/meta.yml b/modules/nf-core/vembrane/table/meta.yml new file mode 100644 index 00000000000..2743421d4d6 --- /dev/null +++ b/modules/nf-core/vembrane/table/meta.yml @@ -0,0 +1,63 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "vembrane_table" +description: Creates tabular (TSV) files from VCF/BCF data with flexible Python expressions +keywords: + - vcf + - bcf + - table + - genomics + - variant + - annotation +tools: + - "vembrane": + description: "Filter VCF/BCF files with Python expressions" + homepage: "https://vembrane.github.io/" + documentation: "https://github.com/vembrane/vembrane/blob/main/docs/table.md" + tool_dev_url: "https://github.com/vembrane/vembrane" + doi: "10.1093/bioinformatics/btac810" + licence: ["MIT"] + identifier: biotools:vembrane + args_id: "$args" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - vcf: + type: file + description: VCF/BCF file to extract tabular data from + pattern: "*.{vcf,vcf.gz,bcf,bcf.gz}" + ontologies: + - edam: http://edamontology.org/format_3016 # VCF + - expression: + type: string + description: A comma-separated tuple of expressions that define the table column contents + +output: + table: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.tsv": + type: file + description: TSV file containing tabular data from VCF/BCF + pattern: "*.tsv" + ontologies: + - edam: http://edamontology.org/format_3475 # TSV + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML +authors: +- "@mkatsanto" +- "@trangdo-hsc" +maintainers: +- "@mkatsanto" +- "@trangdo-hsc" diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test new file mode 100644 index 00000000000..8cb4ec33da0 --- /dev/null +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -0,0 +1,137 @@ + +nextflow_process { + + name "Test Process VEMBRANE_TABLE" + script "../main.nf" + process "VEMBRANE_TABLE" + + tag "modules" + tag "modules_nfcore" + tag "vembrane" + tag "vembrane/table" + + test("homo_sapiens - [vcf] - tsv") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + ] + input[1] = 'CHROM, POS, REF, ALT, QUAL' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - [bcf.gz] - tsv") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['popgen']['plink_case_control_bcf_gz'], checkIfExists: true) + ] + input[1] = 'CHROM, POS, REF, ALT, QUAL' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - [vcf] - csv - custom_separator") { + + config "./nextflow.config" + + when { + params { + vembrane_args = '--separator ,' + vembrane_prefix = 'test.csv' + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + ] + input[1] = 'CHROM, POS, REF, ALT' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - [vcf] - tsv - custom_header") { + + config "./nextflow.config" + + when { + params { + vembrane_args = '--header "Chromosome,Position,Variant_ID,Quality"' + vembrane_prefix = 'test.custom_header' + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + ] + input[1] = 'CHROM, POS, ID, QUAL' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - [vcf] - tsv - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + ] + input[1] = 'CHROM, POS, REF, ALT, QUAL' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test.snap b/modules/nf-core/vembrane/table/tests/main.nf.test.snap new file mode 100644 index 00000000000..f368bf75e9a --- /dev/null +++ b/modules/nf-core/vembrane/table/tests/main.nf.test.snap @@ -0,0 +1,270 @@ +{ + "homo_sapiens - vcf": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:02:19.949621" + }, + "homo_sapiens - [vcf] - tsv - custom_header": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.custom_header.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.custom_header.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T16:01:22.053958" + }, + "homo_sapiens - [vcf] - tsv": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:35:10.060963" + }, + "sarscov2 - [bcf] - tsv": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "table": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:29:36.091335" + }, + "homo_sapiens - [bcf.gz] - tsv": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,f0d357c993b9c0463b4564681ffffa2e" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,f0d357c993b9c0463b4564681ffffa2e" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:35:53.162346" + }, + "homo_sapiens - vcf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:02:57.900961" + }, + "homo_sapiens - [vcf] - csv - custom_separator": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.csv.tsv:md5,f8616b2040be43518e270c02aac600f6" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.csv.tsv:md5,f8616b2040be43518e270c02aac600f6" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:45:34.223565" + }, + "homo_sapiens - [vcf] - tsv - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,24635137815ac702717f1edf14621d8c" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-10-28T15:24:08.270925" + } +} \ No newline at end of file diff --git a/modules/nf-core/vembrane/table/tests/nextflow.config b/modules/nf-core/vembrane/table/tests/nextflow.config new file mode 100644 index 00000000000..9c430bae52e --- /dev/null +++ b/modules/nf-core/vembrane/table/tests/nextflow.config @@ -0,0 +1,6 @@ +process { + withName: 'VEMBRANE_TABLE' { + ext.args = params.vembrane_args ?: '' + ext.prefix = { params.vembrane_prefix ?: "${meta.id}" } + } +} From fd659e31edd54d7cdfafc2b3bb5b629415572ab6 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Tue, 28 Oct 2025 17:07:34 +0100 Subject: [PATCH 02/12] fix: add conda snapshot --- .../vembrane/table/tests/main.nf.test.snap | 93 ------------------- 1 file changed, 93 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test.snap b/modules/nf-core/vembrane/table/tests/main.nf.test.snap index f368bf75e9a..26df26170bc 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test.snap +++ b/modules/nf-core/vembrane/table/tests/main.nf.test.snap @@ -1,39 +1,4 @@ { - "homo_sapiens - vcf": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" - ] - ], - "1": [ - "versions.yml:md5,24635137815ac702717f1edf14621d8c" - ], - "table": [ - [ - { - "id": "test", - "single_end": false - }, - "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" - ] - ], - "versions": [ - "versions.yml:md5,24635137815ac702717f1edf14621d8c" - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-28T15:02:19.949621" - }, "homo_sapiens - [vcf] - tsv - custom_header": { "content": [ { @@ -104,29 +69,6 @@ }, "timestamp": "2025-10-28T15:35:10.060963" }, - "sarscov2 - [bcf] - tsv": { - "content": [ - { - "0": [ - - ], - "1": [ - - ], - "table": [ - - ], - "versions": [ - - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-28T15:29:36.091335" - }, "homo_sapiens - [bcf.gz] - tsv": { "content": [ { @@ -162,41 +104,6 @@ }, "timestamp": "2025-10-28T15:35:53.162346" }, - "homo_sapiens - vcf - stub": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - "versions.yml:md5,24635137815ac702717f1edf14621d8c" - ], - "table": [ - [ - { - "id": "test", - "single_end": false - }, - "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,24635137815ac702717f1edf14621d8c" - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-28T15:02:57.900961" - }, "homo_sapiens - [vcf] - csv - custom_separator": { "content": [ { From 28d37a0b6a231aa2bf3087d071baef7672250525 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Wed, 29 Oct 2025 09:55:24 +0100 Subject: [PATCH 03/12] fix: test path specification and removed test prefix --- modules/nf-core/vembrane/table/tests/main.nf.test | 12 +++++------- .../nf-core/vembrane/table/tests/main.nf.test.snap | 12 ++++++------ modules/nf-core/vembrane/table/tests/nextflow.config | 1 - 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index 8cb4ec33da0..6ada32e843d 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -17,7 +17,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' """ @@ -39,7 +39,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['popgen']['plink_case_control_bcf_gz'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/popgen/plink_simulated.bcf.gz', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' """ @@ -61,13 +61,12 @@ nextflow_process { when { params { vembrane_args = '--separator ,' - vembrane_prefix = 'test.csv' } process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT' """ @@ -89,13 +88,12 @@ nextflow_process { when { params { vembrane_args = '--header "Chromosome,Position,Variant_ID,Quality"' - vembrane_prefix = 'test.custom_header' } process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, ID, QUAL' """ @@ -119,7 +117,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' """ diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test.snap b/modules/nf-core/vembrane/table/tests/main.nf.test.snap index 26df26170bc..75d5ed95413 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test.snap +++ b/modules/nf-core/vembrane/table/tests/main.nf.test.snap @@ -8,7 +8,7 @@ "id": "test", "single_end": false }, - "test.custom_header.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" + "test.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" ] ], "1": [ @@ -20,7 +20,7 @@ "id": "test", "single_end": false }, - "test.custom_header.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" + "test.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" ] ], "versions": [ @@ -32,7 +32,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-28T16:01:22.053958" + "timestamp": "2025-10-29T09:52:24.816246" }, "homo_sapiens - [vcf] - tsv": { "content": [ @@ -113,7 +113,7 @@ "id": "test", "single_end": false }, - "test.csv.tsv:md5,f8616b2040be43518e270c02aac600f6" + "test.tsv:md5,f8616b2040be43518e270c02aac600f6" ] ], "1": [ @@ -125,7 +125,7 @@ "id": "test", "single_end": false }, - "test.csv.tsv:md5,f8616b2040be43518e270c02aac600f6" + "test.tsv:md5,f8616b2040be43518e270c02aac600f6" ] ], "versions": [ @@ -137,7 +137,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-28T15:45:34.223565" + "timestamp": "2025-10-29T09:53:37.401847" }, "homo_sapiens - [vcf] - tsv - stub": { "content": [ diff --git a/modules/nf-core/vembrane/table/tests/nextflow.config b/modules/nf-core/vembrane/table/tests/nextflow.config index 9c430bae52e..95dbb06496f 100644 --- a/modules/nf-core/vembrane/table/tests/nextflow.config +++ b/modules/nf-core/vembrane/table/tests/nextflow.config @@ -1,6 +1,5 @@ process { withName: 'VEMBRANE_TABLE' { ext.args = params.vembrane_args ?: '' - ext.prefix = { params.vembrane_prefix ?: "${meta.id}" } } } From 3dfa74b80d242fa1629140a2e4b15898f8d6bf23 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Wed, 29 Oct 2025 14:27:12 +0100 Subject: [PATCH 04/12] fix: add explicit version displayed --- .../nf-core/vembrane/table/tests/main.nf.test | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index 6ada32e843d..b899e6ef291 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -27,7 +27,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } @@ -49,7 +52,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } @@ -76,7 +82,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } @@ -103,7 +112,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } @@ -127,7 +139,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } From 1e91998df1e02afcc3e0bcb342494afdb3261cd6 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Wed, 29 Oct 2025 14:51:19 +0100 Subject: [PATCH 05/12] fix: revert the snapshot syntax --- .../nf-core/vembrane/table/tests/main.nf.test | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index b899e6ef291..6ada32e843d 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -27,10 +27,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() } + { assert snapshot(process.out).match() } ) } } @@ -52,10 +49,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() } + { assert snapshot(process.out).match() } ) } } @@ -82,10 +76,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() } + { assert snapshot(process.out).match() } ) } } @@ -112,10 +103,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() } + { assert snapshot(process.out).match() } ) } } @@ -139,10 +127,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match() } + { assert snapshot(process.out).match() } ) } } From e268108f65a7474cb0f9a0ec67f247999f241034 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Wed, 29 Oct 2025 15:16:55 +0100 Subject: [PATCH 06/12] fix: explicit version snapshot retry --- modules/nf-core/vembrane/table/tests/main.nf.test | 5 ++++- modules/nf-core/vembrane/table/tests/main.nf.test.snap | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index 6ada32e843d..05a0acb1f22 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -127,7 +127,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test.snap b/modules/nf-core/vembrane/table/tests/main.nf.test.snap index 75d5ed95413..82b9eb3bf88 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test.snap +++ b/modules/nf-core/vembrane/table/tests/main.nf.test.snap @@ -166,12 +166,17 @@ "versions": [ "versions.yml:md5,24635137815ac702717f1edf14621d8c" ] + }, + { + "VEMBRANE_TABLE": { + "vembrane": "2.4.0" + } } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-28T15:24:08.270925" + "timestamp": "2025-10-29T15:05:52.03881" } } \ No newline at end of file From 2dae3921efddc0c7d5a067ba2ad4f2a1c2563ef9 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Wed, 29 Oct 2025 15:41:28 +0100 Subject: [PATCH 07/12] fix: remove newline --- modules/nf-core/vembrane/table/main.nf | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/vembrane/table/main.nf b/modules/nf-core/vembrane/table/main.nf index b7de2105c41..4ea16c29667 100644 --- a/modules/nf-core/vembrane/table/main.nf +++ b/modules/nf-core/vembrane/table/main.nf @@ -1,13 +1,11 @@ - - process VEMBRANE_TABLE { - tag "$meta.id" + 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/vembrane:2.4.0--pyhdfd78af_0': - 'biocontainers/vembrane:2.4.0--pyhdfd78af_0'}" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/vembrane:2.4.0--pyhdfd78af_0' + : 'biocontainers/vembrane:2.4.0--pyhdfd78af_0'}" input: tuple val(meta), path(vcf) @@ -15,7 +13,7 @@ process VEMBRANE_TABLE { output: tuple val(meta), path("*.tsv"), emit: table - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -25,10 +23,10 @@ process VEMBRANE_TABLE { def prefix = task.ext.prefix ?: "${meta.id}" """ vembrane table \\ - $args \\ + ${args} \\ --output ${prefix}.tsv \\ - '$expression' \\ - $vcf + '${expression}' \\ + ${vcf} cat <<-END_VERSIONS > versions.yml "${task.process}": From d707a842c25db0d0818b117cfe3e4ce37c02478b Mon Sep 17 00:00:00 2001 From: Maria Katsantoni <31883096+mkatsanto@users.noreply.github.com> Date: Wed, 29 Oct 2025 16:09:01 +0100 Subject: [PATCH 08/12] Update modules/nf-core/vembrane/table/tests/main.nf.test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Famke Bäuerle <45968370+famosab@users.noreply.github.com> --- modules/nf-core/vembrane/table/tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index 05a0acb1f22..a69bf39573b 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -16,7 +16,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' From 33daff0e72cce2d2d2bb0bf6d3775073620d913c Mon Sep 17 00:00:00 2001 From: Maria Katsantoni <31883096+mkatsanto@users.noreply.github.com> Date: Wed, 29 Oct 2025 16:10:10 +0100 Subject: [PATCH 09/12] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Famke Bäuerle <45968370+famosab@users.noreply.github.com> --- modules/nf-core/vembrane/table/tests/main.nf.test | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index a69bf39573b..bfc7595e77b 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -1,4 +1,3 @@ - nextflow_process { name "Test Process VEMBRANE_TABLE" @@ -38,7 +37,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/popgen/plink_simulated.bcf.gz', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' @@ -65,7 +64,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT' @@ -92,7 +91,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, ID, QUAL' @@ -116,7 +115,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' From afcbc53ab8fc129ce7478bdfa3829b3bd8428386 Mon Sep 17 00:00:00 2001 From: Maria Katsantoni Date: Wed, 29 Oct 2025 16:52:46 +0100 Subject: [PATCH 10/12] fix: apply formatting code review changes --- .../nf-core/vembrane/table/tests/main.nf.test | 11 +++-- .../vembrane/table/tests/main.nf.test.snap | 40 +++++++------------ .../vembrane/table/tests/nextflow.config | 2 +- 3 files changed, 21 insertions(+), 32 deletions(-) diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test b/modules/nf-core/vembrane/table/tests/main.nf.test index 05a0acb1f22..bfc7595e77b 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test +++ b/modules/nf-core/vembrane/table/tests/main.nf.test @@ -1,4 +1,3 @@ - nextflow_process { name "Test Process VEMBRANE_TABLE" @@ -16,7 +15,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' @@ -38,7 +37,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/popgen/plink_simulated.bcf.gz', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' @@ -65,7 +64,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT' @@ -92,7 +91,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, ID, QUAL' @@ -116,7 +115,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf', checkIfExists: true) ] input[1] = 'CHROM, POS, REF, ALT, QUAL' diff --git a/modules/nf-core/vembrane/table/tests/main.nf.test.snap b/modules/nf-core/vembrane/table/tests/main.nf.test.snap index 82b9eb3bf88..afc04910885 100644 --- a/modules/nf-core/vembrane/table/tests/main.nf.test.snap +++ b/modules/nf-core/vembrane/table/tests/main.nf.test.snap @@ -5,8 +5,7 @@ "0": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" ] @@ -17,8 +16,7 @@ "table": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,a000109bce654d2d6f8ce132c03d27b4" ] @@ -32,7 +30,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-29T09:52:24.816246" + "timestamp": "2025-10-29T16:45:22.931526" }, "homo_sapiens - [vcf] - tsv": { "content": [ @@ -40,8 +38,7 @@ "0": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" ] @@ -52,8 +49,7 @@ "table": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,bc377c509db1bea19cb2d13b7e3b5480" ] @@ -67,7 +63,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-28T15:35:10.060963" + "timestamp": "2025-10-29T16:44:33.392488" }, "homo_sapiens - [bcf.gz] - tsv": { "content": [ @@ -75,8 +71,7 @@ "0": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,f0d357c993b9c0463b4564681ffffa2e" ] @@ -87,8 +82,7 @@ "table": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,f0d357c993b9c0463b4564681ffffa2e" ] @@ -102,7 +96,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-28T15:35:53.162346" + "timestamp": "2025-10-29T16:44:48.817287" }, "homo_sapiens - [vcf] - csv - custom_separator": { "content": [ @@ -110,8 +104,7 @@ "0": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,f8616b2040be43518e270c02aac600f6" ] @@ -122,8 +115,7 @@ "table": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,f8616b2040be43518e270c02aac600f6" ] @@ -137,7 +129,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-29T09:53:37.401847" + "timestamp": "2025-10-29T16:45:03.973682" }, "homo_sapiens - [vcf] - tsv - stub": { "content": [ @@ -145,8 +137,7 @@ "0": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -157,8 +148,7 @@ "table": [ [ { - "id": "test", - "single_end": false + "id": "test" }, "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -177,6 +167,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-29T15:05:52.03881" + "timestamp": "2025-10-29T16:45:36.132566" } } \ No newline at end of file diff --git a/modules/nf-core/vembrane/table/tests/nextflow.config b/modules/nf-core/vembrane/table/tests/nextflow.config index 95dbb06496f..77acb7b7741 100644 --- a/modules/nf-core/vembrane/table/tests/nextflow.config +++ b/modules/nf-core/vembrane/table/tests/nextflow.config @@ -2,4 +2,4 @@ process { withName: 'VEMBRANE_TABLE' { ext.args = params.vembrane_args ?: '' } -} +} \ No newline at end of file From 0589efd4577854d66b0e58e2ec4b494388a063e7 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Sat, 1 Nov 2025 12:13:53 +0000 Subject: [PATCH 11/12] Update modules/nf-core/vembrane/table/main.nf --- modules/nf-core/vembrane/table/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/vembrane/table/main.nf b/modules/nf-core/vembrane/table/main.nf index 4ea16c29667..96eaf89bf52 100644 --- a/modules/nf-core/vembrane/table/main.nf +++ b/modules/nf-core/vembrane/table/main.nf @@ -30,7 +30,7 @@ process VEMBRANE_TABLE { cat <<-END_VERSIONS > versions.yml "${task.process}": - vembrane: \$(vembrane --version 2>&1 | head -n1 | sed 's/vembrane //') + vembrane: \$(vembrane --version | sed '1!d;s/.* //') END_VERSIONS """ From 06fe195a60dd81c95f481afebe9baece007360ec Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Sat, 1 Nov 2025 13:02:33 +0000 Subject: [PATCH 12/12] Update modules/nf-core/vembrane/table/main.nf --- modules/nf-core/vembrane/table/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/vembrane/table/main.nf b/modules/nf-core/vembrane/table/main.nf index 96eaf89bf52..243ce472b36 100644 --- a/modules/nf-core/vembrane/table/main.nf +++ b/modules/nf-core/vembrane/table/main.nf @@ -41,7 +41,7 @@ process VEMBRANE_TABLE { cat <<-END_VERSIONS > versions.yml "${task.process}": - vembrane: \$(vembrane --version 2>&1 | head -n1 | sed 's/vembrane //') + vembrane: \$(vembrane --version | sed '1!d;s/.* //') END_VERSIONS """ }