Release notes#
Version 0.13#
0.13.0.dev59+g470db9cc0 2025-10-28#
No significant changes.
Version 0.12#
0.12.3 2025-10-16#
Miscellaneous changes#
Deprecate
AnnData.*_keys()methods. @flying-sheep (#2102)
Bug fixes#
Deprecate
__version__and use standardversion()API @flying-sheep (#1318)Allow writing of views of
dask.array.Array@ilan-gold (#2084)Enable writing of views of
AnnDatain backed mode @ilan-gold (#2092)Reallow writing of keys in
h5adfiles with forward slashes instead of erroring. Now a warning will be raised that the behavior will be disallowed in the future. To enable the new behavior, useanndata.settings.disallow_forward_slash_in_h5ad. @ilan-gold (#2097)Respect off-axis merge options in
anndata.experimental.concat_on_disk()@ilan-gold (#2122)
0.12.2 2025-08-11#
Bug fixes#
Revert accidental change where
Xgot written to disk when it wasNone@flying-sheep (#2054)
0.12.1 2025-07-23#
Bug fixes#
Fix
chunksargument foranndata.experimental.read_elem_lazy()so that it uses the on-disk chunking when possible, and allow users to pass this argument through to the reading ofanndata.experimental.backed.Dataset2D@ilan-gold (#2033)
Performance#
Improve integer indexing performance of
h51d arrays that are opened viaanndata.experimental.read_elem_lazy()@ilan-gold (#2035)
0.12.0 2025-07-16#
rc4 2025-06-18
rc3 2025-05-20
rc2 2025-05-15
rc1 2025-04-09
Breaking changes#
rc1 Remove
anndata.read@ilan-gold (#1766)rc1 Tighten usage of
scipy.sparse.spmatrixfor describing sparse matrices in types and instance checks to onlyscipy.sparse.csr_matrixandscipy.sparse.csc_matrix@ilan-gold (#1768)rc1 Disallow declaration of
AnnDatawith non-cs{r,c}sparse data-structures @ilan-gold (#1829)rc1 Upgrade all
DeprecationWarnings toFutureWarnings @ilan-gold (#1874)rc4 Lower bound
xarrayby2025.06.01.pandas.arrays.StringArraywas previously used as the in-memorynullable-string-arraycontainer inxarray, but due to pydata/xarray#10419 now usesnumpy.ndarraywith an object data type. @ilan-gold (#2008)
Bug fixes#
Fix
anndata.experimental.backed.Dataset2D.reindex()internal setting @ilan-gold (#2018)rc1 Disallow writing of
Dataset2Dobjects @ilan-gold (#1887)rc1 Upgrade old deprecation warning to a
FutureWarningonBaseCompressedSparseDataset.__setitem__, showing our intent to remove the feature in the next release. @ilan-gold (#1928)rc1 Don’t use
asyncio.run()internally for any operations @ilan-gold (#1933)rc1 Disallow forward slashes in keys for writing @ilan-gold (#1940)
rc2 Convert 1d
numpy.ndarrayandcupy.ndarrays inanndata.AnnData.obsmandanndata.AnnData.varmto 2d @ilan-gold (#1962)rc3 Update zarr v3 bound to >3.0.8 to prevent corrupted data zarr-developers/zarr-python#3061 @ilan-gold (#1993)
Features#
rc1
Nonevalues can now be serialized to.h5adand.zarr, preserving e.g.unsstructure through saving and loading @flying-sheep (#999)rc1 Add
read_elem_lazy()(in place ofread_elem_as_dask) to handle backed dataframes, sparse arrays, and dense arrays, as well as aread_lazy()to handle reading in as much of the on-disk data as possible to produce aAnnDataobject @ilan-gold (#1247)rc1 Support
zarrversion 3 python package @ilan-gold (#1726)rc1 Adopt the Scientific Python deprecation schedule @ilan-gold (#1768)
rc1 Allow
zarrv3 writing of data @ilan-gold (#1892)rc1
anndata.register_anndata_namespace()functionality for adding custom functionality to anAnnDataobject @srivarra (#1870)rc2 Allow xarray Datasets to be used for obs/var/obsm/varm. @ilia-kats (#1966)
rc4
anndata.experimental.backed.Dataset2Dnow takes a compositional approach to wrappingxarray.Datasetwhich may have breaking changes over the past release versions. @ilan-gold (#1997)rc4 Use
numpy.dtypes.StringDTypewithna_objectset topandas.NAfor nullable string data withanndata.experimental.backed.Dataset2D@ilan-gold (#2011)
Performance#
rc2 Load AnnLoader lazily to prevent expensive unnecessary
torchimports when its available on the system. @Zethson & @flying-sheep (#1950)rc4 Improve
read_elem_lazy()performance forh5adfiles by not cachingindptr. @ilan-gold (#2005)
Development#
rc4 Temporarily bound
zarrto<3.1until #1995 is merged to handle the new data type structure. @ilan-gold (#2013)
Version 0.11#
0.11.4 2025-03-26#
Bug fixes#
Raise
ImplicitModificationWarningwhen settingXon a view. @ilan-gold (#1853)Bound
daskdue to dask/dask#11752 @ilan-gold (#1859)Fix concatenation of
anndata.AnnDataobjects alongvarusingjoin="outer"whenvarmis not empty. @ilia-kats (#1911)Add
convert_strings_to_categoricalsparameter also towrite_h5ad()andwrite_zarr()as intended @flying-sheep (#1914)Allow initialization of
anndata.AnnDataobjects withoutX(since they could be constructed previously by deletingX) @ilan-gold (#1941)
Development Process#
Fix version number inference in development environments (CI and local) @flying-sheep (#1831)
0.11.3 2025-01-10#
Bug fixes#
Upper bound
zarrat runtime @ilan-gold (#1819)
0.11.2 2025-01-07#
Bug fixes#
Cache accesses to the
dataandindicesarrays inCSRDatasetandCSCDataset@ilan-gold (#1744)Error out on floating point indices that are not actually integers @ilan-gold (#1746)
write_elemnow filters out incompatibledataset_kwargswhen saving zero-dimensional arrays @ilia-kats (#1783)Add
scipy1.5 compatibility @flying-sheep (#1806)
Performance#
Batch slice-based indexing in
anndata.abc.CSRDatasetandanndata.abc.CSCDatasetfor performance boost inzarr@ilan-gold (#1790)
0.11.1 2024-11-12#
Bug fixes#
Remove upper pin on
daskand exclude versions broken with sparse indexing @ilan-gold (#1725)Fix chunking with -1 in
chunksargument of~anndata.experimental.read_elem_as_dask@ilan-gold (#1743)Fix
cupy<0.13imports in non-gpu environments @ilan-gold (#1754)
0.11.0 2024-11-07#
Release candidates:
rc3 2024-10-14
rc2 2024-09-24
rc1 2024-09-04
Bug fixes#
Ensure
anndata.concat()ofAnnDataobject withscipy.sparse.spmatrixandscipy.sparse.sparraydask arrays uses the correct fill value of 0. @ilan-gold (#1719)Ensure that views of AwkwardArrays have their “view” attributes removed on saving an
AnnDataobject to disk. @grst (#1736)
Breaking changes#
rc3 Drop support for
python3.9 @ilan-gold (#1712)rc2 A new
anndata.iomodule contains allread_*andwrite_*functions, and all imports of such functions should go through this module. Old ways of importing these functions i.e.,from anndata import read_csvorfrom anndata._io.specs import read_elemwill still work, but are now considered deprecated and give a warning on import with the exception ofanndata.io.read_zarr()andanndata.io.read_h5ad(), which will remain at the top-levelanndatawithout warning. @ilan-gold ({pr}1682`)rc1 Removed deprecated modules
anndata.coreandanndata.readwrite@ivirshup (#1197)rc1 No longer export
sparse_datasetfromanndata.experimental, instead exportinganndata.io.sparse_dataset()@ilan-gold (#1642)rc1 Move
RWAbleandInMemoryElemout ofexperimental, renamingRWAbletoAxisStorableandInMemoryElemtoRWAble@ilan-gold (#1643)
Development Process#
rc2 Add extra
daskdependency for installation i.e.,pip install anndata[dask]@ilan-gold (#1677)rc2 Remove
shall_from variable names insettings@ilan-gold (#1685)rc1 Create new
cupyinstallation options for cuda 11 & 12 calledcu11andcu12@Intron7 (#1596)
Documentation#
rc1 Correct
anndata.AnnData.Xtype to includeCSRDatasetandCSCDatasetas possible types and being deprecation process for non-csr/cscscipy.sparse.spmatrixtypes inanndata.AnnData.X@ilan-gold (#1616)
Features#
Add support for ellipsis indexing of the
AnnDataobject @ilan-gold (#1729)rc1
scipy.sparse.csr_arrayandscipy.sparse.csc_arrayare now supported when constructingAnnDataobjects @ilan-gold @isaac-virshup (#1028)rc1 Allow
axisparameter of e.g.anndata.concat()to accept'obs'and'var'@flying-sheep (#1244)rc1 Add
settingsobject with methods for altering internally-used options, like checking for uniqueness onobs’ index @ilan-gold (#1270)rc1 Add
remove_unused_categoriesoption toanndata.settingsto override current behavior @ilan-gold (#1340)rc1 Add
~anndata.experimental.read_elem_as_daskfunction to handle i/o with sparse and dense arrays @ilan-gold (#1469)rc1 Add ability to convert strings to categoricals on write in
write_h5ad()andwrite_zarr()viaconvert_strings_to_categoricalsparameter @falexwolf (#1474)rc1 Add
check_uniquenessoption toanndata.settingsto override current behavior @ilan-gold (#1507)rc1 Add functionality to write from GPU
dask.array.Arrayto disk @ilan-gold (#1550)rc1 Read and write support for nullable string arrays (
pandas.arrays.StringArray). Use pandas’ Options and settingsmode.string_storageto control which storage mode is used when readingdtype="string"columns. @flying-sheep (#1558)rc1 Export
write_elem()andread_elem()directly from the main package instead ofexperimental@ilan-gold (#1598)rc1 Allow reading sparse data (via
read_elem()orsparse_dataset()) into eitherscipy.sparse.csr_arrayorscipy.sparse.csc_arrayviaanndata.settings.use_sparse_array_on_read@ilan-gold (#1633)
Version 0.10#
0.10.9 2024-08-28#
Bug fixes#
Fix writing large number of columns for
h5files @ilan-gold @selmanozleyen (#1147)Add warning for setting
Xon a view with repeated indices @ilan-gold (#1501)Coerce
numpy.matrixclasses to arrays when trying to store them inAnnData@flying-sheep (#1516)Fix for setting a dense
Xview with a sparse matrix @ilan-gold (#1532)Upper bound
numpyforgpuinstallation on account of cupy/cupy#8391 @ilan-gold (#1540)Upper bound dask on account of #1579 @ilan-gold (#1580)
Ensure setting
pandas.DataFrame.indexon a view of aAnnDatainstantiates theDataFramefrom the view @ilan-gold (#1586)Disallow using
DataFrames with multi-index columns @ilan-gold (#1589)
Development Process#
Documentation#
add
callbacktyping forread_dispatched()andwrite_dispatched()@ilan-gold (#1557)
Performance#
Support for
concat_on_diskouter join @ilan-gold (#1504)
0.10.8 2024-06-20#
Bug fixes#
Write out
64bitindptr when appropriate forconcat_on_disk()#1493 @ilan-goldSupport for Numpy 2 #1499 @flying-sheep
Fix
sparse_dataset()docstring test on account of newscipyversion #1514 @ilan-gold
Documentation#
Improved example for
sparse_dataset()#1468 @ivirshup
0.10.7 2024-04-09#
Bug fixes#
Handle upstream
numcodecsbug where read-only string arrays cannot be encoded @ivirshup #1421Use in-memory sparse matrix directly to fix compatibility with
scipy1.13@ilan-gold #1435
Performance#
Remove
vindexfor subsettingdask.array.Arraybecause of its slowness and memory consumption @ilan-gold #1432
0.10.6 2024-03-11#
Bug fixes#
Defer import of zarr in test helpers, as scanpy CI job relies on them #1343 @ilan-gold
Writing a dataframe with non-unique column names now throws an error, instead of silently overwriting #1335 @ivirshup
Bring optimization from #1233 to indexing on the whole
AnnDataobject, not just the sparse dataset itself #1365 @ilan-goldFix mean slice length checking to use improved performance when indexing backed sparse matrices with boolean masks along their major axis #1366 @ilan-gold
Fixed overflow occurring when writing dask arrays with sparse chunks by always writing dask arrays with 64 bit indptr and indices, and adding an overflow check to
.appendmethod of sparse on disk structures #1348 @ivirshupModified
ValueErrormessage for invalid.Xduring construction to show more helpful list instead of ambiguous__name__#1395 @eroellPin
array-api-compat!=1.5to avoid incorrect implementation ofasarray#1411 @ivirshup
Documentation#
Development#
0.10.5 2024-01-25#
Bug fixes#
Fix outer concatenation along variables when only a subset of objects had an entry in layers #1291 @ivirshup
Fix comparison of >2d arrays in
unsduring concatenation #1300 @ivirshupFix bug (introduced in 0.10.4) where indexing an AnnData with
list[bool]would return the wrong result #1332 @ivirshup
Documentation#
Re-add search-as-you-type, this time via
readthedocs-sphinx-search#1311 @flying-sheep
Performance#
BaseCompressedSparseDataset’sindptris cached #1266 @ilan-goldImproved performance when indexing backed sparse matrices with boolean masks along their major axis #1233 @ilan-gold
0.10.4 2024-01-04#
Bug fixes#
Only try to use
Categorical.map(na_action=…)in actually supported Pandas ≥2.1 #1226 @flying-sheepAnnData.__sizeof__()support for backed datasets #1230 @Neah-Koadata[:, []]now returns anAnnDataobject empty on the appropriate dimensions instead of erroring #1243 @ilan-goldadata.X[mask]works in newernumpyversions whenXisbacked#1255 @ilan-goldadata.X[...]fixed forXas aBaseCompressedSparseDatasetwithzarrbackend #1265 @ilan-goldImprove read/write error reporting #1273 @flying-sheep
Documentation#
Improve aligned mapping error messages #1252 @flying-sheep
0.10.3 2023-10-31#
Bug fixes#
Prevent pandas from causing infinite recursion when setting a slice of a categorical column #1211 @flying-sheep
Documentation#
Stop showing “Support for Awkward Arrays is currently experimental” warnings when reading, concatenating, slicing, or transposing AnnData objects #1182 @flying-sheep
Other updates#
Fail canary CI job when tests raise unexpected warnings. #1182 @flying-sheep
0.10.2 2023-10-11#
Bug fixes#
Added compatibility layer for packages relying on
anndata._core.sparse_dataset.SparseDataset. Note that this API is deprecated and new code should useanndata.CSRDataset,~anndata.CSCDataset, andanndata.sparse_datasetinstead. #1185 @ivirshupHandle deprecation warning from
pd.Categorical.mapthrown duringanndata.concat#1189 @flying-sheep @ivirshupFixed extra steps being included in IO tracebacks #1193 @flying-sheep
as_denseargument ofwrite_h5adno longer writes an array without encoding metadata #1193 @flying-sheep
Performance#
Improved performance of
concat_on_diskwith dense arrays in some cases #1169 @selmanozleyen
0.10.1 2023-10-08#
Bug fixes#
0.10.0 2023-10-06#
Features#
GPU Support
Dense and sparse
CuPyarrays are now supported #1066 @ivirshupOnce you have
CuPyarrays in your anndata, use it with:rapids-singlecellfrom v0.9+
anndata now has GPU enabled CI. Made possibly by a grant from CZI’s EOSS program and managed via Cirun #1066 #1084 @Zethson @ivirshup
Out of core
Concatenate on-disk anndata objects with
anndata.experimental.concat_on_disk()#955 @selmanozleyenAnnData can now hold dask arrays with
scipy.sparse.spmatrixchunks #1114 @ivirshupPublic API for interacting with on disk sparse arrays:
sparse_dataset(),CSRDataset, andCSCDataset#765 @ilan-gold @ivirshupImproved performance for simple slices of OOC sparse arrays #1131 @ivirshup
Improved errors and warnings
Improved error messages when combining dataframes with duplicated column names #1029 @ivirshup
Improved warnings when modifying views of
AlingedMappings#1016 @flying-sheep @ivirshupAnnDataReadErrors have been removed. The original error is now thrown with additional information in a note #1055 @ivirshup
Documentation#
Added zarr examples to file format docs #1162 @ivirshup
Breaking changes#
anndata.AnnData.transpose()no longer copies unnecessarily. If you rely on the copying behavior, call.copyon the resulting object. #1114 @ivirshup
Other updates#
Bump minimum python version to 3.9 #1117 @flying-sheep
Deprecations#
Deprecate
anndata.read, which was just an alias foranndata.io.read_h5ad()#1108 @ivirshup.dtypeargument toAnnDataconstructor is now deprecated #1153 @ivirshup
Bug fixes#
Fix shape inference on initialization when
X=Noneis specified #1121 @flying-sheep
Version 0.9#
0.9.2 2023-07-25#
Bug fixes#
Views of
awkward.Arrays now work withawkward>=2.3#1040 @ivirshupFix ufuncs of views like
adata.X[:10].cov(axis=0)returning views #1043 @flying-sheepFix instantiating AnnData where
.Xis aDataFramewith an integer valued index #1002 @flying-sheepFix
read_zarr()when used onzarr.Group#1057 @ivirshup
0.9.1 2023-04-11#
Bug fixes#
0.9.0 2023-04-11#
Features#
Added experimental support for dask arrays #813 @syelman @rahulbshrestha
obsm,varmandunscan now hold AwkwardArrays #647 @giovp, @grst, @ivirshupAdded experimental functions
anndata.experimental.read_dispatched()andanndata.experimental.write_dispatched()which allow customizing IO with a callback #873 @ilan-gold @ivirshupBetter error messages during IO #734 @flying-sheep, @ivirshup
Unordered categorical columns are no longer cast to object during
anndata.concat()#763 @ivirshup
Documentation#
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
backedargument ofanndata.io.read_h5ad()#812 @jeskowagnerDocumented how to use alternative compression methods for the
h5adfile format, seeAnnData.write_h5ad()#857 @nigeil
Breaking changes#
Other updates#
Deprecations#
AnnData.concatenate()is now deprecated in favour ofanndata.concat()#845 @ivirshup
Bug fixes#
Fix warning from
rename_categories#790 I VirshupRemove backwards compat checks for categories in
unswhen we can tell the file is new enough #790 I VirshupCategorical arrays are now created with a python
boolinstead of anumpy.bool_#856Fixed 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
unsended in_categories#806 @ivirshup, reported by @HrovatinFixed
raw.to_adatanot populatingobsaligned values whenrawwas assigned through the setter #939 @ivirshup
Version 0.8#
0.8.0 14th March, 2022#
IO Specification#
Warning
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_typeandencoding_version. See updated docs on the file formatSupport for nullable integer and boolean data arrays. More data types to come!
Experimental support for low level access to the IO API via
read_elem()andwrite_elem()
Features#
Added PyTorch dataloader
AnnLoaderand lazy concatenation objectAnnCollection. See the tutorials #416 S RybakovCompatibility with
h5adfiles written from Julia #569 I KatsMany logging messages that should have been warnings are now warnings #650 I Virshup
Significantly more efficient
anndata.io.read_umi_tools()#661 I VirshupFixed deepcopy of a copy of a view retaining sparse matrix view mixin type #670 M Klein
In many cases
Xcan now beNone#463 R Cannoodt #677 I Virshup. Remaining work is documented in #467.Removed hard
xlrddependency I Virshupobsandvardataframes are no longer copied by default onAnnDatainstantiation #371 I Virshup
Bug fixes#
Dependencies#
xlrddropped as a hard dependencyNow requires
h5pyv3.0.0or newer
Version 0.7#
0.7.8 9 November, 2021#
Bug fixes#
Re-include test helpers #641 I Virshup
0.7.7 9 November, 2021#
Bug fixes#
Fixed propagation of import error when importing
write_zarrbut not all dependencies are installed #579 R HilljeFixed issue with
.unssub-dictionaries being referenced by copies #576 I VirshupFixed out-of-bounds integer indices not raising
IndexError#630 M KleinFixed backed
SparseDatasetindexing with scipy 1.7.2 #638 I Virshup
Development processes#
Use PEPs 621 (standardized project metadata), 631 (standardized dependencies), and 660 (standardized editable installs) #639 I Virshup
0.7.6 11 April, 2021#
Features#
Added
anndata.AnnData.to_memory()for returning an in memory object from a backed one #470 #542 V Bergen I Virshupanndata.AnnData.write_loom()now writesobs_namesandvar_namesusing theIndex’s.nameattribute, if set #538 I Virshup
Bug fixes#
Fixed bug where
np.str_column names errored at write time #457 I VirshupFixed “value.index does not match parent’s axis 0/1 names” error triggered when a data frame is stored in obsm/varm after obs_names/var_names is updated #461 G Eraslan
Fixed
adata.write_csvswhenadatais a view #462 I VirshupFixed null values being converted to strings when strings are converted to categorical #529 I Virshup
Fixed handling of compression key word arguments #536 I Virshup
Fixed copying a backed
AnnDatafrom changing which file the original object points at #533 ilia-katsFixed a bug where calling
AnnData.concatenateanAnnDatawith no variables would error #537 I Virshup
Deprecations#
Passing positional arguments to
anndata.io.read_loom()besides the path is now deprecated #538 I Virshupanndata.io.read_loom()argumentsobsm_namesandvarm_namesare now deprecated in favour ofobsm_mappingandvarm_mapping#538 I Virshup
0.7.5 12 November, 2020#
Functionality#
Added ipython tab completion and a useful return from
.keystoadata.uns#415 I Virshup
Bug fixes#
0.7.4 10 July, 2020#
Concatenation overhaul #378 I Virshup#
New function
anndata.concat()for concatenatingAnnDataobjects along either observations or variablesNew documentation section: Concatenation
Functionality#
AnnData object created from dataframes with sparse values will have sparse
.X#395 I Virshup
Bug fixes#
0.7.3 20 May, 2020#
Bug fixes#
Fixed bug where graphs used too much memory when copying #381 I Virshup
0.7.2 15 May, 2020#
Concatenation overhaul I Virshup#
Functionality#
obs_names_make_unique()is now better at making values unique, and will warn if ambiguities arise #345 M Weidenobspis now preferred for storing pairwise relationships between observations. In practice, this means there will be deprecation warnings and reformatting applied to objects which stored connectivities underuns["neighbors"]. Square matrices inunswill no longer be sliced (use.{obs,var}pinstead). #337 I VirshupImplicitModificationWarningis now exported #315 P AngererBetter support for
ndarraysubclasses stored inAnnDataobjects #335 michalk8
Bug fixes#
Fixed inplace modification of
Indexobjects by the make unique function #348 I VirshupPassing ambiguous keys to
obs_vector()andvar_vector()now throws errors #340 I VirshupFix instantiating
AnnDataobjects fromDataFrame#316 P AngererFixed indexing into
AnnDataobjects with arrays likeadata[adata[:, gene].X > 0]#332 I VirshupFixed type of version #315 P Angerer
0.7.0 22 January, 2020#
Warning
Breaking changes introduced between 0.6.22.post1 and 0.7:
Elements of
AnnDatas don’t have their dimensionality reduced when the main object is subset. This is to maintain consistency when subsetting. See discussion in #145.Internal modules like
anndata.coreare private and their contents are not stable: See #174.The old deprecated attributes
.smp*..addand.datahave been removed.
View overhaul #164#
Indexing into a view no longer keeps a reference to intermediate view, see #62.
Views are now lazy. Elements of view of AnnData are not indexed until they’re accessed.
Indexing with scalars no longer reduces dimensionality of contained arrays, see #145.
All elements of AnnData should now follow the same rules about how they’re subset, see #145.
Can now index by observations and variables at the same time.
IO overhaul #167#
Reading and writing has been overhauled for simplification and speed.
Time and memory usage can be half of previous in typical use cases
Zarr backend now supports sparse arrays, and generally is closer to having the same features as HDF5.
Backed mode should see significant speed and memory improvements for access along compressed dimensions and IO. PR #241.
Categoricals can now be ordered (PR #230) and written to disk with a large number of categories (PR #217).
Mapping attributes overhaul (obsm, varm, layers, …)#
New attributes
obspandvarphave been added for two dimensional arrays where each axis corresponds to a single axis of the AnnData object. PR #207.These are intended to store values like cell-by-cell graphs, which are currently stored in
uns.Sparse arrays are now allowed as values in all mapping attributes.
All mapping attributes now share an implementation and will have the same behaviour. PR #164.
Miscellaneous improvements#
Version 0.6#
0.6.0 1 May, 2018#
compatibility with Seurat converter
tremendous speedup for
concatenate()bug fix for deep copy of unstructured annotation after slicing
bug fix for reading HDF5 stored single-category annotations
'outer join'concatenation: adds zeros for concatenation of sparse data and nans for dense databetter memory efficiency in loom exports
Version 0.5#
0.5.0 9 February, 2018#
inform about duplicates in
var_namesand resolve them usingvar_names_make_unique()automatically remove unused categories after slicing
read/write .loom files using loompy 2
fixed read/write for a few text file formats
read UMI tools files:
read_umi_tools()
Version 0.4#
0.4.0 23 December, 2017#
read/write .loom files
scalability beyond dataset sizes that fit into memory: see this blog post
AnnDatahas arawattribute, which simplifies storing the data matrix when you consider it raw: see the clustering tutorial