Skip to main content
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.

Release files for scperteval 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scperteval 0.2.0
File Size Uploaded
scperteval-0.2.0.tar.gz 4.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for scperteval 0.2.0
File Interpreter ABI Platform
scperteval-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.5 MB

Release files / scperteval-0.2.0.tar.gz

Download URL scperteval-0.2.0.tar.gz
Size 4.5 MB
Tags Source
SHA-256 checksum
How to use checksums
ab5791623116c3afd70517c57958b5e2362fde45cab5c6c309fe9b6b79a3bfa6
BLAKE2b-256 checksum
How to use checksums
0f969daf2063c609cbf1c8805600ca69e048fc0646e1e2d5abe0bfe543027ba4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / scperteval-0.2.0-py3-none-any.whl

Download URL scperteval-0.2.0-py3-none-any.whl
Size 66.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60a8c07cbea6b3f90bbefa886d8362b119d8a918d3e111c3bc33431123da3dd7
BLAKE2b-256 checksum
How to use checksums
f851f135d04387b335731356264996e2055fdfedc3b318f9fe8c2bcbdf3cb441
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page