Skip to main content

Evaluation Protocols for Perturbation Studies: per-metric DRF/BDS calibration on a single preprocessed dataset.

Project description

scPertEval

scPertEval — Evaluation Protocols for Perturbation Sequencing

Paper Stars PyPI PyPI Downloads Docs Lint Test Build

scPertEval is a toolkit for experimenting with and sharing reference implementations of evaluation protocols in single-cell perturbation studies, usable both as a command-line interface and as a native Python API. The same catalog of protocols backs three actions: score (score a model's predictions against ground truth), calibrate (calibrate a protocol against empirical positive/negative controls per perturbation, reporting the Dynamic Range Fraction (DRF) and Bound Discrimination Score (BDS)), and de (export per-gene differential expression).

scPertEval is introduced in Towards Principled Evaluation of Single-Cell Perturbation Prediction Models, where we develop a taxonomy of evaluation protocols — decomposing them into representation, metric, score transformation, and reporting strategy — and use this package to assess protocol behavior across seven public perturbation datasets.

Schäfer, P. S. L., Reid, K. A., Boldyga, Z., Aksu, E. D., Hakem, H., & Saez-Rodriguez, J. (2026). Towards Principled Evaluation of Single-Cell Perturbation Prediction Models. bioRxiv. https://doi.org/10.64898/2026.07.23.740433

If you use scPertEval in your work, please cite that paper (see CITATION.cff).

→ Full documentation at https://scperteval.readthedocs.io/

Install

pip install scperteval

Or from this repo:

pip install "scperteval @ git+https://github.com/Virtual-Cell-Research-Community/scPertEval.git"

The Sinkhorn / optimal-transport metrics (the sinkhorn_w2_* protocols) need PyTorch and GeomLoss, which are optional to keep the base install light. Enable them with the sinkhorn extra:

pip install "scperteval[sinkhorn]"

Quick start

From the command line:

# calibrate protocols against built-in controls (DRF/BDS)
scperteval calibrate data/wessels23.h5ad -p all --de-method t-test

# score a model's predictions against ground truth
scperteval score data/wessels23.h5ad predictions.h5ad -p all

scperteval list protocols   # also: de-methods | spaces | sources | calibrators

Or from Python — the same protocols, returning results in memory (see the Python API guide):

import scperteval as sp

prep = sp.prepare("data/wessels23.h5ad", "pearson_ctrl")  # read + index once, reusable
result = sp.calibrate(prep, "pearson_ctrl", de_method="t-test")
result.aggregate  # {"mean": …, "median": …} — calibrated DRF summary
result.per_perturbation  # the per-perturbation detail table

Sample datasets are available at https://storage.googleapis.com/scperteval/processed/<dataset>_processed_complete.h5ad.


Citation

If you use scPertEval, please cite the paper it accompanies:

@article{Schafer_2026_scPertEval,
  author  = {Sch{\"a}fer, Philipp S. L. and Reid, Kendall A. and Boldyga, Zach and
             Aksu, Ekin D. and Hakem, Hugo and Saez-Rodriguez, Julio},
  title   = {Towards Principled Evaluation of Single-Cell Perturbation Prediction Models},
  journal = {bioRxiv},
  year    = {2026},
  doi     = {10.64898/2026.07.23.740433},
}

Authors

scPertEval originates with the authors of that paper — Philipp S. L. Schäfer, Kendall A. Reid, Zach Boldyga, Ekin D. Aksu, Hugo Hakem, and Julio Saez-Rodriguez — and is maintained as a community project under the Virtual Cell Research Community.

Contributing: see CONTRIBUTORS.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scperteval-0.1.0.tar.gz (129.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scperteval-0.1.0-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

Details for the file scperteval-0.1.0.tar.gz.

File metadata

  • Download URL: scperteval-0.1.0.tar.gz
  • Upload date:
  • Size: 129.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scperteval-0.1.0.tar.gz
Algorithm Hash digest
SHA256 50a67c7c7cdcaa6615fe11301dd2044032696153c869acf41df15a2ce0965136
MD5 9117ac986a161af90f1d0343587ffe7d
BLAKE2b-256 dcc27dc2e36ab6043fe5b4958403366a4718370feb19af2c515324d91ac724bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for scperteval-0.1.0.tar.gz:

Publisher: release.yaml on Virtual-Cell-Research-Community/scPertEval

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scperteval-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: scperteval-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scperteval-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d1f13c8364087f40dfcf359dc7a07862e859a3c0a0d9a05f6a9c919c53a7b75
MD5 3a765944a5f0008b6da0c92e2bbea9aa
BLAKE2b-256 1f54b2ed6c4bd505694f15f53a86a6abb3935adcf32faa6a18f6ca8adec5645d

See more details on using hashes here.

Provenance

The following attestation bundles were made for scperteval-0.1.0-py3-none-any.whl:

Publisher: release.yaml on Virtual-Cell-Research-Community/scPertEval

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page