What's Changed
- docs(readme): update published tools table by @mengxu98 in #841
- fix(space): enable GPU defaults for cell2location by @mengxu98 in #846
- fix(single): validate cNMF result mapping by @mengxu98 in #850
- feat(pp): expose high-expression exclusion in preprocess by @mengxu98 in #852
- fix(pyscenic): expose faster binarization options by @mengxu98 in #851
- Fix perturbation Sankey ribbon scaling by @mengxu98 in #857
- Include scMulan metadata file in package builds by @mengxu98 in #858
- fix(wgcna): restore SciPy 1.18 compatibility and serialization by @mengxu98 in #875
- chore(via): remove unused AdjlstGraph import by @mengxu98 in #874
- fix(pl): restore plotting compatibility APIs by @mengxu98 in #870
- fix(pp): filter unsupported RAPIDS UMAP options by @mengxu98 in #872
- fix(genetics): normalize sparse gsMap inputs by @mengxu98 in #873
- fix(bulk2single): repair deconvolution option forwarding by @mengxu98 in #871
- fix(latentvelo): restore preprocessing compatibility by @mengxu98 in #876
- fix(pl): preserve PDF plot layout by @mengxu98 in #882
- fix(pp): coerce Leiden resolution to a scalar float (#877) by @Starlitnightly in #884
- refactor: drop inmoose from milo & pyDEG edgepy (pure-Python pyedger) by @Starlitnightly in #885
- perf(pp): GPU chunked kNN for scdblfinder doublets by @Starlitnightly in #886
- perf(pp): GPU chunked kNN for doubletfinder pANN by @Starlitnightly in #888
- perf(pp): GPU/torch sccomposite post-processing (fixes 1e5-cell OOM) by @Starlitnightly in #889
- fix(pp): qc_gpu final filter uses cells/genes not counts (#862) by @Starlitnightly in #890
- feat(settings): support devices arg in cpu_gpu_mixed_init (#853) by @Starlitnightly in #891
- fix(pp): guard against pyscdblfinder <0.2.0 large-dataset stall (#848) by @Starlitnightly in #892
- feat(single): cross-species integration — orthologs + SAMap + SATURN (#856) by @Starlitnightly in #893
- feat(synbio): add ov.synbio — three-layer synthetic biology module (metabolism / protein·enzyme / DNA) by @Starlitnightly in #887
- feat(single): add CAMEX as a cross-species backend (method='camex') by @Starlitnightly in #894
- feat(pl): display-only clipping (umi_clip_at / gene_clip_at) in ov.pl.qc (#835) by @Starlitnightly in #896
- fix(pp): qc_gpu doublet methods (scdblfinder/etc.) fail on the GPU matrix (#866) by @Starlitnightly in #897
- fix: make FlowSig parallel bootstrapping process-safe by @hurry060215-tech in #878
- fix(space): guard svg(mode='pearsonr') against all-zero spots (#860) by @Starlitnightly in #898
- feat(single): add Seurat-style RPCA integration (methods='rpca') (#883) by @Starlitnightly in #899
- feat(synbio): advanced SOTA expansion — mRNA design, de-novo binders, prime editing, dFBA by @Starlitnightly in #895
- release: omicverse 2.2.4 by @Starlitnightly in #900
Full Changelog: v2.2.3...v2.2.4