From b089ec6984bff8c33ae8931e71f6dadf21886318 Mon Sep 17 00:00:00 2001 From: manascripts Date: Tue, 5 May 2026 11:24:00 +0200 Subject: [PATCH 1/7] Add octopusv/merge module --- .../nf-core/octopusv/merge/environment.yml | 7 ++ modules/nf-core/octopusv/merge/main.nf | 39 ++++++++++ modules/nf-core/octopusv/merge/meta.yml | 72 +++++++++++++++++++ .../nf-core/octopusv/merge/tests/main.nf.test | 69 ++++++++++++++++++ 4 files changed, 187 insertions(+) create mode 100644 modules/nf-core/octopusv/merge/environment.yml create mode 100644 modules/nf-core/octopusv/merge/main.nf create mode 100644 modules/nf-core/octopusv/merge/meta.yml create mode 100644 modules/nf-core/octopusv/merge/tests/main.nf.test diff --git a/modules/nf-core/octopusv/merge/environment.yml b/modules/nf-core/octopusv/merge/environment.yml new file mode 100644 index 00000000000..583655a9621 --- /dev/null +++ b/modules/nf-core/octopusv/merge/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::octopusv=0.3.2" diff --git a/modules/nf-core/octopusv/merge/main.nf b/modules/nf-core/octopusv/merge/main.nf new file mode 100644 index 00000000000..e15778dba7c --- /dev/null +++ b/modules/nf-core/octopusv/merge/main.nf @@ -0,0 +1,39 @@ +process OCTOPUSV_MERGE { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/octopusv:0.3.2--pyhdfd78af_0' : + 'quay.io/biocontainers/octopusv:0.3.2--pyhdfd78af_0' }" + + input: + tuple val(meta), path(svcfs) + + output: + tuple val(meta), path("*.svcf"), emit: svcf + tuple val("${task.process}"), val('octopusv'), eval("octopusv --version"), topic: versions, emit: versions_octopusv + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + octopusv merge -i ${svcfs.join(' ')} \\ + -o ${prefix}.svcf \\ + ${args} + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """" + echo $args + + touch ${prefix}.svcf + """ +} diff --git a/modules/nf-core/octopusv/merge/meta.yml b/modules/nf-core/octopusv/merge/meta.yml new file mode 100644 index 00000000000..c9f2c8254e2 --- /dev/null +++ b/modules/nf-core/octopusv/merge/meta.yml @@ -0,0 +1,72 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +# # TODO nf-core: Add a description of the module and list keywords +name: "octopusv_merge" +description: "Merge and harmonize structural variant calls from multiple samples." +keywords: + - structural variants + - merge + - genomics + - svcf +tools: + - "octopusv": + description: "End-to-end structural variant post-processing: standardize, merge, compare, and export SVs." + homepage: "https://github.com/ylab-hi/OctopuSV" + documentation: "https://github.com/ylab-hi/OctopuSV" + tool_dev_url: "https://github.com/ylab-hi/octopusV" + doi: "10.1093/bioinformatics/btaf599" + licence: ["MIT"] + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - svcf: + type: file + description: Sorted SVCF file + pattern: "*.svcf" + ontologies: + - edam: "https://github.com/ylab-hi/OctopuSV/blob/main/docs/SVCF_specifications.md" # SVCF + +output: + svcf: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.svcf": + type: file + description: Sorted SVCF file + pattern: "*.svcf" + ontologies: + - edam: "https://github.com/ylab-hi/OctopuSV/blob/main/docs/SVCF_specifications.md" # SVCF + + versions_octopusv: + - - "${task.process}": + type: string + description: The name of the process + - "octopusv": + type: string + description: The name of the tool + - "octopusv --version": + type: eval + description: The expression to obtain the version of the tool + +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - octopusv: + type: string + description: The name of the tool + - octopusv --version: + type: eval + description: The expression to obtain the version of the tool +authors: + - "@manascripts" +maintainers: + - "@manascripts" diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test b/modules/nf-core/octopusv/merge/tests/main.nf.test new file mode 100644 index 00000000000..6bc01568690 --- /dev/null +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test @@ -0,0 +1,69 @@ +// TODO nf-core: Once you have added the required tests, please run the following command to build this file: +// nf-core modules test octopusv/merge +nextflow_process { + + name "Test Process OCTOPUSV_MERGE" + script "../main.nf" + process "OCTOPUSV_MERGE" + + tag "modules" + tag "modules_nfcore" + tag "octopusv" + tag "octopusv/merge" + + test("homo_sapiens - svcf list") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + [ + file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller1.svcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller2.svcf', checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.svcf.get(0).get(1)).name, + process.out.findAll { key, val -> key.startsWith('versions') } + ).match() } + ) + } + + } + + test("homo_sapiens - svcf list - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/sv/octopusv/merge/caller1.svcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/sv/octopusv/merge/caller2.svcf', checkIfExists: true) + ] + ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot(sanitizeOutput(process.out)).match() } + ) + } + + } + +} From db90b8c4dc7943c71e7d51c7cc2742c9f29a2383 Mon Sep 17 00:00:00 2001 From: manascripts Date: Tue, 5 May 2026 11:29:42 +0200 Subject: [PATCH 2/7] test-data path fix --- modules/nf-core/octopusv/merge/tests/main.nf.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test b/modules/nf-core/octopusv/merge/tests/main.nf.test index 6bc01568690..2ca89cbbb45 100644 --- a/modules/nf-core/octopusv/merge/tests/main.nf.test +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test @@ -49,8 +49,8 @@ nextflow_process { input[0] = [ [ id:'test' ], [ - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/sv/octopusv/merge/caller1.svcf', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/sv/octopusv/merge/caller2.svcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller1.svcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller2.svcf', checkIfExists: true) ] ] """ From a859458783a5f1500c7c17b90aecfa1212816988 Mon Sep 17 00:00:00 2001 From: manascripts Date: Mon, 11 May 2026 10:22:22 +0200 Subject: [PATCH 3/7] fix versioning --- modules/nf-core/octopusv/merge/main.nf | 2 +- modules/nf-core/octopusv/merge/meta.yml | 17 ++++++++--------- .../nf-core/octopusv/merge/tests/main.nf.test | 4 +--- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/modules/nf-core/octopusv/merge/main.nf b/modules/nf-core/octopusv/merge/main.nf index e15778dba7c..00e85e2729d 100644 --- a/modules/nf-core/octopusv/merge/main.nf +++ b/modules/nf-core/octopusv/merge/main.nf @@ -12,7 +12,7 @@ process OCTOPUSV_MERGE { output: tuple val(meta), path("*.svcf"), emit: svcf - tuple val("${task.process}"), val('octopusv'), eval("octopusv --version"), topic: versions, emit: versions_octopusv + tuple val("${task.process}"), val('octopusv'), eval("python -c \"import importlib.metadata as m; print(m.version('octopusv'))\""), emit: versions_octopusv, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/octopusv/merge/meta.yml b/modules/nf-core/octopusv/merge/meta.yml index c9f2c8254e2..fbba479fbad 100644 --- a/modules/nf-core/octopusv/merge/meta.yml +++ b/modules/nf-core/octopusv/merge/meta.yml @@ -25,10 +25,10 @@ input: e.g. `[ id:'sample1' ]` - svcf: type: file - description: Sorted SVCF file + description: Sorted VCF file pattern: "*.svcf" ontologies: - - edam: "https://github.com/ylab-hi/OctopuSV/blob/main/docs/SVCF_specifications.md" # SVCF + - edam: "http://edamontology.org/format_3016" # VCF output: svcf: @@ -39,22 +39,21 @@ output: e.g. `[ id:'sample1' ]` - "*.svcf": type: file - description: Sorted SVCF file + description: Sorted VCF file pattern: "*.svcf" ontologies: - - edam: "https://github.com/ylab-hi/OctopuSV/blob/main/docs/SVCF_specifications.md" # SVCF + - edam: "http://edamontology.org/format_3016" # VCF versions_octopusv: - - - "${task.process}": + - - ${task.process}: type: string description: The name of the process - - "octopusv": + - octopusv: type: string description: The name of the tool - - "octopusv --version": + - python -c "import importlib.metadata as m; print(m.version('octopusv'))": type: eval description: The expression to obtain the version of the tool - topics: versions: - - ${task.process}: @@ -63,7 +62,7 @@ topics: - octopusv: type: string description: The name of the tool - - octopusv --version: + - python -c "import importlib.metadata as m; print(m.version('octopusv'))": type: eval description: The expression to obtain the version of the tool authors: diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test b/modules/nf-core/octopusv/merge/tests/main.nf.test index 2ca89cbbb45..c2ccb2e1eb8 100644 --- a/modules/nf-core/octopusv/merge/tests/main.nf.test +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test @@ -1,5 +1,3 @@ -// TODO nf-core: Once you have added the required tests, please run the following command to build this file: -// nf-core modules test octopusv/merge nextflow_process { name "Test Process OCTOPUSV_MERGE" @@ -31,7 +29,7 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - file(process.out.svcf.get(0).get(1)).name, + path(process.out.svcf.get(0).get(1)).vcf.summary, process.out.findAll { key, val -> key.startsWith('versions') } ).match() } ) From 17e6b19dc38302ffd63e1ff3097c4b3c6d61deb9 Mon Sep 17 00:00:00 2001 From: manascripts Date: Tue, 12 May 2026 15:03:15 +0200 Subject: [PATCH 4/7] add test data and update default merging logic --- modules/nf-core/octopusv/merge/main.nf | 21 ++++++-- modules/nf-core/octopusv/merge/meta.yml | 20 ++++---- .../nf-core/octopusv/merge/tests/main.nf.test | 9 ++-- .../octopusv/merge/tests/main.nf.test.snap | 48 +++++++++++++++++++ 4 files changed, 80 insertions(+), 18 deletions(-) create mode 100644 modules/nf-core/octopusv/merge/tests/main.nf.test.snap diff --git a/modules/nf-core/octopusv/merge/main.nf b/modules/nf-core/octopusv/merge/main.nf index 00e85e2729d..9249ec2e867 100644 --- a/modules/nf-core/octopusv/merge/main.nf +++ b/modules/nf-core/octopusv/merge/main.nf @@ -18,9 +18,24 @@ process OCTOPUSV_MERGE { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = (task.ext.args ?: '').trim() def prefix = task.ext.prefix ?: "${meta.id}" + def strategy_flags = [ + '--union', '--intersect', '--specific', + '--min-support', '--exact-support', '--max-support', '--expression' + ] + + def explicit_flags = strategy_flags.findAll { args.tokenize().contains(it) } + if (explicit_flags.size() > 1) { + error("OCTOPUSV_MERGE: multiple merge strategies specified: ${explicit_flags.join(', ')}") + } + + def default_strategy = task.ext.merge_strategy ?: '--union' + if (explicit_flags.isEmpty()) { + args = "${default_strategy} ${args}".trim() + } + """ octopusv merge -i ${svcfs.join(' ')} \\ -o ${prefix}.svcf \\ @@ -28,10 +43,10 @@ process OCTOPUSV_MERGE { """ stub: - def args = task.ext.args ?: '' + def args = (task.ext.args ?: '').trim() def prefix = task.ext.prefix ?: "${meta.id}" - """" + """ echo $args touch ${prefix}.svcf diff --git a/modules/nf-core/octopusv/merge/meta.yml b/modules/nf-core/octopusv/merge/meta.yml index fbba479fbad..1721b8136b8 100644 --- a/modules/nf-core/octopusv/merge/meta.yml +++ b/modules/nf-core/octopusv/merge/meta.yml @@ -1,5 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -# # TODO nf-core: Add a description of the module and list keywords name: "octopusv_merge" description: "Merge and harmonize structural variant calls from multiple samples." keywords: @@ -9,27 +7,28 @@ keywords: - svcf tools: - "octopusv": - description: "End-to-end structural variant post-processing: standardize, merge, compare, and export SVs." + description: "End-to-end structural variant post-processing: standardize, merge, + compare, and export SVs." homepage: "https://github.com/ylab-hi/OctopuSV" documentation: "https://github.com/ylab-hi/OctopuSV" tool_dev_url: "https://github.com/ylab-hi/octopusV" doi: "10.1093/bioinformatics/btaf599" - licence: ["MIT"] + licence: + - "MIT" identifier: "" - input: - - meta: type: map description: | Groovy Map containing sample information e.g. `[ id:'sample1' ]` - - svcf: + - svcfs: type: file - description: Sorted VCF file + description: List of SVCF files to merge pattern: "*.svcf" ontologies: - - edam: "http://edamontology.org/format_3016" # VCF - + - edam: "http://edamontology.org/format_3016" + - edam: "http://edamontology.org/format_3615" output: svcf: - - meta: @@ -42,8 +41,7 @@ output: description: Sorted VCF file pattern: "*.svcf" ontologies: - - edam: "http://edamontology.org/format_3016" # VCF - + - edam: "http://edamontology.org/format_3016" versions_octopusv: - - ${task.process}: type: string diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test b/modules/nf-core/octopusv/merge/tests/main.nf.test index c2ccb2e1eb8..6a49498ea8f 100644 --- a/modules/nf-core/octopusv/merge/tests/main.nf.test +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test @@ -17,8 +17,8 @@ nextflow_process { input[0] = [ [ id:'test' ], [ - file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller1.svcf', checkIfExists: true), - file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller2.svcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/octopusv/sk-n-as-sniffles-ont.svcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/octopusv/sk-n-as-severus-ont.svcf', checkIfExists: true) ] ] """ @@ -30,6 +30,7 @@ nextflow_process { { assert process.success }, { assert snapshot( path(process.out.svcf.get(0).get(1)).vcf.summary, + path(process.out.svcf.get(0).get(1)).vcf.variantsMD5, process.out.findAll { key, val -> key.startsWith('versions') } ).match() } ) @@ -47,8 +48,8 @@ nextflow_process { input[0] = [ [ id:'test' ], [ - file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller1.svcf', checkIfExists: true), - file(params.modules_testdata_base_path + 'delete_me/octopusv/merge/caller2.svcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/octopusv/sk-n-as-sniffles-ont.svcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/octopusv/sk-n-as-severus-ont.svcf', checkIfExists: true) ] ] """ diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap new file mode 100644 index 00000000000..9ecd18173fe --- /dev/null +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap @@ -0,0 +1,48 @@ +{ + "homo_sapiens - svcf list - stub": { + "content": [ + { + "svcf": [ + [ + { + "id": "test" + }, + "test.svcf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions_octopusv": [ + [ + "OCTOPUSV_MERGE", + "octopusv", + "0.3.2" + ] + ] + } + ], + "timestamp": "2026-05-12T15:01:53.694998174", + "meta": { + "nf-test": "0.9.5", + "nextflow": "25.10.4" + } + }, + "homo_sapiens - svcf list": { + "content": [ + "VcfFile [chromosomes=[chr9, chr16_KI270728v1_random, chr7, chr8, chr8_KI270816v1_alt, chrUn_KI270757v1, chr5, chr17_KI270907v1_alt, chr6, chr3, chr21, chr11, chr22, chr4, chr2_KI270772v1_alt, chr1, chr12, chr15_ML143371v1_fix, chr14, chr8_KI270901v1_alt, chr16, chr17, chr7_KI270805v1_alt], sampleCount=1, variantCount=62, phased=false, phasedAutodetect=false]", + "df8a9f0a3e5b517ec23ffd6ee75fd4a0", + { + "versions_octopusv": [ + [ + "OCTOPUSV_MERGE", + "octopusv", + "0.3.2" + ] + ] + } + ], + "timestamp": "2026-05-12T15:01:44.802177046", + "meta": { + "nf-test": "0.9.5", + "nextflow": "25.10.4" + } + } +} \ No newline at end of file From 601e45597b63dcd5bacc85ddfff755f38a79b535 Mon Sep 17 00:00:00 2001 From: manascripts Date: Tue, 12 May 2026 15:39:56 +0200 Subject: [PATCH 5/7] update merge flag --- modules/nf-core/octopusv/merge/main.nf | 3 +-- modules/nf-core/octopusv/merge/tests/main.nf.test.snap | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/octopusv/merge/main.nf b/modules/nf-core/octopusv/merge/main.nf index 9249ec2e867..29926000051 100644 --- a/modules/nf-core/octopusv/merge/main.nf +++ b/modules/nf-core/octopusv/merge/main.nf @@ -31,9 +31,8 @@ process OCTOPUSV_MERGE { error("OCTOPUSV_MERGE: multiple merge strategies specified: ${explicit_flags.join(', ')}") } - def default_strategy = task.ext.merge_strategy ?: '--union' if (explicit_flags.isEmpty()) { - args = "${default_strategy} ${args}".trim() + args = "--union ${args}".trim() } """ diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap index 9ecd18173fe..7aad1874112 100644 --- a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] } ], - "timestamp": "2026-05-12T15:01:53.694998174", + "timestamp": "2026-05-12T15:37:05.706384471", "meta": { "nf-test": "0.9.5", "nextflow": "25.10.4" @@ -39,7 +39,7 @@ ] } ], - "timestamp": "2026-05-12T15:01:44.802177046", + "timestamp": "2026-05-12T15:36:57.591463848", "meta": { "nf-test": "0.9.5", "nextflow": "25.10.4" From 877cc95f4c62d52f73d588b3308bf0fa5483bae0 Mon Sep 17 00:00:00 2001 From: manascripts Date: Tue, 12 May 2026 16:45:36 +0200 Subject: [PATCH 6/7] update tests --- modules/nf-core/octopusv/merge/tests/main.nf.test.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap index 7aad1874112..e0c41b72f00 100644 --- a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] } ], - "timestamp": "2026-05-12T15:37:05.706384471", + "timestamp": "2026-05-12T16:45:16.948062283", "meta": { "nf-test": "0.9.5", "nextflow": "25.10.4" @@ -39,7 +39,7 @@ ] } ], - "timestamp": "2026-05-12T15:36:57.591463848", + "timestamp": "2026-05-12T16:45:08.207667648", "meta": { "nf-test": "0.9.5", "nextflow": "25.10.4" From f83dbf8d81163c771a77151fc62c864e4c6db1c3 Mon Sep 17 00:00:00 2001 From: manascripts Date: Wed, 13 May 2026 14:05:14 +0200 Subject: [PATCH 7/7] nextflow lint fixes + test update --- modules/nf-core/octopusv/merge/main.nf | 19 ++++++++----------- .../octopusv/merge/tests/main.nf.test.snap | 4 ++-- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/modules/nf-core/octopusv/merge/main.nf b/modules/nf-core/octopusv/merge/main.nf index 29926000051..8874a653e31 100644 --- a/modules/nf-core/octopusv/merge/main.nf +++ b/modules/nf-core/octopusv/merge/main.nf @@ -1,18 +1,18 @@ process OCTOPUSV_MERGE { - tag "$meta.id" + tag "${meta.id}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/octopusv:0.3.2--pyhdfd78af_0' : - 'quay.io/biocontainers/octopusv:0.3.2--pyhdfd78af_0' }" + container "${workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/octopusv:0.3.2--pyhdfd78af_0' + : 'quay.io/biocontainers/octopusv:0.3.2--pyhdfd78af_0'}" input: tuple val(meta), path(svcfs) output: tuple val(meta), path("*.svcf"), emit: svcf - tuple val("${task.process}"), val('octopusv'), eval("python -c \"import importlib.metadata as m; print(m.version('octopusv'))\""), emit: versions_octopusv, topic: versions + tuple val("${task.process}"), val('octopusv'), eval("python -c \"import importlib.metadata as m; print(m.version('octopusv'))\""), emit: versions_octopusv, topic: versions when: task.ext.when == null || task.ext.when @@ -21,12 +21,9 @@ process OCTOPUSV_MERGE { def args = (task.ext.args ?: '').trim() def prefix = task.ext.prefix ?: "${meta.id}" - def strategy_flags = [ - '--union', '--intersect', '--specific', - '--min-support', '--exact-support', '--max-support', '--expression' - ] + def strategy_flags = ['--union', '--intersect', '--specific', '--min-support', '--exact-support', '--max-support', '--expression'] - def explicit_flags = strategy_flags.findAll { args.tokenize().contains(it) } + def explicit_flags = strategy_flags.findAll { flag -> args.tokenize().contains(flag) } if (explicit_flags.size() > 1) { error("OCTOPUSV_MERGE: multiple merge strategies specified: ${explicit_flags.join(', ')}") } @@ -46,7 +43,7 @@ process OCTOPUSV_MERGE { def prefix = task.ext.prefix ?: "${meta.id}" """ - echo $args + echo ${args} touch ${prefix}.svcf """ diff --git a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap index e0c41b72f00..737dd6ec002 100644 --- a/modules/nf-core/octopusv/merge/tests/main.nf.test.snap +++ b/modules/nf-core/octopusv/merge/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] } ], - "timestamp": "2026-05-12T16:45:16.948062283", + "timestamp": "2026-05-13T14:02:15.365401997", "meta": { "nf-test": "0.9.5", "nextflow": "25.10.4" @@ -39,7 +39,7 @@ ] } ], - "timestamp": "2026-05-12T16:45:08.207667648", + "timestamp": "2026-05-13T14:04:02.989592821", "meta": { "nf-test": "0.9.5", "nextflow": "25.10.4"