From cc1141aee1478a4450dbd3120c6f5575dbea325a Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Tue, 16 Dec 2025 15:43:57 -0500 Subject: [PATCH 01/41] feat: updated fastANI module to include proper reference and query file staging, added task.cpus to thread arg, created process stub, added optional tool outputs, and formatted input channels --- modules/nf-core/fastani/main.nf | 72 ++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 29 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index f6284538f9da..e9710b18bee0 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -9,11 +9,15 @@ process FASTANI { input: tuple val(meta), path(query) - path reference + tuple val(meta2), path(reference) + path ql + path rl output: - tuple val(meta), path("*.ani.txt"), emit: ani - path "versions.yml" , emit: versions + tuple val(meta), path("*.txt") , emit: ani + tuple val(meta), path("*.visual") , optional:true, emit: visual + tuple val(meta), path("*.matrix") , optional:true, emit: matrix + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -21,30 +25,40 @@ process FASTANI { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def prefix2 = task.ext.prefix2 ?: "${meta2.id}" + def input_query = query ? "-q ${query}": "--ql ${ql}" + def input_reference = reference ? "-r ${reference}": "--rl ${rl}" + def out = query ?: ( reference ? "-o ${prefix}_v_${prefix2}": "-o ${prefix}_v_all"): ( reference ? "-o all_v_${prefix2}": "-o all_v_all" ) - if (meta.batch_input) { - """ - fastANI \\ - -ql $query \\ - -rl $reference \\ - -o ${prefix}.ani.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastani: \$(fastANI --version 2>&1 | sed 's/version//;') - END_VERSIONS - """ - } else { - """ - fastANI \\ - -q $query \\ - -r $reference \\ - -o ${prefix}.ani.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastani: \$(fastANI --version 2>&1 | sed 's/version//;') - END_VERSIONS - """ - } -} + """ + fastANI \\ + $input_query \\ + $input_reference \\ + --threads $task.cpus \\ + $out + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastani: \$(fastANI --version 2>&1 | sed 's/version//;') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def prefix2 = task.ext.prefix2 ?: "${meta2.id}" + def input_query = query ? "-q ${query}": "--ql ${ql}" + def input_reference = reference ? "-r ${reference}": "--rl ${rl}" + def out = query ?: ( reference ? "-o ${prefix}_v_${prefix2}": "-o ${prefix}_v_all"): ( reference ? "-o all_v_${prefix2}": "-o all_v_all" ) + + """ + touch ${out}.visual + touch ${out}.txt + touch ${out}.matrix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastani: \$(fastANI --version 2>&1 | sed 's/version//;') + END_VERSIONS + """ +} \ No newline at end of file From 8d54dba43dae0a634e34504f951d5806a33bd6ea Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 13:47:03 -0500 Subject: [PATCH 02/41] refactor: modified input/output options for fastANI and added stub test --- modules/nf-core/fastani/main.nf | 39 ++--- modules/nf-core/fastani/tests/main.nf.test | 40 ++++- .../nf-core/fastani/tests/main.nf.test.snap | 149 ++++++++++++++++++ modules/nf-core/fastani/tests/nextflow.config | 5 + 4 files changed, 208 insertions(+), 25 deletions(-) create mode 100644 modules/nf-core/fastani/tests/nextflow.config diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index e9710b18bee0..18e8ca3ec1c1 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -8,34 +8,33 @@ process FASTANI { 'biocontainers/fastani:1.32--he1c1bb9_0' }" input: - tuple val(meta), path(query) + tuple val(meta), path(query) tuple val(meta2), path(reference) - path ql - path rl + path(ql) + path(rl) output: - tuple val(meta), path("*.txt") , emit: ani - tuple val(meta), path("*.visual") , optional:true, emit: visual - tuple val(meta), path("*.matrix") , optional:true, emit: matrix + tuple val(meta), path("*.txt") , emit: ani + tuple val(meta), path("*.visual") , optional:true , emit: visual + tuple val(meta), path("*.matrix") , optional:true , emit: matrix 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}" - def prefix2 = task.ext.prefix2 ?: "${meta2.id}" - def input_query = query ? "-q ${query}": "--ql ${ql}" + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: ( meta.id ?: 'all') + def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') + def input_query = query ? "-q ${query}": "--ql ${ql}" def input_reference = reference ? "-r ${reference}": "--rl ${rl}" - def out = query ?: ( reference ? "-o ${prefix}_v_${prefix2}": "-o ${prefix}_v_all"): ( reference ? "-o all_v_${prefix2}": "-o all_v_all" ) - + """ fastANI \\ $input_query \\ $input_reference \\ --threads $task.cpus \\ - $out + -o ${prefix}_v_${prefix2}.txt cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -44,17 +43,13 @@ process FASTANI { """ stub: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def prefix2 = task.ext.prefix2 ?: "${meta2.id}" - def input_query = query ? "-q ${query}": "--ql ${ql}" - def input_reference = reference ? "-r ${reference}": "--rl ${rl}" - def out = query ?: ( reference ? "-o ${prefix}_v_${prefix2}": "-o ${prefix}_v_all"): ( reference ? "-o all_v_${prefix2}": "-o all_v_all" ) + def prefix = task.ext.prefix ?: ( meta.id ?: 'all') + def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') """ - touch ${out}.visual - touch ${out}.txt - touch ${out}.matrix + touch ${prefix}_v_${prefix2}.visual + touch ${prefix}_v_${prefix2}.txt + touch ${prefix}_v_${prefix2}.matrix cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index a4318db49ee3..b2f67e55513a 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -7,7 +7,7 @@ nextflow_process { script "../main.nf" process "FASTANI" - test("FastANI") { + test("fastani - 1v1") { when { process { @@ -16,7 +16,41 @@ nextflow_process { [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] - input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true) + input[1] = [ + [ id:'test2' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true) + ] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[1] = [ + [ id:'test2' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true) + ] + input[2] = [] + input[3] = [] """ } } @@ -30,4 +64,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index dbb02572949e..62ebcf259dd8 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -1,4 +1,49 @@ { + "fastani - 1v1": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test_v_test2.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + ], + "ani": [ + [ + { + "id": "test" + }, + "test_v_test2.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + ] + ], + "matrix": [ + + ], + "versions": [ + "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + ], + "visual": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.1" + }, + "timestamp": "2025-12-17T13:46:06.970355559" + }, "FastANI": { "content": [ { @@ -26,6 +71,110 @@ ] } ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.1" + }, "timestamp": "2023-10-18T12:02:08.983912093" + }, + "fastani - updates - fasta - fasta": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "ani": [ + + ], + "matrix": [ + + ], + "versions": [ + + ], + "visual": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.1" + }, + "timestamp": "2025-12-17T13:04:20.452047779" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test_v_test2.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test_v_test2.visual:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test" + }, + "test_v_test2.matrix:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + ], + "ani": [ + [ + { + "id": "test" + }, + "test_v_test2.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "matrix": [ + [ + { + "id": "test" + }, + "test_v_test2.matrix:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + ], + "visual": [ + [ + { + "id": "test" + }, + "test_v_test2.visual:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.1" + }, + "timestamp": "2025-12-17T13:46:15.662109587" } } \ No newline at end of file diff --git a/modules/nf-core/fastani/tests/nextflow.config b/modules/nf-core/fastani/tests/nextflow.config new file mode 100644 index 000000000000..ad8804bdb64a --- /dev/null +++ b/modules/nf-core/fastani/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: FASTANI { + ext.args = "--matrix" + } +} From fd58eb351b4208507ba45ccad55212ebd64de0c3 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 13:52:41 -0500 Subject: [PATCH 03/41] chore: updated meta.yml --- modules/nf-core/fastani/meta.yml | 62 ++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 1b52160b136a..fb9b70deb26c 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -1,55 +1,73 @@ name: fastani -description: Alignment-free computation of average nucleotide Identity (ANI) +description: Alignment-free computation of Average Nucleotide Identity (ANI) keywords: - genome - fasta - ANI + tools: - fastani: - description: FastANI is developed for fast alignment-free computation of whole-genome - Average Nucleotide Identity (ANI). + description: FastANI is developed for fast alignment-free computation of whole-genome Average Nucleotide Identity (ANI). homepage: https://github.com/ParBLiSS/FastANI documentation: https://github.com/ParBLiSS/FastANI tool_dev_url: https://github.com/ParBLiSS/FastANI doi: 10.1038/s41467-018-07641-9 licence: ["Apache-2.0"] identifier: biotools:fastani + input: - - meta: type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + description: Groovy Map containing sample information for the query - query: type: file - description: Fasta file(s) to be queried + description: Fasta file to be used as the query pattern: "*.fasta" - ontologies: [] - - reference: + - - meta2: + type: map + description: Groovy Map containing sample information for the reference + - reference: + type: file + description: Fasta file to be used as the reference + pattern: "*.fasta" + - ql: + type: file + description: File containing a list of query fasta paths + pattern: "*.txt" + - rl: type: file - description: Fasta file(s) to be used as reference for the query - pattern: "*.fasta" - ontologies: [] + description: File containing a list of reference fasta paths + pattern: "*.txt" + output: ani: - - meta: type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - "*.ani.txt": + - "*.txt": type: file - description: Results of the query - pattern: "*.ani.txt" - ontologies: [] + description: ANI results file + pattern: "*.txt" + visual: + - "*.visual": + type: file + optional: true + description: FastANI visualization output + matrix: + - "*.matrix": + type: file + optional: true + description: ANI matrix output versions: - versions.yml: type: file - description: File containing software versions + description: File containing software version information pattern: "versions.yml" ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - edam: http://edamontology.org/format_3750 + authors: + - "@Ethan-Hetrick" - "@abhi18av" maintainers: - - "@abhi18av" + - "@Ethan-Hetrick" + - "@abhi18av" \ No newline at end of file From ae6a3c14514f329e5e9b3085ae1c7c42ea5fbee2 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 14:20:31 -0500 Subject: [PATCH 04/41] fix: corrected meta.yml --- modules/nf-core/fastani/meta.yml | 35 +++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index fb9b70deb26c..5ab3cc5a4475 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -17,8 +17,10 @@ tools: input: - - meta: - type: map - description: Groovy Map containing sample information for the query + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - query: type: file description: Fasta file to be used as the query @@ -43,20 +45,33 @@ output: ani: - - meta: type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - "*.txt": type: file description: ANI results file pattern: "*.txt" visual: - - "*.visual": - type: file - optional: true - description: FastANI visualization output + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - "*.visual": + type: file + optional: true + description: FastANI visualization output matrix: - - "*.matrix": - type: file - optional: true - description: ANI matrix output + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - "*.matrix": + type: file + optional: true + description: ANI matrix output versions: - versions.yml: type: file From 07024b8cb24d3c0f6197fe0eb26202484c04f113 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 14:50:15 -0500 Subject: [PATCH 05/41] fix: corrected file formats --- modules/nf-core/fastani/main.nf | 2 +- modules/nf-core/fastani/meta.yml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 18e8ca3ec1c1..f33cbbc1d5bb 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -56,4 +56,4 @@ process FASTANI { fastani: \$(fastANI --version 2>&1 | sed 's/version//;') END_VERSIONS """ -} \ No newline at end of file +} diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 5ab3cc5a4475..b706814f994f 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -4,7 +4,6 @@ keywords: - genome - fasta - ANI - tools: - fastani: description: FastANI is developed for fast alignment-free computation of whole-genome Average Nucleotide Identity (ANI). @@ -14,7 +13,6 @@ tools: doi: 10.1038/s41467-018-07641-9 licence: ["Apache-2.0"] identifier: biotools:fastani - input: - - meta: type: map @@ -40,7 +38,6 @@ input: type: file description: File containing a list of reference fasta paths pattern: "*.txt" - output: ani: - - meta: @@ -79,7 +76,6 @@ output: pattern: "versions.yml" ontologies: - edam: http://edamontology.org/format_3750 - authors: - "@Ethan-Hetrick" - "@abhi18av" From b454c82b09738bfea953bd4d2d62712e93fac07e Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 15:00:42 -0500 Subject: [PATCH 06/41] fix: added newline --- modules/nf-core/fastani/main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index f33cbbc1d5bb..93291f8466dd 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -57,3 +57,4 @@ process FASTANI { END_VERSIONS """ } + From c0979e174a827544919cdce040e1dc3a5d743297 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 15:13:41 -0500 Subject: [PATCH 07/41] fix: attempt 2 at fixing whitespaces --- modules/nf-core/fastani/main.nf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 93291f8466dd..fbc8142bea3b 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -28,14 +28,13 @@ process FASTANI { def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') def input_query = query ? "-q ${query}": "--ql ${ql}" def input_reference = reference ? "-r ${reference}": "--rl ${rl}" - """ fastANI \\ $input_query \\ $input_reference \\ --threads $task.cpus \\ -o ${prefix}_v_${prefix2}.txt - + cat <<-END_VERSIONS > versions.yml "${task.process}": fastani: \$(fastANI --version 2>&1 | sed 's/version//;') @@ -45,7 +44,6 @@ process FASTANI { stub: def prefix = task.ext.prefix ?: ( meta.id ?: 'all') def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') - """ touch ${prefix}_v_${prefix2}.visual touch ${prefix}_v_${prefix2}.txt From 49bbc990e8a61566f2c7e1c13576aece8efab1fc Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 15:20:55 -0500 Subject: [PATCH 08/41] fix: attempt 3 at fixing whitespaces --- modules/nf-core/fastani/main.nf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index fbc8142bea3b..eba7fa7575c7 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -34,7 +34,7 @@ process FASTANI { $input_reference \\ --threads $task.cpus \\ -o ${prefix}_v_${prefix2}.txt - + cat <<-END_VERSIONS > versions.yml "${task.process}": fastani: \$(fastANI --version 2>&1 | sed 's/version//;') @@ -55,4 +55,3 @@ process FASTANI { END_VERSIONS """ } - From 41624465e47afd2a08880f42d0e0745cb1f965fe Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 17 Dec 2025 15:57:44 -0500 Subject: [PATCH 09/41] fix: formatting --- modules/nf-core/fastani/meta.yml | 10 +++++----- modules/nf-core/fastani/tests/main.nf.test | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index b706814f994f..1dcb2ee823a4 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -15,10 +15,10 @@ tools: identifier: biotools:fastani input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test' ] + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - query: type: file description: Fasta file to be used as the query @@ -81,4 +81,4 @@ authors: - "@abhi18av" maintainers: - "@Ethan-Hetrick" - - "@abhi18av" \ No newline at end of file + - "@abhi18av" diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index b2f67e55513a..252283540d5e 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -64,4 +64,4 @@ nextflow_process { } -} \ No newline at end of file +} From 03ceb91366a0d0b2796f3aca8d408035fcaff85a Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:23:55 -0500 Subject: [PATCH 10/41] Update modules/nf-core/fastani/meta.yml Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/meta.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 1dcb2ee823a4..53ba5b495bce 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -77,8 +77,8 @@ output: ontologies: - edam: http://edamontology.org/format_3750 authors: - - "@Ethan-Hetrick" - "@abhi18av" -maintainers: - "@Ethan-Hetrick" +maintainers: - "@abhi18av" + - "@Ethan-Hetrick" From 1b184c3815e23c5dee57810496b7b441d30818f2 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:24:34 -0500 Subject: [PATCH 11/41] Update modules/nf-core/fastani/tests/main.nf.test Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/tests/main.nf.test | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index 252283540d5e..7d9415f4366e 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -6,7 +6,10 @@ nextflow_process { tag "fastani" script "../main.nf" process "FASTANI" - + config "./nextflow.config" + tag "modules" + tag "modules_nfcore" + tag "fastani" test("fastani - 1v1") { when { From b2f8b6658c01b8e02144c101628e9f20958f1bee Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:24:46 -0500 Subject: [PATCH 12/41] Update modules/nf-core/fastani/main.nf Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index eba7fa7575c7..4323eb176f2b 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -33,7 +33,7 @@ process FASTANI { $input_query \\ $input_reference \\ --threads $task.cpus \\ - -o ${prefix}_v_${prefix2}.txt + -o ${prefix}.txt cat <<-END_VERSIONS > versions.yml "${task.process}": From cd935a6347954e9f4c904ea74c37ed64d379b43a Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:25:44 -0500 Subject: [PATCH 13/41] Update modules/nf-core/fastani/main.nf Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 4323eb176f2b..b9f168f456ee 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -24,7 +24,7 @@ process FASTANI { script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: ( meta.id ?: 'all') + def prefix = task.ext.prefix ?: "${meta.id}" def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') def input_query = query ? "-q ${query}": "--ql ${ql}" def input_reference = reference ? "-r ${reference}": "--rl ${rl}" From bd45cca163ce94fab176a8b2d7ba11607b9177de Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Tue, 23 Dec 2025 13:42:58 -0500 Subject: [PATCH 14/41] reverted changes to prefixes to properly accommodate a multi-way comparison --- modules/nf-core/fastani/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index b9f168f456ee..a2e7f4ea72e1 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -24,8 +24,8 @@ process FASTANI { script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') + def prefix = task.ext.prefix ?: ( meta.id ?: 'all' ) + def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all' ) def input_query = query ? "-q ${query}": "--ql ${ql}" def input_reference = reference ? "-r ${reference}": "--rl ${rl}" """ From b60c343c8b46c1aaf8bbaea48efd135f723be7c6 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Tue, 23 Dec 2025 13:49:48 -0500 Subject: [PATCH 15/41] Renamed test to be more descriptive --- modules/nf-core/fastani/tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index 7d9415f4366e..41cb6dbe60bd 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -10,7 +10,7 @@ nextflow_process { tag "modules" tag "modules_nfcore" tag "fastani" - test("fastani - 1v1") { + test("sarscov2 - referece vs contigs - fastANI") { when { process { From fe4727687e3fed73429608a3b2612ed98a338114 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Tue, 23 Dec 2025 14:02:37 -0500 Subject: [PATCH 16/41] Fixed whitespaces --- modules/nf-core/fastani/meta.yml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 53ba5b495bce..a0f73d9f2b0a 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -22,22 +22,30 @@ input: - query: type: file description: Fasta file to be used as the query - pattern: "*.fasta" + pattern: "*.{fasta,fna,fa}" + ontologies: + - edam: http://edamontology.org/format_1929 # FASTA - - meta2: type: map description: Groovy Map containing sample information for the reference - reference: type: file description: Fasta file to be used as the reference - pattern: "*.fasta" + pattern: "*.{fasta,fna,fa}" + ontologies: + - edam: http://edamontology.org/format_1929 # FASTA - ql: type: file description: File containing a list of query fasta paths pattern: "*.txt" + ontologies: + - edam: "http://edamontology.org/format_2330" # TXT - rl: type: file description: File containing a list of reference fasta paths pattern: "*.txt" + ontologies: + - edam: "http://edamontology.org/format_2330" # TXT output: ani: - - meta: @@ -49,6 +57,8 @@ output: type: file description: ANI results file pattern: "*.txt" + ontologies: + - edam: "http://edamontology.org/format_2330" # TXT visual: - - meta: type: map @@ -59,6 +69,9 @@ output: type: file optional: true description: FastANI visualization output + pattern: "*.visual" + ontologies: + - edam: "http://edamontology.org/format_3475" # TSV matrix: - - meta: type: map @@ -69,13 +82,16 @@ output: type: file optional: true description: ANI matrix output + ontologies: + - edam: "http://edamontology.org/format_3033" # MATRIX + versions: - versions.yml: type: file description: File containing software version information pattern: "versions.yml" ontologies: - - edam: http://edamontology.org/format_3750 + - edam: http://edamontology.org/format_3750 # YAML authors: - "@abhi18av" - "@Ethan-Hetrick" From b064fed343f5036577bd667825d1ac57b780107d Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Tue, 23 Dec 2025 14:17:48 -0500 Subject: [PATCH 17/41] ran nf-test --- .../nf-core/fastani/tests/main.nf.test.snap | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index 62ebcf259dd8..ed2dcb6b2968 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -176,5 +176,50 @@ "nextflow": "25.10.1" }, "timestamp": "2025-12-17T13:46:15.662109587" + }, + "sarscov2 - referece vs contigs - fastANI": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + ], + "ani": [ + [ + { + "id": "test" + }, + "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + ] + ], + "matrix": [ + + ], + "versions": [ + "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + ], + "visual": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.1" + }, + "timestamp": "2025-12-23T14:17:10.557521793" } } \ No newline at end of file From 979d31f2d36ac0d6f971df35a01a85f6f8361dbb Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 15:20:01 -0500 Subject: [PATCH 18/41] refactor: updated how tool version was output --- modules/nf-core/fastani/main.nf | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index a2e7f4ea72e1..e1cdf3347b63 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -17,7 +17,7 @@ process FASTANI { tuple val(meta), path("*.txt") , emit: ani tuple val(meta), path("*.visual") , optional:true , emit: visual tuple val(meta), path("*.matrix") , optional:true , emit: matrix - path "versions.yml" , emit: versions + tuple val("${task.process}"), val("fastani"), eval('fastANI --version'), topic: versions, emit: versions_fastani when: task.ext.when == null || task.ext.when @@ -34,11 +34,6 @@ process FASTANI { $input_reference \\ --threads $task.cpus \\ -o ${prefix}.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastani: \$(fastANI --version 2>&1 | sed 's/version//;') - END_VERSIONS """ stub: From 2c8c45119722a3b5215a994cb2bd9c62c811fb48 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Wed, 14 Jan 2026 15:23:57 -0500 Subject: [PATCH 19/41] Update modules/nf-core/fastani/main.nf Modified outputs to be named based on first prefix Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/main.nf | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index e1cdf3347b63..ffcb92610961 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -38,11 +38,10 @@ process FASTANI { stub: def prefix = task.ext.prefix ?: ( meta.id ?: 'all') - def prefix2 = task.ext.prefix2 ?: ( meta2.id ?: 'all') """ - touch ${prefix}_v_${prefix2}.visual - touch ${prefix}_v_${prefix2}.txt - touch ${prefix}_v_${prefix2}.matrix + touch ${prefix}.visual + touch ${prefix}.txt + touch ${prefix}.matrix cat <<-END_VERSIONS > versions.yml "${task.process}": From d9f49226a8476b24aab967b17f625f457e7d6251 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 15:25:38 -0500 Subject: [PATCH 20/41] fix: removed redundant tags in nf test script --- modules/nf-core/fastani/tests/main.nf.test | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index 41cb6dbe60bd..da7dddf1f210 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -7,9 +7,6 @@ nextflow_process { script "../main.nf" process "FASTANI" config "./nextflow.config" - tag "modules" - tag "modules_nfcore" - tag "fastani" test("sarscov2 - referece vs contigs - fastANI") { when { From c1fb69aa0fd296dfb1aa79d661003b66fa111436 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 15:35:13 -0500 Subject: [PATCH 21/41] refactor: added new version syntax to stub as well --- modules/nf-core/fastani/main.nf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index ffcb92610961..56d43e0089c7 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -38,14 +38,10 @@ process FASTANI { stub: def prefix = task.ext.prefix ?: ( meta.id ?: 'all') + tuple val("${task.process}"), val("fastani"), eval('fastANI --version'), topic: versions, emit: versions_fastani """ touch ${prefix}.visual touch ${prefix}.txt touch ${prefix}.matrix - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastani: \$(fastANI --version 2>&1 | sed 's/version//;') - END_VERSIONS """ } From 7df07cd3b57ed9f1f71cf79325d6589b474d36e3 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 15:37:34 -0500 Subject: [PATCH 22/41] fix: fixed snapshot to capture new version syntax --- modules/nf-core/fastani/tests/main.nf.test | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index da7dddf1f210..7bbbc584819b 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -27,9 +27,11 @@ nextflow_process { } then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + assertAll ( + { assert snapshot( + process.out.ani, + process.out.findAll { key, val -> key.startsWith("versions")} + ).match() } ) } } @@ -56,9 +58,13 @@ nextflow_process { } then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + assertAll ( + { assert snapshot( + process.out.ani, + process.out.visual, + process.out.matrix, + process.out.findAll { key, val -> key.startsWith("versions")} + ).match() } ) } From 75801b99341a2d68bfebadbf410840ea2fa1b5ae Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 16:42:05 -0500 Subject: [PATCH 23/41] feature: added all v all mode test --- modules/nf-core/fastani/main.nf | 1 - modules/nf-core/fastani/tests/main.nf.test | 50 +++++- .../nf-core/fastani/tests/main.nf.test.snap | 155 +++++++++++++----- 3 files changed, 154 insertions(+), 52 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 56d43e0089c7..94b69c43cbfd 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -38,7 +38,6 @@ process FASTANI { stub: def prefix = task.ext.prefix ?: ( meta.id ?: 'all') - tuple val("${task.process}"), val("fastani"), eval('fastANI --version'), topic: versions, emit: versions_fastani """ touch ${prefix}.visual touch ${prefix}.txt diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index 7bbbc584819b..afc266dcc42c 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -7,7 +7,7 @@ nextflow_process { script "../main.nf" process "FASTANI" config "./nextflow.config" - test("sarscov2 - referece vs contigs - fastANI") { + test("sarscov2 - referece vs contigs - fastANI - 1 v 1 mode") { when { process { @@ -36,6 +36,47 @@ nextflow_process { } } + test("sarscov2 - referece vs contigs - fastANI - all vs all mode") { + + when { + process { + """ + def q_src = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + def r_src = file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true) + + // stage into the nf-test execution directory + def q_stage = new File(workDir.toString(), 'query.fasta') + def r_stage = new File(workDir.toString(), 'ref.fasta') + + // Ensures files are staged locally + q_stage.bytes = q_src.bytes + r_stage.bytes = r_src.bytes + + // create ql/rl list files + def ql_file = new File(workDir.toString(), 'query.list') + def rl_file = new File(workDir.toString(), 'reference.list') + + ql_file.text = q_stage.getAbsolutePath() + System.lineSeparator() + rl_file.text = r_stage.getAbsolutePath() + System.lineSeparator() + + input[0] = [ [], [] ] + input[1] = [ [], [] ] + input[2] = file( ql_file.getAbsolutePath(), checkIfExists: true ) + input[3] = file( rl_file.getAbsolutePath(), checkIfExists: true ) + """ + } + } + + then { + assertAll( + { assert snapshot( + process.out.ani, + process.out.findAll { key, val -> key.startsWith("versions") } + ).match() } + ) + } + } + test("stub") { options '-stub' @@ -59,12 +100,7 @@ nextflow_process { then { assertAll ( - { assert snapshot( - process.out.ani, - process.out.visual, - process.out.matrix, - process.out.findAll { key, val -> key.startsWith("versions")} - ).match() } + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index ed2dcb6b2968..a8afde4ef90f 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -77,6 +77,58 @@ }, "timestamp": "2023-10-18T12:02:08.983912093" }, + "all vs all": { + "content": [ + [ + [ + [ + + ], + "all.txt:md5,c61ee10de3f2392ca02974c1b6536e77" + ] + ], + { + "versions_fastani": [ + [ + "FASTANI", + "fastani", + "" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-14T16:28:57.910154362" + }, + "sarscov2 - referece vs contigs - fastANI - 1 v 1 mode": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + ] + ], + { + "versions_fastani": [ + [ + "FASTANI", + "fastani", + "" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-14T16:41:18.165298623" + }, "fastani - updates - fasta - fasta": { "content": [ { @@ -112,6 +164,32 @@ }, "timestamp": "2025-12-17T13:04:20.452047779" }, + "sarscov2 - referece vs contigs - fastANI - all vs all mode": { + "content": [ + [ + [ + [ + + ], + "all.txt:md5,579bc0b0bb446422bf32b70ace54406e" + ] + ], + { + "versions_fastani": [ + [ + "FASTANI", + "fastani", + "" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.2" + }, + "timestamp": "2026-01-14T16:41:28.292554801" + }, "stub": { "content": [ { @@ -120,7 +198,7 @@ { "id": "test" }, - "test_v_test2.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ @@ -128,7 +206,7 @@ { "id": "test" }, - "test_v_test2.visual:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.visual:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "2": [ @@ -136,18 +214,22 @@ { "id": "test" }, - "test_v_test2.matrix:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.matrix:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "3": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + [ + "FASTANI", + "fastani", + "" + ] ], "ani": [ [ { "id": "test" }, - "test_v_test2.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "matrix": [ @@ -155,71 +237,56 @@ { "id": "test" }, - "test_v_test2.matrix:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.matrix:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" + "versions_fastani": [ + [ + "FASTANI", + "fastani", + "" + ] ], "visual": [ [ { "id": "test" }, - "test_v_test2.visual:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.visual:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] } ], "meta": { "nf-test": "0.9.3", - "nextflow": "25.10.1" + "nextflow": "25.10.2" }, - "timestamp": "2025-12-17T13:46:15.662109587" + "timestamp": "2026-01-14T16:39:38.8147991" }, "sarscov2 - referece vs contigs - fastANI": { "content": [ + [ + [ + { + "id": "test" + }, + "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + ] + ], { - "0": [ - [ - { - "id": "test" - }, - "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" - ], - "ani": [ + "versions_fastani": [ [ - { - "id": "test" - }, - "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" + "FASTANI", + "fastani", + "" ] - ], - "matrix": [ - - ], - "versions": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" - ], - "visual": [ - ] } ], "meta": { "nf-test": "0.9.3", - "nextflow": "25.10.1" + "nextflow": "25.10.2" }, - "timestamp": "2025-12-23T14:17:10.557521793" + "timestamp": "2026-01-14T15:39:54.132926413" } } \ No newline at end of file From 8c8f5fa62a5ee2773159cb48bca0f8d37331e3bf Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 16:47:52 -0500 Subject: [PATCH 24/41] chore: updated meta.yml to clarify input priority --- modules/nf-core/fastani/meta.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index a0f73d9f2b0a..7b69c1b02ab2 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -21,7 +21,7 @@ input: e.g. [ id:'test' ] - query: type: file - description: Fasta file to be used as the query + description: Fasta file to be used as the query. If provided, ql will be ignored. pattern: "*.{fasta,fna,fa}" ontologies: - edam: http://edamontology.org/format_1929 # FASTA @@ -30,19 +30,19 @@ input: description: Groovy Map containing sample information for the reference - reference: type: file - description: Fasta file to be used as the reference + description: Fasta file to be used as the reference. If provided, rl will be ignored. pattern: "*.{fasta,fna,fa}" ontologies: - edam: http://edamontology.org/format_1929 # FASTA - ql: type: file - description: File containing a list of query fasta paths + description: File containing a list of query fasta paths. query input takes precedence over this list if both are provided. pattern: "*.txt" ontologies: - edam: "http://edamontology.org/format_2330" # TXT - rl: type: file - description: File containing a list of reference fasta paths + description: File containing a list of reference fasta paths. reference input takes precedence over this list if both are provided. pattern: "*.txt" ontologies: - edam: "http://edamontology.org/format_2330" # TXT From 523e1dd3158248dc59ff24193dd7eb6bc7905cf4 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 16:50:04 -0500 Subject: [PATCH 25/41] chore: fixed whitespaces --- modules/nf-core/fastani/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 94b69c43cbfd..195ad496470b 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -14,9 +14,9 @@ process FASTANI { path(rl) output: - tuple val(meta), path("*.txt") , emit: ani - tuple val(meta), path("*.visual") , optional:true , emit: visual - tuple val(meta), path("*.matrix") , optional:true , emit: matrix + tuple val(meta), path("*.txt") , emit: ani + tuple val(meta), path("*.visual"), optional:true , emit: visual + tuple val(meta), path("*.matrix"), optional:true , emit: matrix tuple val("${task.process}"), val("fastani"), eval('fastANI --version'), topic: versions, emit: versions_fastani when: From 9d1c320be74a1f8d652359444c0db1d2d10a8775 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 16:50:36 -0500 Subject: [PATCH 26/41] chore: fixed whitespaces --- modules/nf-core/fastani/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 195ad496470b..5bc5066400d1 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -15,8 +15,8 @@ process FASTANI { output: tuple val(meta), path("*.txt") , emit: ani - tuple val(meta), path("*.visual"), optional:true , emit: visual - tuple val(meta), path("*.matrix"), optional:true , emit: matrix + tuple val(meta), path("*.visual"), optional:true, emit: visual + tuple val(meta), path("*.matrix"), optional:true, emit: matrix tuple val("${task.process}"), val("fastani"), eval('fastANI --version'), topic: versions, emit: versions_fastani when: From 1c042d6be6adda32c33b3386d757b104288e584f Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Wed, 14 Jan 2026 17:14:23 -0500 Subject: [PATCH 27/41] fix: addressed nf-core lint errors and updated fastani version --- modules/nf-core/fastani/environment.yml | 2 +- modules/nf-core/fastani/main.nf | 4 ++-- modules/nf-core/fastani/meta.yml | 18 ++++++++++-------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/modules/nf-core/fastani/environment.yml b/modules/nf-core/fastani/environment.yml index 25c0180f0496..5fd0c120c257 100644 --- a/modules/nf-core/fastani/environment.yml +++ b/modules/nf-core/fastani/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::fastani=1.32 + - bioconda::fastani=1.34 diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 5bc5066400d1..e56ddc5053b9 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -4,8 +4,8 @@ process FASTANI { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastani:1.32--he1c1bb9_0' : - 'biocontainers/fastani:1.32--he1c1bb9_0' }" + 'https://depot.galaxyproject.org/singularity/fastani:1.34--hb66fcc3_7' : + 'biocontainers/fastani:1.34--hb66fcc3_7' }" input: tuple val(meta), path(query) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 7b69c1b02ab2..feb0e7657662 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -84,14 +84,16 @@ output: description: ANI matrix output ontologies: - edam: "http://edamontology.org/format_3033" # MATRIX - - versions: - - versions.yml: - type: file - description: File containing software version information - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + versions_fastani: + - - ${task.process}: + type: string + description: The name of the process + - fastani: + type: string + description: The name of the tool + - fastANI --version: + type: eval + description: The expression to obtain the version of the tool authors: - "@abhi18av" - "@Ethan-Hetrick" From e28e09ab82e93dbe8b65580a5bf0d595110283db Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Thu, 12 Feb 2026 17:20:02 -0500 Subject: [PATCH 28/41] Update modules/nf-core/fastani/tests/main.nf.test Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/tests/main.nf.test | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index afc266dcc42c..ced2ad40b778 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -5,7 +5,12 @@ nextflow_process { tag "modules" tag "fastani" script "../main.nf" - process "FASTANI" +name "Test Process FASTANI" +tag "modules_nfcore" +tag "modules" +tag "fastani" +script "../main.nf" +process "FASTANI" config "./nextflow.config" test("sarscov2 - referece vs contigs - fastANI - 1 v 1 mode") { From 349844ef879e80b9226782e3fa8f5344b36a4a83 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Thu, 12 Feb 2026 17:55:46 -0500 Subject: [PATCH 29/41] fix: removed accidental commit --- modules/nf-core/fastani/main.nf | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 8353dc143090..e56ddc5053b9 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -43,31 +43,4 @@ process FASTANI { touch ${prefix}.txt touch ${prefix}.matrix """ - def prefix = task.ext.prefix ?: "${meta.id}" - - if (meta.batch_input) { - """ - fastANI \\ - -ql $query \\ - -rl $reference \\ - -o ${prefix}.ani.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastani: \$(fastANI --version 2>&1 | sed 's/version//;') - END_VERSIONS - """ - } else { - """ - fastANI \\ - -q $query \\ - -r $reference \\ - -o ${prefix}.ani.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastani: \$(fastANI --version 2>&1 | sed 's/version//;') - END_VERSIONS - """ - } } From d9023c5f5972c33f437aebb6b238b24c1f776c24 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Thu, 12 Feb 2026 18:09:07 -0500 Subject: [PATCH 30/41] fix: corrected improper version capture --- modules/nf-core/fastani/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index e56ddc5053b9..a689c31c8d19 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -17,7 +17,7 @@ process FASTANI { tuple val(meta), path("*.txt") , emit: ani tuple val(meta), path("*.visual"), optional:true, emit: visual tuple val(meta), path("*.matrix"), optional:true, emit: matrix - tuple val("${task.process}"), val("fastani"), eval('fastANI --version'), topic: versions, emit: versions_fastani + tuple val("${task.process}"), val("fastani"), eval('fastANI --version 2>&1 | head -1 | sed "s/version\ //"'), topic: versions, emit: versions_fastani when: task.ext.when == null || task.ext.when From 43d6ed31a154e1aeb6587a6011c97aa046935361 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Thu, 12 Feb 2026 18:22:48 -0500 Subject: [PATCH 31/41] chore: update snapshot --- modules/nf-core/fastani/main.nf | 2 +- modules/nf-core/fastani/meta.yml | 45 +++++++++++++------ .../nf-core/fastani/tests/main.nf.test.snap | 14 +++--- 3 files changed, 39 insertions(+), 22 deletions(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index a689c31c8d19..9f4ca7279e9a 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -17,7 +17,7 @@ process FASTANI { tuple val(meta), path("*.txt") , emit: ani tuple val(meta), path("*.visual"), optional:true, emit: visual tuple val(meta), path("*.matrix"), optional:true, emit: matrix - tuple val("${task.process}"), val("fastani"), eval('fastANI --version 2>&1 | head -1 | sed "s/version\ //"'), topic: versions, emit: versions_fastani + tuple val("${task.process}"), val("fastani"), eval('fastANI --version 2>&1 | head -1 | sed "s/version\\ //"'), topic: versions, emit: versions_fastani when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index feb0e7657662..fe57b0588684 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -6,12 +6,14 @@ keywords: - ANI tools: - fastani: - description: FastANI is developed for fast alignment-free computation of whole-genome Average Nucleotide Identity (ANI). + description: FastANI is developed for fast alignment-free computation of + whole-genome Average Nucleotide Identity (ANI). homepage: https://github.com/ParBLiSS/FastANI documentation: https://github.com/ParBLiSS/FastANI tool_dev_url: https://github.com/ParBLiSS/FastANI doi: 10.1038/s41467-018-07641-9 - licence: ["Apache-2.0"] + licence: + - "Apache-2.0" identifier: biotools:fastani input: - - meta: @@ -21,31 +23,35 @@ input: e.g. [ id:'test' ] - query: type: file - description: Fasta file to be used as the query. If provided, ql will be ignored. + description: Fasta file to be used as the query. If provided, ql will be + ignored. pattern: "*.{fasta,fna,fa}" ontologies: - - edam: http://edamontology.org/format_1929 # FASTA + - edam: http://edamontology.org/format_1929 - - meta2: type: map description: Groovy Map containing sample information for the reference - reference: type: file - description: Fasta file to be used as the reference. If provided, rl will be ignored. + description: Fasta file to be used as the reference. If provided, rl will + be ignored. pattern: "*.{fasta,fna,fa}" ontologies: - - edam: http://edamontology.org/format_1929 # FASTA + - edam: http://edamontology.org/format_1929 - ql: type: file - description: File containing a list of query fasta paths. query input takes precedence over this list if both are provided. + description: File containing a list of query fasta paths. query input takes + precedence over this list if both are provided. pattern: "*.txt" ontologies: - - edam: "http://edamontology.org/format_2330" # TXT + - edam: "http://edamontology.org/format_2330" - rl: type: file - description: File containing a list of reference fasta paths. reference input takes precedence over this list if both are provided. + description: File containing a list of reference fasta paths. reference + input takes precedence over this list if both are provided. pattern: "*.txt" ontologies: - - edam: "http://edamontology.org/format_2330" # TXT + - edam: "http://edamontology.org/format_2330" output: ani: - - meta: @@ -58,7 +64,7 @@ output: description: ANI results file pattern: "*.txt" ontologies: - - edam: "http://edamontology.org/format_2330" # TXT + - edam: "http://edamontology.org/format_2330" visual: - - meta: type: map @@ -71,7 +77,7 @@ output: description: FastANI visualization output pattern: "*.visual" ontologies: - - edam: "http://edamontology.org/format_3475" # TSV + - edam: "http://edamontology.org/format_3475" matrix: - - meta: type: map @@ -83,7 +89,7 @@ output: optional: true description: ANI matrix output ontologies: - - edam: "http://edamontology.org/format_3033" # MATRIX + - edam: "http://edamontology.org/format_3033" versions_fastani: - - ${task.process}: type: string @@ -91,7 +97,18 @@ output: - fastani: type: string description: The name of the tool - - fastANI --version: + - fastANI --version 2>&1 | head -1 | sed "s/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 + - fastani: + type: string + description: The name of the tool + - fastANI --version 2>&1 | head -1 | sed "s/version\ //": type: eval description: The expression to obtain the version of the tool authors: diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index a8afde4ef90f..6beec3b7aa50 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -118,7 +118,7 @@ [ "FASTANI", "fastani", - "" + "1.34" ] ] } @@ -127,7 +127,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-14T16:41:18.165298623" + "timestamp": "2026-02-12T18:20:14.95813302" }, "fastani - updates - fasta - fasta": { "content": [ @@ -179,7 +179,7 @@ [ "FASTANI", "fastani", - "" + "1.34" ] ] } @@ -188,7 +188,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-14T16:41:28.292554801" + "timestamp": "2026-02-12T18:20:23.079816301" }, "stub": { "content": [ @@ -221,7 +221,7 @@ [ "FASTANI", "fastani", - "" + "1.34" ] ], "ani": [ @@ -244,7 +244,7 @@ [ "FASTANI", "fastani", - "" + "1.34" ] ], "visual": [ @@ -261,7 +261,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-14T16:39:38.8147991" + "timestamp": "2026-02-12T18:20:31.13425659" }, "sarscov2 - referece vs contigs - fastANI": { "content": [ From fe9795cd2d14136490c532c5155213b372b7b5e3 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Thu, 12 Feb 2026 18:39:42 -0500 Subject: [PATCH 32/41] feature: made it to where query and reference lists contain both genomes --- modules/nf-core/fastani/tests/main.nf.test | 9 +++++++-- modules/nf-core/fastani/tests/main.nf.test.snap | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index ced2ad40b778..003f1c4bd134 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -61,8 +61,13 @@ process "FASTANI" def ql_file = new File(workDir.toString(), 'query.list') def rl_file = new File(workDir.toString(), 'reference.list') - ql_file.text = q_stage.getAbsolutePath() + System.lineSeparator() - rl_file.text = r_stage.getAbsolutePath() + System.lineSeparator() + ql_file.text = + q_stage.getAbsolutePath() + System.lineSeparator() + + r_stage.getAbsolutePath() + System.lineSeparator() + + rl_file.text = + q_stage.getAbsolutePath() + System.lineSeparator() + + r_stage.getAbsolutePath() + System.lineSeparator() input[0] = [ [], [] ] input[1] = [ [], [] ] diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index 6beec3b7aa50..eb721bfeeee8 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -171,7 +171,7 @@ [ ], - "all.txt:md5,579bc0b0bb446422bf32b70ace54406e" + "all.txt:md5,616c232d14c8f9ad3cda307154fa895e" ] ], { @@ -188,7 +188,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-02-12T18:20:23.079816301" + "timestamp": "2026-02-12T18:34:43.814618838" }, "stub": { "content": [ From 2b4f0d03aec7f843221ae8044b1f138833d804d1 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:13:58 -0500 Subject: [PATCH 33/41] Update modules/nf-core/fastani/meta.yml Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index fe57b0588684..bd05d51bf14d 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -77,7 +77,7 @@ output: description: FastANI visualization output pattern: "*.visual" ontologies: - - edam: "http://edamontology.org/format_3475" + - edam: "http://edamontology.org/format_3475" # TSV matrix: - - meta: type: map From 8d4e36f1bc3decb2816370d4f4119bf742326e93 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:14:52 -0500 Subject: [PATCH 34/41] Update modules/nf-core/fastani/meta.yml Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index bd05d51bf14d..ac1814e885a0 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -27,7 +27,7 @@ input: ignored. pattern: "*.{fasta,fna,fa}" ontologies: - - edam: http://edamontology.org/format_1929 + - edam: http://edamontology.org/format_1929 # FASTA - - meta2: type: map description: Groovy Map containing sample information for the reference From f37e8bbdad0fe9ff072d8df5b09e3286367fd0e8 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:15:02 -0500 Subject: [PATCH 35/41] Update modules/nf-core/fastani/meta.yml Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index ac1814e885a0..304e141fd53b 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -51,7 +51,7 @@ input: input takes precedence over this list if both are provided. pattern: "*.txt" ontologies: - - edam: "http://edamontology.org/format_2330" + - edam: "http://edamontology.org/format_2330" # Textual format output: ani: - - meta: From 08c9c2643e128fe2c620a1aae7d836f5826c5a41 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:25:29 -0500 Subject: [PATCH 36/41] Update modules/nf-core/fastani/main.nf Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/main.nf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/main.nf b/modules/nf-core/fastani/main.nf index 9f4ca7279e9a..defe360892c2 100644 --- a/modules/nf-core/fastani/main.nf +++ b/modules/nf-core/fastani/main.nf @@ -37,8 +37,11 @@ process FASTANI { """ stub: - def prefix = task.ext.prefix ?: ( meta.id ?: 'all') + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: ( meta.id ?: 'all') """ + echo $args + touch ${prefix}.visual touch ${prefix}.txt touch ${prefix}.matrix From 3945985ffe315bdb77ab88b68b1a36d69be3c428 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:25:38 -0500 Subject: [PATCH 37/41] Update modules/nf-core/fastani/meta.yml Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 304e141fd53b..643b8aa60213 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -64,7 +64,7 @@ output: description: ANI results file pattern: "*.txt" ontologies: - - edam: "http://edamontology.org/format_2330" + - edam: "http://edamontology.org/format_2330" # Textual format visual: - - meta: type: map From c762a360c560de7767cbc59699df98300af85de9 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick <99049240+Ethan-Hetrick@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:25:54 -0500 Subject: [PATCH 38/41] Update modules/nf-core/fastani/meta.yml Co-authored-by: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> --- modules/nf-core/fastani/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/fastani/meta.yml b/modules/nf-core/fastani/meta.yml index 643b8aa60213..f7a1bd5f2c43 100644 --- a/modules/nf-core/fastani/meta.yml +++ b/modules/nf-core/fastani/meta.yml @@ -37,7 +37,7 @@ input: be ignored. pattern: "*.{fasta,fna,fa}" ontologies: - - edam: http://edamontology.org/format_1929 + - edam: http://edamontology.org/format_1929 # FASTA - ql: type: file description: File containing a list of query fasta paths. query input takes From 09bf7adbbb54701683f087c3e42ac58ee19a4a38 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Fri, 13 Feb 2026 12:36:06 -0500 Subject: [PATCH 39/41] chore: cleanup directives at top of nf.test --- modules/nf-core/fastani/tests/main.nf.test | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index 003f1c4bd134..9c9971b1c78b 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -1,17 +1,13 @@ nextflow_process { name "Test Process FASTANI" + script "../main.nf" + process "FASTANI" + config "./nextflow.config" tag "modules_nfcore" tag "modules" tag "fastani" - script "../main.nf" -name "Test Process FASTANI" -tag "modules_nfcore" -tag "modules" -tag "fastani" -script "../main.nf" -process "FASTANI" - config "./nextflow.config" + test("sarscov2 - referece vs contigs - fastANI - 1 v 1 mode") { when { From 00098ca17a747e63733c321cc409e79e5cad38c3 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Fri, 13 Feb 2026 13:11:59 -0500 Subject: [PATCH 40/41] feature: added line count check for all v all mode --- modules/nf-core/fastani/tests/main.nf.test | 14 ++++++++++---- modules/nf-core/fastani/tests/main.nf.test.snap | 10 +--------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test b/modules/nf-core/fastani/tests/main.nf.test index 9c9971b1c78b..e0cc590d6c91 100644 --- a/modules/nf-core/fastani/tests/main.nf.test +++ b/modules/nf-core/fastani/tests/main.nf.test @@ -29,6 +29,7 @@ nextflow_process { then { assertAll ( + { assert process.success }, { assert snapshot( process.out.ani, process.out.findAll { key, val -> key.startsWith("versions")} @@ -75,10 +76,14 @@ nextflow_process { then { assertAll( - { assert snapshot( - process.out.ani, - process.out.findAll { key, val -> key.startsWith("versions") } - ).match() } + { assert process.success }, + { + def aniFile = path(process.out.ani[0][1]) + assert aniFile.exists() + def lines = aniFile.readLines() + assert lines.size() == 4 : "Expected 4 ANI comparisons but found ${lines.size()}" + }, + { assert snapshot(process.out.findAll { key, val -> key.startsWith("versions") }).match() } ) } } @@ -106,6 +111,7 @@ nextflow_process { then { assertAll ( + { assert process.success }, { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index eb721bfeeee8..7bbd7329a92b 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -166,14 +166,6 @@ }, "sarscov2 - referece vs contigs - fastANI - all vs all mode": { "content": [ - [ - [ - [ - - ], - "all.txt:md5,616c232d14c8f9ad3cda307154fa895e" - ] - ], { "versions_fastani": [ [ @@ -188,7 +180,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-02-12T18:34:43.814618838" + "timestamp": "2026-02-13T12:46:56.303203093" }, "stub": { "content": [ From 3f5a987a9d33284f192107fa732c8a00dec173a0 Mon Sep 17 00:00:00 2001 From: Ethan Hetrick Date: Fri, 13 Feb 2026 14:28:34 -0500 Subject: [PATCH 41/41] chore: removed obsolete nf-tests --- .../nf-core/fastani/tests/main.nf.test.snap | 165 ------------------ 1 file changed, 165 deletions(-) diff --git a/modules/nf-core/fastani/tests/main.nf.test.snap b/modules/nf-core/fastani/tests/main.nf.test.snap index 7bbd7329a92b..cd94a57b9842 100644 --- a/modules/nf-core/fastani/tests/main.nf.test.snap +++ b/modules/nf-core/fastani/tests/main.nf.test.snap @@ -1,108 +1,4 @@ { - "fastani - 1v1": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test_v_test2.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" - ], - "ani": [ - [ - { - "id": "test" - }, - "test_v_test2.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" - ] - ], - "matrix": [ - - ], - "versions": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" - ], - "visual": [ - - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.1" - }, - "timestamp": "2025-12-17T13:46:06.970355559" - }, - "FastANI": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test.ani.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" - ] - ], - "1": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" - ], - "ani": [ - [ - { - "id": "test" - }, - "test.ani.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" - ] - ], - "versions": [ - "versions.yml:md5,6d40b0941a0753738f6c844eb8fc7c73" - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.1" - }, - "timestamp": "2023-10-18T12:02:08.983912093" - }, - "all vs all": { - "content": [ - [ - [ - [ - - ], - "all.txt:md5,c61ee10de3f2392ca02974c1b6536e77" - ] - ], - { - "versions_fastani": [ - [ - "FASTANI", - "fastani", - "" - ] - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2026-01-14T16:28:57.910154362" - }, "sarscov2 - referece vs contigs - fastANI - 1 v 1 mode": { "content": [ [ @@ -129,41 +25,6 @@ }, "timestamp": "2026-02-12T18:20:14.95813302" }, - "fastani - updates - fasta - fasta": { - "content": [ - { - "0": [ - - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - - ], - "ani": [ - - ], - "matrix": [ - - ], - "versions": [ - - ], - "visual": [ - - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.1" - }, - "timestamp": "2025-12-17T13:04:20.452047779" - }, "sarscov2 - referece vs contigs - fastANI - all vs all mode": { "content": [ { @@ -254,31 +115,5 @@ "nextflow": "25.10.2" }, "timestamp": "2026-02-12T18:20:31.13425659" - }, - "sarscov2 - referece vs contigs - fastANI": { - "content": [ - [ - [ - { - "id": "test" - }, - "test.txt:md5,31d4f04e8cffe13080c86db3f9f3a589" - ] - ], - { - "versions_fastani": [ - [ - "FASTANI", - "fastani", - "" - ] - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2026-01-14T15:39:54.132926413" } } \ No newline at end of file