scanpy 1.12
Single-Cell Analysis in Python.
Requires Python: >=3.12

[![Stars](https://img.shields.io/github/stars/scverse/scanpy?style=flat&logo=GitHub&color=yellow)](https://github.com/scverse/scanpy/stargazers)
[![PyPI](https://img.shields.io/pypi/v/scanpy)](https://pypi.org/project/scanpy)
[![PyPI Downloads](https://img.shields.io/pepy/dt/scanpy?logo=pypi)](https://pepy.tech/project/scanpy)
[![Conda Forge](https://img.shields.io/conda/vn/conda-forge/scanpy)
![Conda Forge Downloads](https://img.shields.io/conda/dn/conda-forge/scanpy?logo=condaforge)](https://anaconda.org/conda-forge/scanpy)
[![Docs](https://readthedocs.com/projects/icb-scanpy/badge/?version=latest)](https://scanpy.readthedocs.io)
[![CI](https://github.com/scverse/scanpy/actions/workflows/ci.yml/badge.svg)](https://github.com/scverse/scanpy/actions/workflows/ci.yml)
[![Discourse topics](https://img.shields.io/discourse/posts?color=yellow&logo=discourse&server=https%3A%2F%2Fdiscourse.scverse.org)](https://discourse.scverse.org/)
[![Chat](https://img.shields.io/badge/zulip-join_chat-%2367b08f.svg)](https://scverse.zulipchat.com)
[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org/)

# 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][].

[anndata]: https://anndata.readthedocs.io
[dask]: https://docs.dask.org/en/stable/
[discourse]: https://discourse.scverse.org/
[documentation]: https://scanpy.readthedocs.io
[many scanpy functions]: https://github.com/scverse/scanpy/issues/2578

[//]: # (numfocus-fiscal-sponsor-attribution)

scanpy is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
If you like scverse® and want to support our mission, please consider making a tax-deductible [donation](https://numfocus.org/donate-to-scverse) 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.

[api section]: https://scanpy.readthedocs.io/en/stable/api.html
[leading underscore]: https://peps.python.org/pep-0008/#public-and-internal-interfaces
[open an issue]: https://github.com/scverse/scanpy/issues/new/choose



## 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](https://doi.org/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](https://doi.org/10.1038/s41587-023-01733-8).


[contribution guide]: CONTRIBUTING.md