Installation & Setup

This page covers the recommended environment setup for running the benchmark, developing methods, and building the documentation.

Install: pip

If the external dependencies such as pypsupertime or sceptic are not needed, you can install the benchmark with pip as follows:

pip install -e ".[benchmark]"

This installs the benchmark dependencies used for the default pipeline. For method development, install without the extra benchmarking requirements with:

pip install -e .

Additional optional dependency groups are defined in the pyproject.toml file.

Install: UV

The repository also supports uv, which is useful for managing the benchmark and method environments. Install uv and then run:

uv sync

This creates the default environment for running the benchmark code and the shared runners inside scTimeBench.

If you only need a lighter environment, for example for a specific method, you can use:

uv sync --no-dev

For local development or testing, install one or more extra groups as needed:

uv sync --extra test --extra dev --extra benchmark

or:

uv sync --all-extras

Python Version

The project targets Python 3.10. Use:

uv python install 3.10
uv python pin 3.10

before running uv sync.

Repository Layout

  • configs/ contains example benchmark YAML files.

  • docs/source/ contains the documentation source files.

  • extern/ contains vendored external code used by some methods.

  • methods/ contains method wrappers and their setup scripts.

  • src/ contains the scTimeBench package itself.

  • test/ contains the benchmark’s test suite.

Example Run

Run the benchmark with a configuration file such as configs/scNODE/gex.yaml:

scTimeBench --config configs/scNODE/gex.yaml

You can also run the package entrypoint directly:

python src/scTimeBench/main.py --config configs/scNODE/gex.yaml

Contributing

If you want to contribute, install the development and benchmark dependencies with one of the following:

pip install -e ".[dev, benchmark]"

or:

uv sync --extra dev --extra benchmark

To enable the autoformatter and pre-commit hooks, run:

pre-commit install

Testing

Run the benchmark test suite with:

pytest test

from the repository root, or simply run pytest from inside test/.

See the pytest documentation for more information. A useful flag is -s to view full output.