Release Notes

Upcoming changes

Version 0.7

On master

Functionality

  • Added ipython tab completion and a useful return from .keys to adata.uns PR 415 I Virshup

0.7.4 2020-07-10

Concatenation overhaul PR 378 I Virshup

  • New function anndata.concat() for concatenating AnnData objects along either observations or variables

  • New documentation section: Concatenation

Functionality

  • AnnData object created from dataframes with sparse values will have sparse .X PR 395 I Virshup

Bug fixes

  • Fixed error from AnnData.concatenate by bumping minimum versions of numpy and pandas issue 385

  • Fixed colors being incorrectly changed when AnnData object was subset PR 388

0.7.3 2020-05-20

Bug fixes

  • Fixed bug where graphs used too much memory when copying PR 381 I Virshup

0.7.2 2020-05-15

Concatenation overhaul I Virshup

  • Elements of uns can now be merged, see PR 350

  • Outer joins now work for layers and obsm, see PR 352

  • Fill value for outer joins can now be specified

  • Expect improvments in performance, see issue 303

Functionality

  • obsp and varp can now be transposed PR 370 A Wolf

  • obs_names_make_unique() is now better at making values unique, and will warn if ambiguities arise PR 345 M Weiden

  • obsp is 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 under uns["neighbors"]. Square matrices in uns will no longer be sliced (use .{obs,var}p instead). PR 337 I Virshup

  • ImplicitModificationWarning is now exported PR 315 P Angerer

  • Better support for ndarray subclasses stored in AnnData objects PR 335 michalk8

Bug fixes

  • Fixed inplace modification of Index objects by the make unique function PR 348 I Virshup

  • Passing ambiguous keys to obs_vector() and var_vector() now throws errors PR 340 I Virshup

  • Fix instantiating AnnData objects from DataFrame PR 316 P Angerer

  • Fixed indexing into AnnData objects with arrays like adata[adata[:, gene].X > 0] PR 332 I Virshup

  • Fixed type of version PR 315 P Angerer

  • Fixed deprecated import from pandas PR 319 P Angerer

0.7.0 2020-01-22

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 issue 145.

  • Internal modules like anndata.core are private and their contents are not stable: See issue 174.

  • The old deprecated attributes .smp*. .add and .data have been removed.

View overhaul PR 164

  • Indexing into a view no longer keeps a reference to intermediate view, see issue 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 issue 145.

  • All elements of AnnData should now follow the same rules about how they’re subset, see issue 145.

  • Can now index by observations and variables at the same time.

IO overhaul PR 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 PR 241.

  • Categoricals can now be ordered (PR PR 230) and written to disk with a large number of categories (PR PR 217).

Mapping attributes overhaul (obsm, varm, layers, …)

  • New attributes obsp and varp have been added for two dimensional arrays where each axis corresponds to a single axis of the AnnData object. PR 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.

  • DataFrames are now allowed as values in obsm and varm.

  • All mapping attributes now share an implementation and will have the same behaviour. PR PR 164.

Miscellaneous improvements

  • Mapping attributes now have ipython tab completion (e.g. adata.obsm["\t can provide suggestions) PR PR 183.

  • AnnData attributes are now delete-able (e.g. del adata.raw) PR PR 242.

  • Many many bug fixes

Version 0.6

0.6.* 2019-*-*

  • better support for aligned mappings (obsm, varm, layers) 0.6.22 PR 155 I Virshup

  • convenience accesors obs_vector(), var_vector() for 1d arrays. 0.6.21 PR 144 I Virshup

  • compatibility with Scipy >=1.3 by removing IndexMixin dependency. 0.6.20 PR 151 P Angerer

  • bug fix for second-indexing into views. 0.6.19 P Angerer

  • bug fix for reading excel files. 0.6.19 A Wolf

  • changed default compression to None in write_h5ad() to speed up read and write, disk space use is usually less critical. 0.6.16 A Wolf

  • maintain dtype upon copy. 0.6.13 A Wolf

  • layers inspired by .loom files allows their information lossless reading via read_loom(). 0.6.70.6.9 PR 46 & PR 48 S Rybakov

  • support for reading zarr files: read_zarr() 0.6.7 PR 38 T White

  • initialization from pandas DataFrames 0.6. A Wolf

  • iteration over chunks chunked_X() and chunk_X() 0.6.1 PR 20 S Rybakov

0.6.0 2018-05-01

  • 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 data

  • better memory efficiency in loom exports

Version 0.5

0.5.0 2018-02-09

Version 0.4

0.4.0 2017-12-23

  • read/write .loom files

  • scalability beyond dataset sizes that fit into memory: see this blog post

  • AnnData has a raw attribute, which simplifies storing the data matrix when you consider it raw: see the clustering tutorial