Skip to content

0.12.0b6

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Jul 18:33
· 6 commits to main since this release

Release Notes - InSituPy 0.12.0b6

PyPI: pip install insitupy-spatial==0.12.0b6


Summary

Multi-unit-layer support for the napari viewer, several data-integrity fixes, and a fail-fast
guard against accidentally re-constructing an InSituData on top of an already-saved project.


New Features

  • Multiple named spatial units layers - InSituData.units now holds a
    MultiSpatialUnitsData container, so a sample can carry more than one units layer (e.g.
    Visium spots and niches) via add_units(data, key=...); crop() now crops all of them.
  • napari viewer - units layer selector to switch between multiple unit keys; searchable
    type-ahead on the cells/units key fields; "Show" buttons gated on a valid selection.

Bug Fixes

  • Fixed InSituData(path) silently fabricating a new UID on a saved-project path; now raises InSituDataConstructorPathError pointing at InSituData.read().
  • Fixed cells/units shifting relative to the image after crop-by-region (negative shape bounds weren't clamped).
  • Fixed build_table()/to_anndata() silently dropping a sample when two samples shared a label_col value.
  • Hardened autodetect_obs_names matching so it no longer truncates barcodes or fails on concat_on_disk output.
  • Fixed InSituExperiment subsetting inconsistency: __getitem__/query() now always return a view, and .filters.apply() now actually deep-copies.
  • Fixed the napari transcript viewer's thread-race IndexError and a point-size inconsistency.
  • Fixed a zoom-out border artifact on cells-as-points and Transcripts layers (napari 0.7 default).
  • Fixed cell/nucleus label mis-coloring in the napari viewer after filtering without sync().
  • Fixed a hidden units layer staying hidden after re-selecting its key.
  • Fixed two bugs in the units save/load path (missing attribute; mismatched on-disk format).

Breaking Changes

  • build_table()/to_anndata() unique-obs_names shape unified: both methods now append the uid ("{name}-{uid}") instead of in_memory prepending a positional index.
  • import_from_anndata's strip_uid_prefix parameter renamed to autodetect_obs_names (no deprecated alias).

Dependency Changes

  • napari bumped to >=0.7.0,<0.8.0.
  • Python floor raised to >=3.12.0,<4.0 (required by zarr>=3.2.1).

Internal

  • Stopped tracking .mcp.json; documented self-serve MCP client setup for contributors.
  • Revised the MCP Server tutorial; synced its Python version reference to 3.13.

Full Changelog: 0.12.0b5...0.12.0b6