GitPedia

Scanpy

Single-cell analysis in Python. Scales to >100M cells.

From scverse·Updated June 15, 2026·View on GitHub·

Scanpy is a scalable toolkit for analyzing single-cell gene expression data built jointly with [anndata][]. It includes preprocessing, visualization, clustering, trajectory inference and differential expression testing. The Python-based implementation efficiently deals with datasets of more than one million cells. For datasets too large to fit into memory, [many scanpy functions][] are now compatible with [dask][] (**warning: experimental**). The project is written primarily in Python, distributed under the BSD 3-Clause "New" or "Revised" License license, first published in 2017. It has gained significant community traction with 2,490 stars and 750 forks on GitHub. Key topics include: anndata, bioinformatics, data-science, machine-learning, python.

Latest release: 1.12.1
April 10, 2026View Changelog →

Stars
PyPI
PyPI Downloads
Conda Forge
Conda Forge Downloads

Docs
CI
Discourse topics
Chat
Powered by NumFOCUS

Scanpy – Single-Cell Analysis in Python

Scanpy is a scalable toolkit for analyzing single-cell gene expression data built jointly with anndata.
It includes preprocessing, visualization, clustering, trajectory inference and differential expression testing.
The Python-based implementation efficiently deals with datasets of more than one million cells.
For datasets too large to fit into memory, many scanpy functions are now compatible with dask (warning: experimental).

Discuss usage on the scverse Discourse. Read the documentation.
If you'd like to contribute by opening an issue or creating a pull request, please take a look at our contribution guide.

scanpy is part of the scverse® project (website, governance) and is fiscally sponsored by NumFOCUS.
If you like scverse® and want to support our mission, please consider making a tax-deductible donation to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.

<div align="center"> <a href="https://numfocus.org/project/scverse"> <img src="https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png" width="200" > </a> </div>

Public API

Our public API is documented in the API section of these docs.
We cannot guarantee the stability of our internal APIs, whether it's the location of a function, its arguments, or something else.
In other words, we do not officially support (or encourage users to do) something like from scanpy.logging import debug as logging is not documented, even though it does not contain a leading underscore.
However, we are aware that many users do use these internal APIs and thus encourage them to open an issue or migrate to the public API.
That is, if something is missing from our public API as documented, for example a feature you wish to be exported publicly, please open an issue.

Citation

If you use scanpy in your work, please cite the scanpy publication as follows:

SCANPY: large-scale single-cell gene expression data analysis

F. Alexander Wolf, Philipp Angerer, Fabian J. Theis

Genome Biology 2018 Feb 06. doi: 10.1186/s13059-017-1382-0.

You can cite the scverse publication as follows:

The scverse project provides a computational ecosystem for single-cell omics data analysis

Isaac Virshup, Danila Bredikhin, Lukas Heumos, Giovanni Palla, Gregor Sturm, Adam Gayoso, Ilia Kats, Mikaela Koutrouli, Scverse Community, Bonnie Berger, Dana Pe’er, Aviv Regev, Sarah A. Teichmann, Francesca Finotello, F. Alexander Wolf, Nir Yosef, Oliver Stegle & Fabian J. Theis

Nat Biotechnol. 2023 Apr 10. doi: 10.1038/s41587-023-01733-8.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from scverse/scanpy via the GitHub API.Last fetched: 6/15/2026