Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.6.0 (unreleased)#

0.5.10 (2025-XX-XX)#

Added#

Change#

Fixed#

  • Fix LISI KNN neighbor count to match harmonypy C++ backend (≥0.0.10 and v2): strip self from pre-computed KNN so perplexity×3 true neighbors are used, consistent with harmonypy’s internal KDTree which excludes self, #266.

0.5.9 (2025-02-26)#

Added#

Change#

  • Change kbet calculation to work with new numpy version, #254.

Fixed#

0.5.8 (2025-02-06)#

Added#

  • Add set seed if using Leiden, #240.

Changed#

Fixed#

0.5.7 (2025-09-14)#

Added#

  • Add added solver selection to benchmarker for arpack stability issues #229.

  • Add support for Python 3.13 and removed support for 3.10 #229.

Changed#

Fixed#

0.5.6 (2025-07-08)#

Added#

  • Add BRAS to Benchmarker as default, instead of regular silhouette batch #217

  • Added the option to manually set the KNN graphs before running a benchmarker.

Changed#

  • Changed default of min_max_scale in scib_metrics.benchmark.get_results() to False #215.

Fixed#

  • Reverted Skip labels before loop #180, which caused wrong selection of clusters #213.

0.5.5 (2025-06-03)#

Added#

  • Add batch removal adapted silhouette (BRAS) metric (scib_metrics.metrics.bras()) #197, which addresses limitations of silhouette for scoring batch effect removal.

  • Add cosine distance implementation required for BRAS.

Changed#

  • Changed scib_metrics.utils.cdist() to support cosine distance.

  • Changed silhouette-related functions to be compatible with adaptions required for BRAS.

0.5.4 (2025-04-23)#

Fixed#

  • Apply default values for benchmarker metrics #203.

0.5.3 (2025-02-17)#

Removed#

  • Reverted a change that was needed for scib-autotune in scvi-tools #189.

0.5.2 (2025-02-13)#

Added#

Changed#

  • Changed Leiden clustering now has a seed argument for reproducibility #173.

  • Changed passing None to bio_conservation_metrics or batch_correction_metrics in scib_metrics.benchmark.Benchmarker now implies to skip this set of metrics #181.

Fixed#

  • Fix neighbors connectivities in test to use new scanpy fn #170.

  • Fix Kmeans test #172.

  • Fix deprecation and future warnings #171.

  • Fix lisi return type and docstring #182.

0.5.1 (2024-02-23)#

Changed#

0.5.0 (2024-01-04)#

Changed#

  • Refactor all relevant metrics to use NeighborsResults as input instead of sparse distance/connectivity matrices #129.

0.4.1 (2023-10-08)#

Fixed#

  • Fix KMeans. All previous versions had a bug with KMeans and ARI/NMI metrics are not reliable with this clustering #115.

0.4.0 (2023-09-19)#

Added#

  • Update isolated labels to use newest scib methodology #108.

Fixed#

  • Fix jax one-hot error #107.

Removed#

  • Drop Python 3.8 #107.

0.3.3 (2023-03-29)#

Fixed#

  • Large scale tutorial now properly uses gpu index #92

0.3.2 (2023-03-13)#

Changed#

  • Switch to Ruff for linting/formatting #87

  • Update cookiecutter template #88

0.3.1 (2023-02-16)#

Changed#

  • Expose chunk size for silhouette #82

0.3.0 (2023-02-16)#

Changed#

  • Rename KmeansJax to Kmeans and fix ++ initialization, use Kmeans as default in benchmarker instead of Leiden #81.

  • Warn about joblib, add progress bar postfix str #80

0.2.0 (2023-02-02)#

Added#

  • Allow custom nearest neighbors methods in Benchmarker #78.

0.1.1 (2023-01-04)#

Added#

  • Add new tutorial and fix scalability of lisi #71.

0.1.0 (2023-01-03)#

Added#

  • Add benchmarking pipeline with plotting #52 #69.

Fixed#

  • Fix diffusion distance computation, affecting kbet #70.

0.0.9 (2022-12-16)#

Added#

  • Add kbet #60.

  • Add graph connectivty metric #61.

0.0.8 (2022-11-18)#

Changed#

  • Switch to random kmeans initialization due to kmeans++ complexity issues #54.

Fixed#

  • Begin fixes to make kmeans++ initialization faster #49.

0.0.7 (2022-10-31)#

Changed#

  • Move PCR to utils module in favor of PCR comparison #46.

Fixed#

  • Fix memory issue in KMeansJax by using _kmeans_full_run with map instead of vmap #45.

0.0.6 (2022-10-25)#

Changed#

  • Reimplement silhouette in a memory constant way, pdist using lax scan #42.

0.0.5 (2022-10-24)#

Added#

  • Standardize language of docstring #30.

  • Use K-means++ initialization #23.

  • Add pc regression and pc comparsion #16 #38.

  • Lax’d silhouette #33.

  • Cookicutter template sync #35.

0.0.4 (2022-10-10)#

Added#

  • NMI/ARI metric with Leiden clustering resolution optimization #24.

  • iLISI/cLISI metrics #20.

0.0.1 - 0.0.3#

See the [GitHub releases][https://github.com/yoseflab/scib-metrics/releases] for details.