Skip to content

v0.18.0 — DE tables from score_cellstream, and bundles that survive a release

Choose a tag to compare

@alexdobin alexdobin released this 01 Oct 23:37

Install

pip install -U cell-eval2

Requires Python 3.11+. The extras are unchanged since 0.16.0: [gpu], [gpudge], [scale].

Scoring is unchanged

rule_version stays 3, and the competition rule digest is bit-identical to 0.16.0's. No scored number moves.

A release no longer invalidates a validation bundle. cell_eval2_version is now recorded in every artifact and no longer compared on the bundle path, so bundles built under rule_version 3 — at 0.15.0 or 0.16.0 — score under 0.18.0. The stamp is still validated: a missing, empty or non-string value fails closed. The rule itself is still enforced: a bundle built under a different rule_version is refused, as before. BREAKING for direct callers only: AnchorExpect loses its version field. The loose --baseline-agg path still compares the version, and the comparison can still be waived.

Added

  • score_cellstream(..., write_de=True) writes the gene-level DE tables, de_real.parquet and de_pred.parquet, next to the score frames. It is off by default and requires outdir. It uses the same writer as the in-memory --write-degenes path, so both paths emit one schema.
  • The jackknife's per-gene decomposition, opt-in (per_gene_jk=True). Nothing requests it by default, and the scalar correction is bit-identical whichever route builds it.

Fixed

  • With control_source="real" on a CPU DE backend, a duplicated gene axis is now refused with a ValueError naming the duplicated labels. Before, the error type depended on the installed anndata: 0.13.3 raises pandas.errors.InvalidIndexError where 0.13.2 raised ValueError.

Why there is no 0.17.0

The development tree carried the version 0.17.0 for several weeks before this release. Builds from it stamped that number, even though they lacked some of these changes. The release therefore takes 0.18.0, so that no unreleased build shares its number. An artifact stamped 0.17.0 came from an unreleased development build.

Credits

Chris Carpenter (@cachris1) reported the missing DE-table export from score_cellstream and contributed the fix. Nick Youngblut (@nick-youngblut) wrote the duplicated-gene-axis guard.

Note on issue numbers

Issue and pull-request numbers in CHANGELOG.md refer to the internal development repository this tree was copied from, not to this one.