Skip to content

release(0.2.0): scmidas.integrate() + bundled quickstart + Colab notebook#32

Merged
zhen-he merged 1 commit into
mainfrom
release/0.2.0
May 3, 2026
Merged

release(0.2.0): scmidas.integrate() + bundled quickstart + Colab notebook#32
zhen-he merged 1 commit into
mainfrom
release/0.2.0

Conversation

@zhen-he

@zhen-he zhen-he commented May 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

User-facing UX overhaul: a 2.66 MB toy MuData ships inside the wheel, a top-level scmidas.integrate(mdata) wrapper trains it in ~1 min on a mid-range GPU, and the README has a runnable five-line quickstart with rendered UMAP image. An Open in Colab badge points at a pre-executed examples/quickstart.ipynb so prospective users can try MIDAS without installing.

Closes the ... placeholder problem in the previous Quick start.

Changes

New

  • scmidas.integrate(mdata) — toy-tuned one-line wrapper around MIDAS.configure_data_from_mdata + train(). Defaults (batch_size=128, max_epochs=65, lr=3e-4) are loud about being toy-only; docstring + README warn to override max_epochs (1000-2000) and batch_size (256) for real data.
  • scmidas.datasets.quickstart() — load the bundled 1600-cell PBMC RNA+ADT mosaic MuData. 4 batches with full mosaic structure (1 RNA-only + 1 ADT-only + 2 paired), 500 HVGs + 224 ADT features.
  • src/scmidas/data/quickstart_pbmc_mosaic.h5mu — bundled wheel data (2.66 MB).
  • examples/quickstart.ipynb — pre-rendered notebook (five cells, UMAP output saved). Linked from README via Open in Colab badge.
  • scripts/build_quickstart_demo.py — reproducible build script for the bundled dataset.

Changed

  • README Quick start rewritten — replaces ... placeholders with the runnable five-line snippet, embeds the rendered UMAP, and adds an explicit toy-data warning.
  • README badges row gains Open in Colab.
  • pyproject.toml: scmidas package-data now includes data/*.h5mu. Bumps version to 0.2.0.
  • .gitignore: whitelists docs/source/_static/img/*.png so the new UMAP screenshot can be tracked despite the global *.png rule.

Folded in (was unreleased on main)

  • Library-logging refactor: 5 modules (config, data, model, nn, utils) drop logging.basicConfig(level=INFO) and adopt module-level logger = logging.getLogger(__name__). Demo notebooks call basicConfig themselves so user-visible output is unchanged.

Test plan

  • pytest tests/ 37/37 pass locally
  • scmidas.integrate(scmidas.datasets.quickstart()) end-to-end: 60.8s on V100, UMAP shows clean lineage separation + batch mixing
  • examples/quickstart.ipynb executes via jupyter nbconvert --execute with the same cell graph
  • CI matrix green (torch 2.5 × py3.10/3.11/3.12, torch 2.8 × py3.12, torch 2.10 × py3.12)
  • Post-merge: Colab badge actually opens the notebook

…book

User-facing entry point overhaul focused on first-impression UX. The
previous Quick start in the README was an API sketch with `...`
placeholders that nobody could paste-run; new users had to read the
full demo2 tutorial before their first MIDAS run.

This release bundles a 2.66 MB toy MuData (1600 cells, RNA+ADT mosaic,
hand-tuned subset of wnn_mosaic_8batch_mtx) inside the wheel, plus a
top-level `scmidas.integrate(mdata)` wrapper with hyperparameters
(batch_size=128, max_epochs=65, lr=3e-4) tuned to converge on that toy
dataset in about a minute on a mid-range GPU. The README quickstart is
now five runnable lines plus a rendered UMAP image; an `Open in Colab`
badge points at a pre-executed `examples/quickstart.ipynb` so users
can try MIDAS without installing anything locally.

The new defaults are loud about their toy-tuned scope — both the
docstring `.. warning::` block and the README explicitly say to
override `max_epochs` (1000-2000) and `batch_size` (256) for real data.

Also folds in the unreleased library-logging refactor (5 modules drop
`logging.basicConfig` for module-level `getLogger(__name__)`) that has
been on `main` since 4e75e4e.
@zhen-he zhen-he merged commit 37a5688 into main May 3, 2026
5 checks passed
@zhen-he zhen-he deleted the release/0.2.0 branch May 3, 2026 06:41
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