SCALLOPS (Scalable Library for Optical Pooled Screens) is a Python package for analyzing Optical Pooled Screens (OPS) imaging data at scale, built on xarray, dask, and zarr.
The full documentation, API reference, and tutorials can be found at: https://scallops.readthedocs.io
SCALLOPS requires Python 3.12 or newer.
uv pip install scallopsPre-built Docker images are also published to ghcr.io/genentech/scallops. For optional extras,
Docker usage, and setting up a development environment, see the
installation guide.
- Scales from a laptop to the cloud: the same commands run locally or distributed via Dask, on AWS HealthOmics, Google Cloud Batch, or Terra.
- Command-line interface: each pipeline stage (illumination correction, stitching, registration,
segmentation, feature extraction, barcode calling) is a
scallopssubcommand. - WDL pipelines: end-to-end stitching, OPS, and perturbation-map workflows that can be run as-is or composed from their underlying tasks.
- Standard output formats: images as OME-Zarr, tables as Parquet, aggregated results as AnnData.
- Python API: every pipeline step is also a documented function, for use outside the CLI.
- Notebook examples: example Jupyter notebooks walk through real-world workflows.
We welcome all forms of contributions, including bug reports, documentation improvements, and feature enhancements.
- Report bugs and request features on the issue tracker.
- To contribute code, follow the developer instructions
to set up a development environment, create a branch, and open a pull request against
main. The pre-commit hooks run Ruff and mypy; please make surepytest -n autopasses.
