Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.3.4 (unreleased)#

Added#

  • mudata.register_mudata_namespace() functionality for adding custom functionality to MuData objects.

Fixed#

  • update(), push_obs(), push_var(), pull_obs(), and pull_var() now try harder to preserve the dtype of the dataframe columns

0.3.3#

Fixed#

  • Fixed an issue in update() with duplicate obs_names and dataframes in obsm.

  • Fixed an issue with column ordering in push_obs().

  • Fixed an issue in update() when there are more than 255 duplicates of an obs_name or var_name.

  • Fixed an issue where setting global obs_names or var_names would reorder modality-specific names

  • Pandas 3 compatibility.

0.3.2#

Fixed#

  • Fixed an issue in update()

0.3.1#

Fixed#

  • compatibility with anndata 0.10.9

0.3.0#

Added#

  • Pull/push interface for annotations: pull_obs(), pull_var(), push_obs(), push_var()

  • Conversion functions: to_anndata(), to_mudata()

  • Concatenation of MuData objects

  • MuData.mod_names attribute

  • Pretty-printing for MuData.mod

  • fsspec support for readers.

Fixed#

  • Improved performance and behavior of update(). For compatibility reasons, this release keeps the old behaviour of pulling annotations on read/update as default.

  • read_zarr() now supports mod-order

  • Correct handling of the uns attribute by views.

Note#

If you want to adopt the new update behaviour, set mudata.set_options(pull_on_update=False). This will be the default behaviour in the next release. With it, the annotations will not be copied from the modalities on update() implicitly.

To copy the annotations explicitly, you will need to use pull_obs() and/or pull_var().

0.2.4#

Changed#

  • Requires anndata 0.10.8 or newer.

Fixed#

  • Compatibility with numpy 2.0

  • Compatibility with anndata 0.11

0.2.3#

Fixed#

  • Fixes and improvements for backed objects, views, nested MuData objects, I/O and HTML representation.

  • Pandas 2.0 compatibility

0.2.2#

Fixed#

  • Path objects now work in mudata.read()

0.2.1#

Added#

  • MuData.__len__. This should make it easier to build MuData into workflows that operate on data containers with length. In practice using n_obs should be preferred.

Changed#

  • Default dict has replaced OrderedDict, e.g. in the uns slot, to improve compatibility with new serialisation versions. As of Python 3.6, dictionaries are insertion-ordered.

Fixed#

  • Improvements and optimizations to update()

0.2.0#

Added#

  • new axes interface that allows to use MuData objects as containers with different shared dimensions.

Changed#

Fixed#

  • Updating a MuData object with MuData.update() is even faster in many use cases.

0.1.2#

Changed#

  • Improved documentation, including a new page describing the sharp bits.

Fixed#

  • Updating a MuData object with update() is now much faster.

0.1.1#

  • Various stability and bug fixes

0.1.0#

Initial mudata release with MuData, previously a part of the muon framework.