Release Notes
Upcoming changes
Version 0.7
0.7.8 9 November, 2021
Bug fixes
Re-include test helpers PR 641 I Virshup
0.7.7 9 November, 2021
Bug fixes
Fixed propagation of import error when importing
write_zarr
but not all dependencies are installed PR 579 R HilljeFixed issue with
.uns
sub-dictionaries being referenced by copies PR 576 I VirshupFixed out-of-bounds integer indices not raising
IndexError
PR 630 M KleinFixed backed
SparseDataset
indexing with scipy 1.7.2 PR 638 I Virshup
Development processes
Use PEPs 621 (standardized project metadata), 631 (standardized dependencies), and 660 (standardized editable installs) PR 639 I Virshup
0.7.6 11 April, 2021
New features
Added
anndata.AnnData.to_memory()
for returning an in memory object from a backed one PR 470 PR 542 V Bergen I Virshupanndata.AnnData.write_loom()
now writesobs_names
andvar_names
using theIndex
’s.name
attribute, if set PR 538 I Virshup
Bug fixes
Fixed bug where
np.str_
column names errored at write time PR 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 PR 461 G Eraslan
Fixed
adata.write_csvs
whenadata
is a view PR 462 I VirshupFixed null values being converted to strings when strings are converted to categorical PR 529 I Virshup
Fixed handling of compression key word arguments PR 536 I Virshup
Fixed copying a backed
AnnData
from changing which file the original object points at PR 533 ilia-katsFixed a bug where calling
AnnData.concatenate
anAnnData
with no variables would error PR 537 I Virshup
Deprecations
Passing positional arguments to
anndata.read_loom()
besides the path is now deprecated PR 538 I Virshupanndata.read_loom()
argumentsobsm_names
andvarm_names
are now deprecated in favour ofobsm_mapping
andvarm_mapping
PR 538 I Virshup
0.7.5 12 November, 2020
Functionality
Added ipython tab completion and a useful return from
.keys
toadata.uns
PR 415 I Virshup
Bug fixes
0.7.4 10 July, 2020
Concatenation overhaul PR 378 I Virshup
New function
anndata.concat()
for concatenatingAnnData
objects along either observations or variablesNew documentation section: Concatenation
Functionality
AnnData object created from dataframes with sparse values will have sparse
.X
PR 395 I Virshup
Bug fixes
0.7.3 20 May, 2020
Bug fixes
Fixed bug where graphs used too much memory when copying PR 381 I Virshup
0.7.2 15 May, 2020
Concatenation overhaul I Virshup
Elements of
uns
can now be merged, see PR 350Outer joins now work for
layers
andobsm
, see PR 352Fill value for outer joins can now be specified
Expect improvments in performance, see issue 303
Functionality
obs_names_make_unique()
is now better at making values unique, and will warn if ambiguities arise PR 345 M Weidenobsp
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 underuns["neighbors"]
. Square matrices inuns
will no longer be sliced (use.{obs,var}p
instead). PR 337 I VirshupImplicitModificationWarning
is now exported PR 315 P AngererBetter support for
ndarray
subclasses stored inAnnData
objects PR 335 michalk8
Bug fixes
Fixed inplace modification of
Index
objects by the make unique function PR 348 I VirshupPassing ambiguous keys to
obs_vector()
andvar_vector()
now throws errors PR 340 I VirshupFix instantiating
AnnData
objects fromDataFrame
PR 316 P AngererFixed indexing into
AnnData
objects with arrays likeadata[adata[:, gene].X > 0]
PR 332 I VirshupFixed type of version PR 315 P Angerer
0.7.0 22 January, 2020
Warning
Breaking changes introduced between 0.6.22.post1
and 0.7
:
Elements of
AnnData
s 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.
Categorical
s 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
andvarp
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.
All mapping attributes now share an implementation and will have the same behaviour. PR PR 164.
Miscellaneous improvements
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 Virshupcompatibility with Scipy >=1.3 by removing
IndexMixin
dependency. 0.6.20 PR 151 P Angererbug 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
inwrite_h5ad()
to speed up read and write, disk space use is usually less critical. 0.6.16 A Wolfmaintain dtype upon copy. 0.6.13 A Wolf
layers
inspired by .loom files allows their information lossless reading viaread_loom()
. 0.6.7–0.6.9 PR 46 & PR 48 S Rybakovsupport for reading zarr files:
read_zarr()
0.6.7 PR 38 T Whiteinitialization from pandas DataFrames 0.6. A Wolf
iteration over chunks
chunked_X()
andchunk_X()
0.6.1 PR 20 S Rybakov
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_names
and 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
AnnData
has araw
attribute, which simplifies storing the data matrix when you consider it raw: see the clustering tutorial