Skip to content

added metaT support to assembly flow - #106

Merged
KateSakharova merged 10 commits into
devfrom
feature/metat-support
Oct 19, 2026
Merged

KateSakharova merged 10 commits into
devfrom
feature/metat-support

Conversation

@KateSakharova

@KateSakharova KateSakharova commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Resolving #100 and #114

  • updated assembly_uploader to v1.3.6 supporting metaT
  • added library_strategy to assembly input samplesheet. Default value: metagenome
  • updated tests for modules
  • added errorStrategy and maxRetries to assembly_uploader (GENERATE_ASSEMBLY_MANIFEST)

@KateSakharova KateSakharova changed the title added metaT support to assembly flow (todo: napshots of tests) added metaT support to assembly flow Oct 15, 2026
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit 2e65ecf

+| ✅ 252 tests passed       |+
#| ❔   9 tests were ignored |#
#| ❔   1 tests had warnings |#
!| ❗   4 tests had warnings |!
Details

❗ Test warnings:

  • nextflow_config - Config manifest.version should end in dev: 1.0.0
  • readme - README contains the placeholder zenodo.XXXXXXX. This should be replaced with the zenodo doi (after the first release).
  • pipeline_todos - TODO string in README.md: Add citation for pipeline after first release. Uncomment lines below and update Zenodo doi and badge at the top of this file.
  • pipeline_todos - TODO string in nextflow.config: Specify any additional parameters here

❔ Tests ignored:

  • files_exist - File is ignored: conf/igenomes.config
  • files_exist - File is ignored: conf/igenomes_ignored.config
  • files_exist - File is ignored: .github/workflows/linting_comment.yml
  • nextflow_config - Config variable ignored: params.input
  • files_unchanged - File ignored due to lint config: .github/PULL_REQUEST_TEMPLATE.md
  • files_unchanged - File ignored due to lint config: assets/nf-core-seqsubmit_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-seqsubmit_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-seqsubmit_logo_dark.png
  • container_configs - container_configs

❔ Tests fixed:

✅ Tests passed:

Run details

  • nf-core/tools version 4.1.0
  • Run at 2026-10-19 13:14:11

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

❌ nf-test failed with latest Nextflow version

Note

Tests with Nextflow's latest version failed but it will not cause a CI workflow failure.
Please check if the failure is expected with newer (edge-)releases of Nextflow or if it needs fixing.

  • ❌ docker | latest-everything | Shard 1/7

See the full run for details.

paulzierep and others added 4 commits October 15, 2026 14:59
`GENOMESUBMIT` decides whether to (re)compute completeness and contamination
with CheckM2 using a truthiness test:

    genome_evaluation_input: !(meta.completeness) || !(meta.contamination) || !(meta.stats_generation_software)

In Groovy `0` is falsey, so a genome with a legitimate value of 0 -- a clean MAG
with 0% contamination, or a highly incomplete one with 0% completeness -- is
misread as "no stats provided" and is sent to `GENOME_EVALUATION`.

For a samplesheet that supplies stats for every row this silently re-computes
part of the run (including downloading the CheckM2 database) and then overrides
the supplied values, and it sets `stats_generation_software` from the tool name
reported by the module. The result is an inconsistent metadata column across the
submission: the affected rows end up with a recomputed version string while the
remaining rows keep the one from the samplesheet.

Test for absence instead of falsiness, matching the idiom already used elsewhere
in the same workflow (e.g. `meta.RNA_presence == null` for the RNA branch).

Verification with an nf-schema 2.5.1 probe over a three-row samplesheet (the
same `samplesheetToList` call the pipeline makes):

  * a samplesheet value of `0.0` arrives as a `java.math.BigDecimal` 0, so the
    old predicate routes that row to `GENOME_EVALUATION` and the new one does
    not;
  * an *empty* field arrives as `null`, so rows with genuinely missing
    statistics still take the `GENOME_EVALUATION` branch with the new
    predicate.

The `genome_coverage` branch (`COVERM_GENOME`) is intentionally left alone: its
schema field declares `exclusiveMinimum: 0`, so `0` is rejected at samplesheet
validation, while an omitted value arrives as `null` and both predicates then
agree.
…sing

Fix zero completeness/contamination being treated as missing

@mberacochea mberacochea left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice :)

@Vkale1 Vkale1 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! Lovely :) couple very unimportant small things.

Update the metagenomic assemblies section of the README
Assembly_metadata section of the multi-qc config would also have library now?
Same for generate_assembly_manifest meta.yml for completeness
The generate assembly manifest snapshot still has the old snapshot with previous uploader version also.. is this normal to keep?

@ochkalova ochkalova left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, my main concern is a name for library_strategy input. In ENA terms it's usually the way to describe library prep protocol. Like HiC, WGS, WGA etc
I would rename it to library_source

Comment thread assets/schema_input_assembly.json Outdated
Comment on lines +95 to +102
},
"library_strategy": {
"type": "string",
"enum": ["metagenome", "metatranscriptome"],
"errorMessage": "Assembly library strategy should be metagenome or metatranscriptome",
"description": "Assembly library strategy: metagenome or metatranscriptome. Default: metagenome",
"default": "metagenome",
"meta": ["library_strategy"]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mode name "metagenomic_assembly" becomes a bit confusing with this change 🤔
Maybe we will have to rename it? But I don't see any good options :sad:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

metaomics...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or just assembly

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's leave it like this until somebody will raise it
It's fine 🥴

Comment thread assets/schema_input_assembly.json Resolved
Comment thread conf/modules.config Resolved
Comment thread CHANGELOG.md Resolved
Comment thread CHANGELOG.md Resolved
@KateSakharova
KateSakharova merged commit 71a9f45 into dev Oct 19, 2026
21 checks passed
@KateSakharova
KateSakharova deleted the feature/metat-support branch October 19, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants