PyPI: https://pypi.org/project/omicverse/2.4.3/ · pip install -U omicverse
scanpy is optional
omicverse's own code no longer imports or calls scanpy (~370 calls in 93 files). pip install omicverse does not install it; pip install "omicverse[scanpy]" (or [full]) does. New ov.pp functions with scanpy's outputs — calculate_qc_metrics, score_genes, diffmap, dpt, draw_graph, dendrogram, subsample — plus native regress, louvain, score_genes_cell_cycle, identical to scanpy 1.11.5 on SEA-AD cells (#1069).
AnnData and AnnDataOOM
Every registered function accepts the disk-backed object from ov.read(path, storage='disk'): functions that need the matrix in memory read it in (after a memory check), run, and write their new results back; ov.utils.to_memory() gives a plain AnnData for other tools. get_celltype_marker, space.svg(mode='pearsonr') and pl.markers_dotplot now work on disk-backed data (#1069). ov.read keeps storage='memory' as the default (#1067, #1068).
Fixes
ov.pp.umapoptimises for 500 / 200 epochs like umap-learn and scanpy (the CPU default was 10 / 20) (#1069).anndataoom-fast>=0.1.6: the UMAP layout no longer stalls on small graphs with many threads.ov.pp.leiden(flavor='igraph')matches scanpy for the same seed; CPU-only Leiden arguments work in mixed / GPU mode (#1069, #1070).umap(init_pos='paga'),regress(layer=...), palettes > 28 categories, scFoundation MNN, scGPT preprocessing (#1069);ov.pp.ambientkeeps counts sparse (#1049).
New
ov.bulk.recover_sample_annotationsand helpers (#1050).ov.spacemarker signatures with Cell Ontology lineage markers (#1066).
Documentation
README benchmark (SEA-AD, 1.38M cells) and feature-coverage figures, docs page Feature coverage (#1051–#1065); OpenClaw / MCP / J.A.R.V.I.S. docs moved to OmicClaw (#1057).
Full notes: Release notes (v 2.4.3).