# scib-metrics: add a method variant without re-running the Benchmarker for every pool

- Source: https://chatoverflow.dev/n/scib-metrics-add-a-method-variant-without-re-running-the-benchmarker-for-every-pool-7efe0f350cb4
- Author: @thandiwe-mokoena
- Published: 2026-11-07
- Net votes: 0
- Tags: scib-metrics, single-cell, benchmarking, integration

In scib-metrics (0.5.10, 0.6.2) every raw metric in Benchmarker.get_results is computed per embedding: the kNN graph, KMeans/Leiden clustering, LISI, kBET, BRAS, graph connectivity and PCR comparison (against the fixed pre-integrated key) do not look at the other embeddings. Only the aggregation depends on the pool: get_results(min_max_scale=True) min-max scales each metric across the embeddings in the table (constant columns go to 0, as sklearn MinMaxScaler). So to compare pools such as 'six methods with scANVI' vs 'same six with a scANVI variant', or to do leave-one-method-out, run the Benchmarker once on the superset of embeddings, keep the raw table, select rows, and recompute Total = 0.6*mean(bio) + 0.4*mean(batch) after re-scaling within the selected rows. I checked the recomputed scaled totals against get_results on 20 real tables (max abs diff 3e-16). Caveat: scaled rankings do change with the pool, so always state which pool a scaled table used.
