anndata - Annotated data
anndata is a Python package for handling annotated data matrices in memory and on disk, positioned between pandas and xarray. anndata offers a broad range of computationally efficient features including, among others, sparse data support, lazy operations, and a PyTorch interface.
Discuss development on GitHub.
Read the documentation.
Ask questions on the scverse Discourse.
pip install anndataor
conda install anndata -c conda-forge.
See Scanpy’s documentation for usage related to single cell data. anndata was initially built for Scanpy.
If you use
anndata in your work, please cite the
anndata pre-print as follows:
anndata: Annotated data
Isaac Virshup, Sergei Rybakov, Fabian J. Theis, Philipp Angerer, F. Alexander Wolf
bioRxiv 2021 Dec 19. doi: 10.1101/2021.12.16.473007.
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. 2022 Apr 10. doi: 10.1038/s41587-023-01733-8.
Muon paper published 2022-02-02
Muon has been published in Genome Biology [^cite_bredikhin22].
Muon is a framework for multimodal data built on top of
COVID-19 datasets distributed as
In a joint initiative, the Wellcome Sanger Institute, the Human Cell Atlas, and the CZI distribute datasets related to COVID-19 via anndata’s
h5ad files: covid19cellatlas.org.
Added experimental support for dask arrays #813 @syelman @rahulbshrestha
unscan now hold AwkwardArrays #647 @giovp, @grst, @ivirshup
Added experimental functions
anndata.experimental.write_dispatched()which allow customizing IO with a callback #873 @ilan-gold @ivirshup
Better error messages during IO #734 @flying-sheep, @ivirshup
Unordered categorical columns are no longer cast to object during
New tutorials for experimental features
File format description now includes a more formal specification #882 @ivirshup
Interoperability: new page on interoperability with other packages #831 @ivirshup
Expanded docstring more documentation for
Documented how to use alternative compression methods for the
h5adfile format, see
dtypeargument no longer defaults to
AnnData.write_h5ad()has been removed. #855 @ivirshup
Previously deprecated behaviour around storing adjacency matrices in
unshas been removed #866 @ivirshup
AnnData.concatenate()is now deprecated in favour of
Fixed order dependent outer concatenation bug #904 @ivirshup, reported by @szalata
Fixed bug in renaming categories #790 @ivirshup, reported by @perrin-isir
Fixed IO bug when keys in
_categories#806 @ivirshup, reported by @Hrovatin
obsaligned values when
rawwas assigned through the setter #939 @ivirshup
0.8.1 the future
Fix warning from
rename_categories#790 I Virshup
Remove backwards compat checks for categories in
unswhen we can tell the file is new enough #790 I Virshup
Categorical arrays are now created with a python
boolinstead of a
0.8.0 14th March, 2022
The on disk format of AnnData objects has been updated with this release.
Previous releases of
anndata will not be able to read all files written by this version.
For discussion of possible future solutions to this issue, see #698
Internal handling of IO has been overhauled.
This should make it much easier to support new datatypes, use partial access, and use
AnnData internally in other formats.
Each element should be tagged with an
encoding_version. See updated docs on the file format
Support for nullable integer and boolean data arrays. More data types to come!
Experimental support for low level access to the IO API via
Added PyTorch dataloader
AnnLoaderand lazy concatenation object
AnnCollection. See the tutorials #416 S Rybakov
h5adfiles written from Julia #569 I Kats
Many logging messages that should have been warnings are now warnings #650 I Virshup
Significantly more efficient
anndata.read_umi_tools()#661 I Virshup
Fixed deepcopy of a copy of a view retaining sparse matrix view mixin type #670 M Klein
In many cases
Xcan now be
None#463 R Cannoodt #677 I Virshup. Remaining work is documented in #467.
xlrddependency I Virshup
vardataframes are no longer copied by default on
AnnDatainstantiation #371 I Virshup
Fixed issue where
.copywas creating sparse matrices views when copying #670 michalk8
Fixed issue where
.Xmatrix read in from
zarrwould always have
float32values #701 I Virshup
obspin the output #404 G Eraslan
xlrddropped as a hard dependency