Skip to content

Retain the SCVI model across SOLO batches - #370

Merged
nictru merged 3 commits into
devfrom
fix/solo-batch-model
Oct 26, 2026
Merged

nictru merged 3 commits into
devfrom
fix/solo-batch-model

Conversation

@nictru

@nictru nictru commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Keep the trained SCVI model available while fitting a separate SOLO model for each batch.

- model = SCVI(...)
- model = SOLO.from_scvi_model(model, ...)
+ scvi_model = SCVI(...)
+ solo_model = SOLO.from_scvi_model(scvi_model, ...)

Retain the interim template-only patch while the upstream repair remains open.

Evidence

  • Before: multi-batch execution replaces the SCVI model with the first SOLO model and fails on the second batch.
  • After: every batch receives the same trained SCVI model. Existing nf-test coverage runs the production doublet-detection subworkflow across actual batches and checks cell order, batch labels and complete Boolean predictions. No custom Python test code or test-only workflows are used.
  • Merged dev at 52f300d2. Regenerated the cumulative SOLO patch with nf-core/tools 4.1.0, preserving the incoming gzip output change. The patch passes git apply --reverse --check -p0. No process interface, dependency or scientific setting changed.
  • Staged prek and commit hooks passed at 344acd71, without autoformatting. Existing generated snapshots remain unchanged. No documentation diff remains.
  • Earlier revisions passed 5 doublet-detection tests and 22 Docker pipeline tests; the upstream SOLO suite passed 5 tests with Apptainer. Those results predate this merge and do not validate the current head. Current-head runtime validation and full lint are delegated to CI.
  • Previous stock module lint reported a tools defect when handling template-only patches. A scratch-only diagnostic correction passed 52 checks with two warnings on unchanged metadata. This is not a stock-linter pass, and no linter changes or exemptions are included here.

Merge Danger

Door: two-way. No output schema or dependency change.

Blast Radius: doublets. Multi-batch inputs retain the SCVI model throughout SOLO prediction. The cumulative managed-module patch contains both this fix and the existing gzip change.

Generated by GPT-6.1 Sol

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • Make sure your code lints (nf-core pipelines lint). Current-head CI pending.
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>). Current-head runtime validation delegated to CI.
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • CHANGELOG.md is updated.

Use separate SCVI and per-batch SOLO instances. Record the interim managed-module template patch through nf-core tools and verify complete Boolean predictions across actual batches. Document the architecture-dependent local logo lint exception without changing images.

Generated by GPT-6.1 Sol
@github-actions

Copy link
Copy Markdown

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 4.1.0.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the Synchronisation documentation.

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

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

Posted for pipeline commit 344acd7

+| ✅ 329 tests passed       |+
#| ❔   3 tests were ignored |#
!| ❗   8 tests had warnings |!
Details

❗ Test warnings:

  • files_exist - File not found: conf/igenomes.config
  • files_exist - File not found: conf/igenomes_ignored.config
  • readme - README contains the placeholder zenodo.XXXXXXX. This should be replaced with the zenodo doi (after the first release).
  • pipeline_todos - TODO string in CHANGELOG.md: ## v0.0.1dev - [unreleased replace with date on 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 awsfulltest.yml: You can customise AWS full pipeline tests as required
  • pipeline_todos - TODO string in base.config: Check the defaults for all processes
  • pipeline_todos - TODO string in base.config: Customise requirements for specific processes.

❔ Tests ignored:

  • files_exist - File is ignored: .github/workflows/linting_comment.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/branch.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/linting.yml

✅ Tests passed:

Run details

  • nf-core/tools version 4.1.0
  • Run at 2026-10-26 11:36:21

Preserve gzip output alongside the retained SCVI model. Regenerate the managed-module patch with nf-core/tools 4.1.0 and verify that it reverses cleanly. Retain the existing nf-test regression and generated snapshot without changes.

Generated by GPT-6.1 Sol
@nictru
nictru marked this pull request as ready for review October 26, 2026 11:38
@nictru
nictru merged commit e71e9f0 into dev Oct 26, 2026
8 checks passed
@nictru
nictru deleted the fix/solo-batch-model branch October 26, 2026 11:38
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.

1 participant