From c9e9241cf86666d6d5f30dab8ccb1bfeff5573df Mon Sep 17 00:00:00 2001 From: MazzaLab Date: Tue, 14 Jan 2025 19:42:54 +0100 Subject: [PATCH] Update WIPERTOOLS (#7300) * Refactor fastq and report variable names for consistency across wipertools modules * Refactor variable names for consistency in fastq and report processing modules * Update test assertions to reflect changes in output variable names in fastqwiper module * Update test assertions to match changes in report output structure in fastqwiper tests --- .../nf-core/wipertools/fastqgather/main.nf | 14 +++--- .../nf-core/wipertools/fastqgather/meta.yml | 7 ++- .../wipertools/fastqgather/tests/main.nf.test | 4 +- .../fastqgather/tests/main.nf.test.snap | 8 ++-- .../nf-core/wipertools/fastqscatter/main.nf | 8 +++- .../nf-core/wipertools/fastqscatter/meta.yml | 2 +- .../fastqscatter/tests/main.nf.test.snap | 8 ++-- modules/nf-core/wipertools/fastqwiper/main.nf | 12 ++--- .../nf-core/wipertools/fastqwiper/meta.yml | 9 +++- .../wipertools/fastqwiper/tests/main.nf.test | 10 ++-- .../fastqwiper/tests/main.nf.test.snap | 48 +++++++++++++------ .../nf-core/wipertools/reportgather/main.nf | 10 ++-- .../nf-core/wipertools/reportgather/meta.yml | 4 +- .../reportgather/tests/main.nf.test | 16 +++---- .../reportgather/tests/main.nf.test.snap | 40 +++++++++++++--- 15 files changed, 129 insertions(+), 71 deletions(-) diff --git a/modules/nf-core/wipertools/fastqgather/main.nf b/modules/nf-core/wipertools/fastqgather/main.nf index 965d004df83..c39730e4f9f 100644 --- a/modules/nf-core/wipertools/fastqgather/main.nf +++ b/modules/nf-core/wipertools/fastqgather/main.nf @@ -8,28 +8,28 @@ process WIPERTOOLS_FASTQGATHER { 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" input: - tuple val(meta), path(fastq_in) + tuple val(meta), path(fastq) output: - tuple val(meta), path("${prefix}.fastq.gz"), emit: fastq_out + tuple val(meta), path("${prefix}.fastq.gz"), emit: gathered_fastq path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}_gather" + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (fastq_in.any { it.name == "${prefix}.fastq.gz" }) { + if (fastq.any { it.name == "${prefix}.fastq.gz" }) { error 'Output file name "${prefix}.fastq.gz}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } """ wipertools \\ fastqgather \\ - -i $fastq_in \\ + -i $fastq \\ -o ${prefix}.fastq.gz \\ ${args} @@ -43,7 +43,7 @@ process WIPERTOOLS_FASTQGATHER { prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (fastq_in.any { it.name == "${prefix}.fastq.gz" }) { + if (fastq.any { it.name == "${prefix}.fastq.gz" }) { error 'Output file name "${prefix}.fastq.gz}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } """ diff --git a/modules/nf-core/wipertools/fastqgather/meta.yml b/modules/nf-core/wipertools/fastqgather/meta.yml index 183109a04e5..a3ce38c8f24 100644 --- a/modules/nf-core/wipertools/fastqgather/meta.yml +++ b/modules/nf-core/wipertools/fastqgather/meta.yml @@ -7,8 +7,7 @@ keywords: - union tools: - "fastqgather": - description: - "A tool of the wipertools suite that merges FASTQ chunks produced\ + description: "A tool of the wipertools suite that merges FASTQ chunks produced\ \ by wipertools_fastqscatter." homepage: "https://github.com/mazzalab/fastqwiper" documentation: "https://github.com/mazzalab/fastqwiper" @@ -24,7 +23,7 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - fastq_in: + - fastq: type: file description: List of FASTQ chunk files to be merged pattern: "*.{fastq,fastq.gz}" @@ -32,7 +31,7 @@ input: - edam: "http://edamontology.org/format_1930" - edam: "http://edamontology.org/format_3989" output: - - fastq_out: + - gathered_fastq: - meta: type: map description: | diff --git a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test index 193720c02c1..69288f02124 100644 --- a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test +++ b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test @@ -33,7 +33,7 @@ nextflow_process { } process { """ - input[0] = WIPERTOOLS_FASTQSCATTER.out.chunks + input[0] = WIPERTOOLS_FASTQSCATTER.out.fastq_chunks """ } } @@ -56,7 +56,7 @@ nextflow_process { } process { """ - input[0] = WIPERTOOLS_FASTQSCATTER.out.chunks + input[0] = WIPERTOOLS_FASTQSCATTER.out.fastq_chunks """ } } diff --git a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap index 497cd2e9ab1..3319aac0447 100644 --- a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap @@ -13,7 +13,7 @@ "1": [ "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" ], - "fastq_out": [ + "gathered_fastq": [ [ { "id": "fastq_chunks" @@ -30,7 +30,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:22.882325" + "timestamp": "2025-01-13T18:49:15.441781" }, "merge two gzipped fastq - fastq.gz": { "content": [ @@ -46,7 +46,7 @@ "1": [ "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" ], - "fastq_out": [ + "gathered_fastq": [ [ { "id": "fastq_chunks" @@ -63,6 +63,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:12.396668" + "timestamp": "2025-01-13T18:49:02.891972" } } \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqscatter/main.nf b/modules/nf-core/wipertools/fastqscatter/main.nf index e32383fdc82..968bb6e756a 100644 --- a/modules/nf-core/wipertools/fastqscatter/main.nf +++ b/modules/nf-core/wipertools/fastqscatter/main.nf @@ -12,7 +12,7 @@ process WIPERTOOLS_FASTQSCATTER { val(num_splits) output: - tuple val(meta), path("${out_folder}/*") , emit: chunks + tuple val(meta), path("${out_folder}/*") , emit: fastq_chunks path "versions.yml" , emit: versions when: @@ -24,6 +24,9 @@ process WIPERTOOLS_FASTQSCATTER { def args_list = args.tokenize() out_folder = (args_list.contains('--out_folder') ? args_list[args_list.indexOf('--out_folder')+1] : (args_list.contains('-o') ? args_list[args_list.indexOf('-o')+1] : 'chunks')) + if(!args.contains('-o') && !args.contains('--out_folder')) { + args += " -o ${out_folder}" + } """ wipertools \\ fastqscatter \\ @@ -44,6 +47,9 @@ process WIPERTOOLS_FASTQSCATTER { def args_list = args.tokenize() out_folder = (args_list.contains('--out_folder') ? args_list[args_list.indexOf('--out_folder')+1] : (args_list.contains('-o') ? args_list[args_list.indexOf('-o')+1] : 'chunks')) + if(!args.contains('-o') && !args.contains('--out_folder')) { + args += " -o ${out_folder}" + } """ mkdir ${out_folder} for i in {1..${num_splits}} diff --git a/modules/nf-core/wipertools/fastqscatter/meta.yml b/modules/nf-core/wipertools/fastqscatter/meta.yml index 445323317e5..b2508f87409 100644 --- a/modules/nf-core/wipertools/fastqscatter/meta.yml +++ b/modules/nf-core/wipertools/fastqscatter/meta.yml @@ -34,7 +34,7 @@ input: pattern: "[1-9][0-9]*" output: - - chunks: + - fastq_chunks: - meta: type: map description: | diff --git a/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap index e293ce0f332..2145181050a 100644 --- a/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap @@ -16,7 +16,7 @@ "1": [ "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" ], - "chunks": [ + "fastq_chunks": [ [ { "id": "test" @@ -36,7 +36,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:32.330894" + "timestamp": "2025-01-13T18:41:58.317846" }, "3 reads, one truncated - fastq - stub": { "content": [ @@ -55,7 +55,7 @@ "1": [ "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" ], - "chunks": [ + "fastq_chunks": [ [ { "id": "test" @@ -75,6 +75,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:41.304878" + "timestamp": "2025-01-13T18:42:09.268891" } } \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqwiper/main.nf b/modules/nf-core/wipertools/fastqwiper/main.nf index ccf3a070cc9..4b8dea60393 100644 --- a/modules/nf-core/wipertools/fastqwiper/main.nf +++ b/modules/nf-core/wipertools/fastqwiper/main.nf @@ -8,11 +8,11 @@ process WIPERTOOLS_FASTQWIPER { 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" input: - tuple val(meta), path(fastq_in) + tuple val(meta), path(fastq) output: - tuple val(meta), path("${prefix}.fastq.gz"), emit: fastq_out - path("*.report") , emit: report + tuple val(meta), path("${prefix}.fastq.gz"), emit: wiped_fastq + tuple val(meta), path("*.report") , emit: report path "versions.yml" , emit: versions when: @@ -21,11 +21,11 @@ process WIPERTOOLS_FASTQWIPER { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}_wiped" - if ("${fastq_in}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." + if ("${fastq}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." """ wipertools \\ fastqwiper \\ - -i ${fastq_in} \\ + -i ${fastq} \\ -o ${prefix}.fastq.gz \\ -r ${prefix}.report \\ ${args} @@ -38,7 +38,7 @@ process WIPERTOOLS_FASTQWIPER { stub: prefix = task.ext.prefix ?: "${meta.id}_wiped" - if ("${fastq_in}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." + if ("${fastq}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." """ echo "" | gzip > ${prefix}.fastq.gz touch ${prefix}.report diff --git a/modules/nf-core/wipertools/fastqwiper/meta.yml b/modules/nf-core/wipertools/fastqwiper/meta.yml index 3980f46167d..8c35c1b031a 100644 --- a/modules/nf-core/wipertools/fastqwiper/meta.yml +++ b/modules/nf-core/wipertools/fastqwiper/meta.yml @@ -23,7 +23,7 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - fastq_in: + - fastq: type: file description: FASTQ file to be cleaned pattern: "*.{fastq,fastq.gz}" @@ -31,7 +31,7 @@ input: - edam: "http://edamontology.org/format_1930" - edam: "http://edamontology.org/format_3989" output: - - fastq_out: + - wiped_fastq: - meta: type: map description: | @@ -45,6 +45,11 @@ output: - edam: "http://edamontology.org/format_1930" - edam: "http://edamontology.org/format_3989" - report: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - "*.report": type: file description: Summary of the cleaning task diff --git a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test index 8c8a2ab091f..d21224ad8fc 100644 --- a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test +++ b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test @@ -28,18 +28,18 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.fastq_out.get(0).get(1)).linesGzip.size() == 8}, + { assert path(process.out.wiped_fastq.get(0).get(1)).linesGzip.size() == 8}, { - def read_final_qual = path(process.out.fastq_out.get(0).get(1)).linesGzip[7] + def read_final_qual = path(process.out.wiped_fastq.get(0).get(1)).linesGzip[7] assert read_final_qual.equals('CCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG') }, - { assert path(process.out.report.get(0)).readLines().size() == 11}, + { assert path(process.out.report.get(0).get(1)).readLines().size() == 11}, { - def report_header = path(process.out.report.get(0)).readLines()[0] + def report_header = path(process.out.report.get(0).get(1)).readLines()[0] assert report_header.equals('FASTQWIPER REPORT:') }, { - def qual_check = path(process.out.report.get(0)).readLines()[9] + def qual_check = path(process.out.report.get(0).get(1)).readLines()[9] assert qual_check.equals('Reads discarded because len(SEQ) neq len(QUAL): 1') }, { assert snapshot(process.out).match() } diff --git a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap index 8c6b7a08e82..6dac8240986 100644 --- a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap @@ -11,24 +11,34 @@ ] ], "1": [ - "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + { + "id": "test" + }, + "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "2": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" ], - "fastq_out": [ + "report": [ [ { "id": "test" }, - "test_wiped.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "report": [ - "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" - ], "versions": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ], + "wiped_fastq": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] ] } ], @@ -36,7 +46,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:29:03.969824" + "timestamp": "2025-01-13T18:52:39.908974" }, "Quality mismatch - fastq": { "content": [ @@ -50,24 +60,34 @@ ] ], "1": [ - "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" + [ + { + "id": "test" + }, + "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" + ] ], "2": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" ], - "fastq_out": [ + "report": [ [ { "id": "test" }, - "test_wiped.fastq.gz:md5,81b1d99cf5c1615123a8c31760858a10" + "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" ] ], - "report": [ - "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" - ], "versions": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ], + "wiped_fastq": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,81b1d99cf5c1615123a8c31760858a10" + ] ] } ], @@ -75,6 +95,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:53.747935" + "timestamp": "2025-01-13T18:52:27.962146" } } \ No newline at end of file diff --git a/modules/nf-core/wipertools/reportgather/main.nf b/modules/nf-core/wipertools/reportgather/main.nf index e56e3d2f580..0bdefcfb38e 100644 --- a/modules/nf-core/wipertools/reportgather/main.nf +++ b/modules/nf-core/wipertools/reportgather/main.nf @@ -8,10 +8,10 @@ process WIPERTOOLS_REPORTGATHER { 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" input: - tuple val(meta), path(reports) + tuple val(meta), path(report) output: - tuple val(meta), path("${prefix}.report"), emit: report_out + tuple val(meta), path("${prefix}.report"), emit: gathered_report path "versions.yml" , emit: versions when: @@ -22,14 +22,14 @@ process WIPERTOOLS_REPORTGATHER { prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (reports.any { it.name == "${prefix}.report" }) { + if (report.any { it.name == "${prefix}.report" }) { error 'Output file name "${prefix}.report}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } """ wipertools \\ reportgather \\ - -r $reports \\ + -r $report \\ -f ${prefix}.report \\ ${args} @@ -43,7 +43,7 @@ process WIPERTOOLS_REPORTGATHER { prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (reports.any { it.name == "${prefix}.report" }) { + if (report.any { it.name == "${prefix}.report" }) { error 'Output file name "${prefix}.report}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } diff --git a/modules/nf-core/wipertools/reportgather/meta.yml b/modules/nf-core/wipertools/reportgather/meta.yml index 03eaaec9ad7..eee8c890226 100644 --- a/modules/nf-core/wipertools/reportgather/meta.yml +++ b/modules/nf-core/wipertools/reportgather/meta.yml @@ -22,14 +22,14 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - reports: + - report: type: file description: List of wiping reports to be merged pattern: "*.report" ontologies: - edam: "http://edamontology.org/format_2330" output: - - report_out: + - gathered_report: - meta: type: map description: | diff --git a/modules/nf-core/wipertools/reportgather/tests/main.nf.test b/modules/nf-core/wipertools/reportgather/tests/main.nf.test index e5e0f3d8138..732e7898841 100644 --- a/modules/nf-core/wipertools/reportgather/tests/main.nf.test +++ b/modules/nf-core/wipertools/reportgather/tests/main.nf.test @@ -43,8 +43,8 @@ nextflow_process { } process { """ - merged_reports = FQW1.out.report.merge(FQW2.out.report) - input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it) ) + merged_reports = FQW1.out.report.mix(FQW2.out.report) + input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it[1]) ) """ } } @@ -52,14 +52,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.report_out.get(0).get(1)).readLines().size() == 11}, + { assert path(process.out.gathered_report.get(0).get(1)).readLines().size() == 11}, { - def report_header = path(process.out.report_out.get(0).get(1)).readLines()[0] + def report_header = path(process.out.gathered_report.get(0).get(1)).readLines()[0] assert report_header.equals('FASTQWIPER REPORT:') }, { - def well_formed_lines = path(process.out.report_out.get(0).get(1)).readLines()[3] - assert well_formed_lines.equals('Well-formed lines: 16 (72.73%)') + def well_formed_lines = path(process.out.gathered_report.get(0).get(1)).readLines()[3] + assert well_formed_lines.equals('Well-formed lines: 8 (80.0%)') }, { assert snapshot(process.out).match() } ) @@ -72,8 +72,8 @@ nextflow_process { when { process { """ - merged_reports = FQW1.out.report.merge(FQW2.out.report) - input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it) ) + merged_reports = FQW1.out.report.mix(FQW2.out.report) + input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it[1]) ) """ } } diff --git a/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap b/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap index 3fa9ca583d2..0965d5d44f5 100644 --- a/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap @@ -3,6 +3,12 @@ "content": [ { "0": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ], [ { "id": "reports" @@ -11,9 +17,16 @@ ] ], "1": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ], - "report_out": [ + "gathered_report": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ], [ { "id": "reports" @@ -22,6 +35,7 @@ ] ], "versions": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ] } @@ -30,7 +44,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:29:25.550092" + "timestamp": "2025-01-13T19:37:46.90862" }, "merge two reports - .report": { "content": [ @@ -40,21 +54,35 @@ { "id": "reports" }, - "reports_gather.report:md5,cec18092c5b270372a3487d94c7b57bf" + "reports_gather.report:md5,3d2cfb8d7b72afe9b88663cf9dbf8129" + ], + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" ] ], "1": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ], - "report_out": [ + "gathered_report": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,3d2cfb8d7b72afe9b88663cf9dbf8129" + ], [ { "id": "reports" }, - "reports_gather.report:md5,cec18092c5b270372a3487d94c7b57bf" + "reports_gather.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" ] ], "versions": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ] } @@ -63,6 +91,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:29:15.048128" + "timestamp": "2025-01-13T19:37:34.849059" } } \ No newline at end of file