Changelog

v1.0.0 (2026)

Major refactor and first stable release.

  • Pluggable co-expression targets: MI, Pearson, Spearman, Jaccard, cosine, and custom callables

  • MI backend dispatch: automatic selection from Rust > Numba > NumPy, with GPU (CUDA) support

  • Rust backend: PyO3 + rayon for native parallel MI computation

  • Score caching: computed targets cached to ~/.genevector/cache/ with hash-based keys

  • Graph-aware targets: graph_xcorr for cross-correlation on any graph (spatial, TCR, custom)

  • Aggregation registry: composable graph aggregations (mean, with more planned)

  • Vectorized tensor construction: replaced O(G²) Python loop with numpy meshgrid

  • NaN handling: corrcoef results sanitized across all backends

  • GPU float32: MPS compatibility for Apple Silicon

  • CI/CD: GitHub Actions for testing (Python 3.9-3.12) and automated PyPI releases

  • Documentation: Sphinx with Monokai theme, full API docs, NumPy-style docstrings

v0.3.0

  • Added signed MI (directional co-expression)

  • PyPI packaging with setuptools

v0.2.0

  • Initial public release

  • Mutual information computation

  • Gene and cell embeddings

  • Cell type annotation via phenotype_probability