diff --git a/CHANGELOG.md b/CHANGELOG.md index a716c4a..c2e9b24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## v1.0.1dev - [date] + +### `Fixed` + +- [#106](https://github.com/nf-core/seqsubmit/pull/106) + - Added support for metatranscriptome submission for ASSEMBLYSUBMIT + - Set retry to assembly_uploader +- [#108](https://github.com/nf-core/seqsubmit/pull/108) + - Added test usecase in test-datasets https://github.com/nf-core/test-datasets/pull/2324 with contamination=0 +- [#107](https://github.com/nf-core/seqsubmit/pull/107) + - Fix `GENOMESUBMIT` treating a zero-valued completeness/contamination as a missing one. The branch that decides whether to (re)compute the statistics with CheckM2 tested the samplesheet values for Groovy truthiness, and the number `0` is falsey + + ```groovy + genome_evaluation_input: !(meta.completeness) || !(meta.contamination) || !(meta.stats_generation_software) + ``` + + A genome with a legitimate value of `0` — a clean bin with 0% contamination — was therefore sent to `GENOME_EVALUATION`, where the supplied values were silently replaced by the recomputed ones. `stats_generation_software` is rewritten to the tool name reported by the module, so the affected rows also ended up with a different value in that column than the rows that kept their samplesheet statistics. + + The branch now tests for absence, which is what the samplesheet schema expresses: `nf-schema` converts an empty field to `null`, so genuinely missing statistics still route to `GENOME_EVALUATION` while a provided `0` no longer does. This matches the `RNA_presence` test already used in the same workflow. + + - The `genome_coverage` branch (`COVERM_GENOME`) is deliberately unchanged. Its schema field declares `exclusiveMinimum: 0`, so a samplesheet cannot supply `0` there, and an omitted value arrives as `null`, for which the truthiness test and a `null` test behave identically. + +### `Dependencies` + +### `Deprecated` + ## v1.0.0 - 01/08/2026 Initial release of nf-core/seqsubmit, created with the [nf-core](https://nf-co.re/) template. diff --git a/README.md b/README.md index 490661e..ec93644 100644 --- a/README.md +++ b/README.md @@ -71,9 +71,9 @@ See the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage doc Example: ```csv -id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version -assembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5 -assembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 +id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version,assembly_type +assembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5,metagenome +assembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9,metatranscriptome ``` See the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input-1) of the usage documentation for more details. diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 5df001f..c8b1a89 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -58,6 +58,8 @@ custom_data: title: "Filepath" Sample: title: "Sample" + Library: + title: "Library" genome_metadata: id: "genome_metadata" diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index f6a8593..a269c48 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -92,6 +92,14 @@ "errorMessage": "Assembler version must be provided and cannot contain spaces", "description": "Version of the assembler software used to generate the assembly, e.g. 1.0.0", "meta": ["assembler_version"] + }, + "assembly_type": { + "type": "string", + "enum": ["metagenome", "metatranscriptome"], + "errorMessage": "Assembly type should be metagenome or metatranscriptome", + "description": "Assembly type: metagenome or metatranscriptome. Written to the ENA manifest as ASSEMBLY_TYPE 'primary metagenome' or 'metatranscriptome'. Default: metagenome", + "default": "metagenome", + "meta": ["assembly_type"] } }, "required": ["id", "fasta", "run_accession", "assembler", "assembler_version"], diff --git a/conf/modules.config b/conf/modules.config index 082d9e8..915a09c 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -176,7 +176,15 @@ process { ] } - withName: 'REGISTERSTUDY|GENERATE_ASSEMBLY_MANIFEST|CREATE_READS_MANIFEST' { + withName: 'REGISTERSTUDY|CREATE_READS_MANIFEST' { + publishDir = [ + enabled: false + ] + } + + withName: 'GENERATE_ASSEMBLY_MANIFEST' { + errorStrategy = { task.exitStatus in (1 + (130..145) + 104 + (175..177)) ? 'retry' : 'finish' } + maxRetries = 3 publishDir = [ enabled: false ] diff --git a/docs/usage.md b/docs/usage.md index fee41b2..efd2547 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -214,21 +214,22 @@ You will need to create a samplesheet with information about the metagenomic ass Example: ```csv title="samplesheet_assembly.csv" -id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version -assembly_001,data/assembly_001.fasta.gz,data/assembly_001_R1.fastq.gz,data/assembly_001_R2.fastq.gz,,ERR011322,SPAdes,3.15.5 -assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 +id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version,assembly_type +assembly_001,data/assembly_001.fasta.gz,data/assembly_001_R1.fastq.gz,data/assembly_001_R2.fastq.gz,,ERR011322,SPAdes,3.15.5,metagenome +assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9,metatranscriptome ``` -| Column | Required | Description | -| ------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | -| `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | -| `fastq_1` | Conditional | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped). Required if `coverage` is not provided. | -| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `coverage` | Conditional | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `run_accession` | Yes | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | -| `assembler` | Yes | Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc. | -| `assembler_version` | Yes | Version of the assembler software used to generate the assembly, e.g. 1.0.0. | +| Column | Required | Description | +| ------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | +| `fastq_1` | Conditional | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped). Required if `coverage` is not provided. | +| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `coverage` | Conditional | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `run_accession` | Yes | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | +| `assembler` | Yes | Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc. | +| `assembler_version` | Yes | Version of the assembler software used to generate the assembly, e.g. 1.0.0. | +| `assembly_type` | No | Sequencing library source: `metagenome` for metagenome assembly (would be used as _'primary metagenome'_ in manifest file following [ENA docs](https://ena-docs.readthedocs.io/en/latest/submit/assembly/metagenome/primary.html)) or `metatranscriptome` for metatranscriptome assembly (woule be used _'metatranscriptome'_ in assembly manifest following [ENA docs](https://ena-docs.readthedocs.io/en/latest/submit/assembly/metatranscriptome.html)). Default: `metagenome` | Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage with CoverM. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. diff --git a/modules/local/create_assembly_metadata_csv/main.nf b/modules/local/create_assembly_metadata_csv/main.nf index 2e8283a..5b25027 100644 --- a/modules/local/create_assembly_metadata_csv/main.nf +++ b/modules/local/create_assembly_metadata_csv/main.nf @@ -18,14 +18,15 @@ process CREATE_ASSEMBLY_METADATA_CSV { task.ext.when == null || task.ext.when script: - def header = 'Runs,Coverage,Assembler,Version,Filepath,Sample' + def header = 'Runs,Coverage,Assembler,Version,Filepath,Sample,Library' def row = [ meta.run_accession, meta.coverage, meta.assembler, meta.assembler_version, fasta.name, - '' // Sample column left empty because co-assemblies are not supported + '', // Sample column left empty because co-assemblies are not supported + meta.assembly_type ?: 'metagenome' // it would be applied by schema, but still needed as safe case for tests ].join(',') """ cat <<-END_CSV > ${meta.id}_assembly_metadata.csv diff --git a/modules/local/create_assembly_metadata_csv/meta.yml b/modules/local/create_assembly_metadata_csv/meta.yml index ffe7be4..994024a 100644 --- a/modules/local/create_assembly_metadata_csv/meta.yml +++ b/modules/local/create_assembly_metadata_csv/meta.yml @@ -21,6 +21,7 @@ input: - coverage: Assembly coverage value - assembler: Name of the assembler used - assembler_version: Version of the assembler + - assembly_type: 'metagenome' or 'metatranscriptome' (optional, default: 'metagenome') - fasta: type: file description: Assembly FASTA file @@ -34,7 +35,10 @@ output: Groovy Map containing sample information (same as input) - "*.csv": type: file - description: CSV file containing assembly metadata to be used as input for the assembly_uploader + description: | + CSV file containing assembly metadata to be used as input for the assembly_uploader, + with columns Runs, Coverage, Assembler, Version, Filepath, Sample (empty) and + Library (assembly_type value, defines ASSEMBLY_TYPE in the ENA manifest) pattern: "*_assembly_metadata.csv" authors: diff --git a/modules/local/create_assembly_metadata_csv/tests/main.nf.test b/modules/local/create_assembly_metadata_csv/tests/main.nf.test index 2fb67c3..b3c1ab3 100644 --- a/modules/local/create_assembly_metadata_csv/tests/main.nf.test +++ b/modules/local/create_assembly_metadata_csv/tests/main.nf.test @@ -19,7 +19,8 @@ nextflow_process { run_accession: 'ERR123456', coverage: 50.5, assembler: 'metaspades', - assembler_version: '3.15.5' + assembler_version: '3.15.5', + assembly_type: 'metagenome' ], file('https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/genome/NC_045512.2/GCF_009858895.2_ASM985889v3_genomic.200409.fna.gz') ] @@ -49,7 +50,8 @@ nextflow_process { run_accession: 'ERR999999', coverage: 75.0, assembler: 'megahit', - assembler_version: '1.2.9' + assembler_version: '1.2.9', + assembly_type: 'metatranscriptome' ], file('https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/genome/NC_045512.2/GCF_009858895.2_ASM985889v3_genomic.200409.fna.gz') ] diff --git a/modules/local/create_assembly_metadata_csv/tests/main.nf.test.snap b/modules/local/create_assembly_metadata_csv/tests/main.nf.test.snap index 2b37721..af589fe 100644 --- a/modules/local/create_assembly_metadata_csv/tests/main.nf.test.snap +++ b/modules/local/create_assembly_metadata_csv/tests/main.nf.test.snap @@ -9,9 +9,10 @@ "run_accession": "ERR123456", "coverage": 50.5, "assembler": "metaspades", - "assembler_version": "3.15.5" + "assembler_version": "3.15.5", + "assembly_type": "metagenome" }, - "test_sample_assembly_metadata.csv:md5,0ad41b6b4e778fb03fc224bae9ba4529" + "test_sample_assembly_metadata.csv:md5,5627f0b0bc83720dd269e2ea8ac16eff" ] ], "1": [ @@ -28,14 +29,15 @@ "run_accession": "ERR123456", "coverage": 50.5, "assembler": "metaspades", - "assembler_version": "3.15.5" + "assembler_version": "3.15.5", + "assembly_type": "metagenome" }, - "test_sample_assembly_metadata.csv:md5,0ad41b6b4e778fb03fc224bae9ba4529" + "test_sample_assembly_metadata.csv:md5,5627f0b0bc83720dd269e2ea8ac16eff" ] ] } ], - "timestamp": "2026-07-07T13:48:39.201846", + "timestamp": "2026-10-15T11:45:01.123968", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" @@ -51,7 +53,8 @@ "run_accession": "ERR999999", "coverage": 75.0, "assembler": "megahit", - "assembler_version": "1.2.9" + "assembler_version": "1.2.9", + "assembly_type": "metatranscriptome" }, "stub_sample_assembly_metadata.csv:md5,d41d8cd98f00b204e9800998ecf8427e" ] @@ -70,14 +73,15 @@ "run_accession": "ERR999999", "coverage": 75.0, "assembler": "megahit", - "assembler_version": "1.2.9" + "assembler_version": "1.2.9", + "assembly_type": "metatranscriptome" }, "stub_sample_assembly_metadata.csv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] } ], - "timestamp": "2026-07-07T13:48:46.340926", + "timestamp": "2026-10-15T11:45:06.881317", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/local/generate_assembly_manifest/environment.yml b/modules/local/generate_assembly_manifest/environment.yml index daac6e1..0fb88e3 100644 --- a/modules/local/generate_assembly_manifest/environment.yml +++ b/modules/local/generate_assembly_manifest/environment.yml @@ -3,4 +3,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::assembly_uploader=1.3.5" + - "bioconda::assembly_uploader=1.3.6" diff --git a/modules/local/generate_assembly_manifest/main.nf b/modules/local/generate_assembly_manifest/main.nf index 90553c0..cb5b7a6 100644 --- a/modules/local/generate_assembly_manifest/main.nf +++ b/modules/local/generate_assembly_manifest/main.nf @@ -4,8 +4,8 @@ process GENERATE_ASSEMBLY_MANIFEST { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/assembly_uploader:1.3.5--pyhdfd78af_1': - 'quay.io/biocontainers/assembly_uploader:1.3.5--pyhdfd78af_1' }" + 'https://depot.galaxyproject.org/singularity/assembly_uploader:1.3.6--pyhdfd78af_0': + 'quay.io/biocontainers/assembly_uploader:1.3.6--pyhdfd78af_0' }" input: tuple val(meta), path(assembly_fasta), path(data_csv) diff --git a/modules/local/generate_assembly_manifest/meta.yml b/modules/local/generate_assembly_manifest/meta.yml index 1f9e1de..72614c7 100644 --- a/modules/local/generate_assembly_manifest/meta.yml +++ b/modules/local/generate_assembly_manifest/meta.yml @@ -25,7 +25,7 @@ input: description: | CSV file containing metadata - runs (comma-separated and in quotes, example: "SRR1234,SRR5678"), - coverage, assembler, version, filepath and optionally sample. + coverage, assembler, version, filepath, [optionally] sample, [optionally] assembly_type - assembly_study: type: value description: | diff --git a/modules/local/generate_assembly_manifest/tests/main.nf.test b/modules/local/generate_assembly_manifest/tests/main.nf.test index e16d278..690e2ac 100644 --- a/modules/local/generate_assembly_manifest/tests/main.nf.test +++ b/modules/local/generate_assembly_manifest/tests/main.nf.test @@ -27,8 +27,16 @@ nextflow_process { then { assert process.success + // Manifest md5 is not stable: ASSEMBLYNAME contains a timestamp-based hash in test mode + // and FASTA may contain a work directory path. Snapshot the content without them. + def manifestLines = path(process.out.manifest[0][1]).readLines() + .findAll { line -> !line.startsWith("ASSEMBLYNAME\t") } + .collect { line -> line.startsWith("FASTA\t") ? "FASTA\t" + line.split("\t")[1].tokenize('/')[-1] : line } assertAll( - // Only snapshot versions, not the manifest because it contains a timestamp + { assert snapshot( + process.out[1], + manifestLines + ).match() }, { assert process.out.manifest.size() == 1 }, { assert process.out.manifest[0][1].toString().endsWith(".manifest") }, { @@ -43,10 +51,10 @@ nextflow_process { assert manifestContent.contains("SAMPLE SAMEA7687881") assert manifestContent.contains("STUDY PRJ12345") assert manifestContent.contains("RUN_REF ERR4918394") + assert manifestContent.contains("ASSEMBLY_TYPE\tprimary metagenome") } - ) + )} } -} test("GENERATE_ASSEMBLY_MANIFEST completes with expected outputs - stub") { diff --git a/modules/local/generate_assembly_manifest/tests/main.nf.test.snap b/modules/local/generate_assembly_manifest/tests/main.nf.test.snap index 5a6e766..df666e3 100644 --- a/modules/local/generate_assembly_manifest/tests/main.nf.test.snap +++ b/modules/local/generate_assembly_manifest/tests/main.nf.test.snap @@ -14,7 +14,7 @@ [ "GENERATE_ASSEMBLY_MANIFEST", "assembly_uploader", - "1.3.5" + "1.3.6" ] ], "manifest": [ @@ -27,7 +27,7 @@ ] } ], - "timestamp": "2026-07-22T21:23:02.99938", + "timestamp": "2026-10-19T11:54:27.111784", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" @@ -35,13 +35,26 @@ }, "GENERATE_ASSEMBLY_MANIFEST completes with expected outputs": { "content": [ - { - "GENERATE_ASSEMBLY_MANIFEST": { - "assembly_uploader": "1.3.5" - } - } + [ + [ + "GENERATE_ASSEMBLY_MANIFEST", + "assembly_uploader", + "1.3.6" + ] + ], + [ + "STUDY\tPRJ12345", + "SAMPLE\tSAMEA7687881", + "RUN_REF\tERR4918394", + "ASSEMBLY_TYPE\tprimary metagenome", + "COVERAGE\t20.0", + "PROGRAM\tmetaSPADES v3.12.1", + "PLATFORM\tDNBSEQ-G400", + "FASTA\tcontigs.fasta.gz", + "TPA\tfalse" + ] ], - "timestamp": "2026-06-25T22:01:06.448406", + "timestamp": "2026-10-19T12:01:56.845176", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/tests/assembly_complete_metadata.nf.test.snap b/tests/assembly_complete_metadata.nf.test.snap index 2793fd6..5085777 100644 --- a/tests/assembly_complete_metadata.nf.test.snap +++ b/tests/assembly_complete_metadata.nf.test.snap @@ -20,7 +20,7 @@ "falint": "1.2.0" }, "GENERATE_ASSEMBLY_MANIFEST": { - "assembly_uploader": "1.3.5" + "assembly_uploader": "1.3.6" }, "SUBMIT": { "ena-webin-cli": "9.0.3", @@ -66,8 +66,8 @@ "pipeline_info/nf_core_seqsubmit_software_mqc_versions.yml" ], [ - "assemblies_metadata.csv:md5,8e4479dcf7b71a1e250789cd63bf0a6e", - "multiqc_assembly_metadata.txt:md5,18cd85bcbc295ab895d2568330fc7854", + "assemblies_metadata.csv:md5,4a171d2d13d999e391fd6b460f5927ec", + "multiqc_assembly_metadata.txt:md5,3187b2ddb3922a060b58f330c7609d0d", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f" ] ], @@ -75,6 +75,6 @@ "nf-test": "0.9.2", "nextflow": "26.04.1" }, - "timestamp": "2026-05-13T13:17:16.523674" + "timestamp": "2026-10-15T11:45:06.881317" } } \ No newline at end of file diff --git a/tests/assembly_no_coverage_paired_reads.nf.test.snap b/tests/assembly_no_coverage_paired_reads.nf.test.snap index 533388e..79f3702 100644 --- a/tests/assembly_no_coverage_paired_reads.nf.test.snap +++ b/tests/assembly_no_coverage_paired_reads.nf.test.snap @@ -23,7 +23,7 @@ "falint": "1.2.0" }, "GENERATE_ASSEMBLY_MANIFEST": { - "assembly_uploader": "1.3.5" + "assembly_uploader": "1.3.6" }, "SUBMIT": { "ena-webin-cli": "9.0.3", @@ -72,8 +72,8 @@ ], [ "no_coverage_paired_reads.depth.tsv:md5,bb5f99e74d21df3c73e0ae0f388bcbcb", - "assemblies_metadata.csv:md5,60706c21c030ba38af7a402f5e753fd5", - "multiqc_assembly_metadata.txt:md5,9ae2665c6c7b648797758ee66d42ce62", + "assemblies_metadata.csv:md5,199890227285973c56ea126e7f556017", + "multiqc_assembly_metadata.txt:md5,07b7d9fc2d6b6eaa9e779af80eb8fdde", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f" ] ], @@ -81,6 +81,6 @@ "nf-test": "0.9.2", "nextflow": "26.04.1" }, - "timestamp": "2026-05-13T13:18:47.77148" + "timestamp": "2026-10-15T11:45:06.881317" } } \ No newline at end of file diff --git a/tests/assembly_no_coverage_single_reads.nf.test.snap b/tests/assembly_no_coverage_single_reads.nf.test.snap index 67ccc9b..4d75421 100644 --- a/tests/assembly_no_coverage_single_reads.nf.test.snap +++ b/tests/assembly_no_coverage_single_reads.nf.test.snap @@ -23,7 +23,7 @@ "falint": "1.2.0" }, "GENERATE_ASSEMBLY_MANIFEST": { - "assembly_uploader": "1.3.5" + "assembly_uploader": "1.3.6" }, "SUBMIT": { "ena-webin-cli": "9.0.3", @@ -72,8 +72,8 @@ ], [ "no_coverage_single_reads.depth.tsv:md5,bd88282b17e851377b1dd223839be150", - "assemblies_metadata.csv:md5,c9fe30ea46c95167627976470b8c9731", - "multiqc_assembly_metadata.txt:md5,cafd4572737c5e84941afe260c3987c8", + "assemblies_metadata.csv:md5,f7506e0c624ad2909827966bf2526dfd", + "multiqc_assembly_metadata.txt:md5,e7fd323a6691296e89dc20174fcd8083", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f" ] ], @@ -81,6 +81,6 @@ "nf-test": "0.9.2", "nextflow": "26.04.1" }, - "timestamp": "2026-05-13T13:19:25.904346" + "timestamp": "2026-10-15T11:45:06.881317" } } \ No newline at end of file diff --git a/tests/assembly_no_study_complete_metadata.nf.test.snap b/tests/assembly_no_study_complete_metadata.nf.test.snap index a834d6d..27be885 100644 --- a/tests/assembly_no_study_complete_metadata.nf.test.snap +++ b/tests/assembly_no_study_complete_metadata.nf.test.snap @@ -20,7 +20,7 @@ "falint": "1.2.0" }, "GENERATE_ASSEMBLY_MANIFEST": { - "assembly_uploader": "1.3.5" + "assembly_uploader": "1.3.6" }, "REGISTERSTUDY": { "mgnify-pipelines-toolkit": "1.5.1" @@ -69,8 +69,8 @@ "pipeline_info/nf_core_seqsubmit_software_mqc_versions.yml" ], [ - "assemblies_metadata.csv:md5,8e4479dcf7b71a1e250789cd63bf0a6e", - "multiqc_assembly_metadata.txt:md5,18cd85bcbc295ab895d2568330fc7854", + "assemblies_metadata.csv:md5,4a171d2d13d999e391fd6b460f5927ec", + "multiqc_assembly_metadata.txt:md5,3187b2ddb3922a060b58f330c7609d0d", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f" ] ], @@ -78,6 +78,6 @@ "nf-test": "0.9.2", "nextflow": "26.04.1" }, - "timestamp": "2026-05-13T11:53:13.664744" + "timestamp": "2026-10-15T11:45:06.881317" } } \ No newline at end of file diff --git a/tests/mag_no_rna_presence.nf.test.snap b/tests/mag_no_rna_presence.nf.test.snap index 5541956..7fec9d9 100644 --- a/tests/mag_no_rna_presence.nf.test.snap +++ b/tests/mag_no_rna_presence.nf.test.snap @@ -95,9 +95,9 @@ [ "no_rna_presence_bac.gff:md5,df19e1b84ba6f691d20c72b397c88abf", "no_rna_presence.tsv:md5,abd958e8addba39c9e4d7f6b97a1a7c6", - "genomes_metadata.tsv:md5,0f567491f038d4a0c1dbf4c05cdc26c0", + "genomes_metadata.tsv:md5,28fdaa0fe237cba4d0370c07d5f9ebaa", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", - "multiqc_genome_metadata.txt:md5,73e2aecbb5233cee71a12237ed4c3f08" + "multiqc_genome_metadata.txt:md5,efa903988140642f4f3d12b8e034e7a1" ] ], "meta": { diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 37ce955..83f2cee 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -138,7 +138,7 @@ workflow GENOMESUBMIT { // --------- Completeness and contamination calculation branched_stats_results = fasta_updated_with_rna .branch { meta, _fasta -> - genome_evaluation_input: !(meta.completeness) || !(meta.contamination) || !(meta.stats_generation_software) + genome_evaluation_input: meta.completeness == null || meta.contamination == null || meta.stats_generation_software == null evaluation_present: true // Everything else goes here }