mudata
Multimodal data
What it is and what it does
MuData extends the AnnData single-cell data structure to handle multimodal omics experiments where multiple assays (RNA, ATAC, protein, etc.) are measured on the same cells. It stores each modality as a separate AnnData object within a unified container, allowing shared cell and feature metadata while preserving modality-specific annotations. The package provides HDF5-based persistence through .h5mu files, which mirror the .h5ad format but support hierarchical storage of multiple modalities.
Typically used in single-cell genomics workflows where data from technologies like 10X Genomics multiome (RNA + ATAC) or other multi-assay platforms need to be loaded, processed, and stored together. The package is part of the scverse ecosystem and integrates with muon for convenient readers of common multimodal file formats. It depends on anndata, h5py, numpy, pandas, and scipy for core functionality.
Use it for:
- Store and retrieve 10X Genomics multiome data (RNA + ATAC) with shared cell metadata and modality-specific feature annotations.
- Combine multiple single-cell assays measured on the same cells into one analysis-ready container with linked observations.
- Save multimodal analysis results to disk in a structured HDF5 format and selectively read individual modalities back.
- Organize metadata for multimodal experiments where cell-level annotations apply across all assays but feature annotations differ per modality.
- Build reproducible multimodal analysis pipelines that preserve data structure and metadata through multiple processing steps.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
MuData is a container for multimodal omics data that organizes multiple AnnData objects (one per modality) with shared and modality-specific observations and features, and provides HDF5-based I/O via .h5mu files.
Yes. MuData is actively maintained, has no known vulnerabilities, and fills a clear role in the scverse ecosystem for multimodal omics data. The low install friction, permissive license, and integration with established tools like anndata and muon make it a straightforward choice if you work with multimodal single-cell data. Install it if you need to organize or persist data from multiple assays measured on the same cells.
Install
mudata on PyPI
pip
pip install mudatauv
uv add mudatapoetry
poetry add mudataInstalling mudata
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with a release 38 days ago and recent commits. Seven runtime dependencies are all established scientific Python packages (anndata, h5py, numpy, pandas, scipy, scverse-misc, session-info2).
License in practice
BSD 3-Clause permissive license allows commercial and private use with attribution and liability disclaimer. No restrictions on modification or redistribution.
Quickstart
pip install mudata
from mudata import MuData
mdata = MuData({'rna': adata_rna, 'atac': adata_atac})
mdata.write('multimodal.h5mu')
mdata = MuData.read('multimodal.h5mu')
Requires Python 3.10 or later. Assumes anndata objects (adata_rna, adata_atac) are already available.
Verify before relying
- Whether the package handles edge cases like mismatched observation counts across modalities gracefully.
- Performance characteristics when working with very large multimodal datasets (millions of cells, thousands of features per modality).
- Interoperability with tools outside the scverse ecosystem for reading/writing .h5mu files.
Package facts
| License | BSD 3-Clause License Copyright (c) 2020, Danila Bredikhin Copyright (c) 2025, scverse® All rights reserved. Redistribution and use in source and binary forms, with or without modification, are… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — anndata, h5py, numpy, pandas, scipy, scverse-misc, session-info2 |
| Maintenance | actively maintained — 38 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 194,170/month — #9,844 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mudata-0.3.10-py3-none-any.whl
Tags
More Bio-Informatics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
biopythonBiopython provides Python tools for…
unclear · top 5,000 on PyPI
firecrawl-pyClient library for the Firecrawl API that…
permissive · top 5,000 on PyPI
intervaltreeA self-balancing interval tree data structure…
permissive · top 5,000 on PyPI
albumentationsAlbumentations applies image transformations to…
permissive · top 5,000 on PyPI
PubChemPyPubChemPy is a Python wrapper around the…
permissive · top 5,000 on PyPI
anndataanndata handles annotated data matrices in…
permissive · top 5,000 on PyPI
spatialdataSpatialData is a data framework and…
permissive · top 15,000 on PyPI
scvi-toolsscvi-tools provides probabilistic models for…
permissive · top 15,000 on PyPI
tiledbsomaTileDB-SOMA is a Python implementation of the…
permissive · top 15,000 on PyPI
tablesPyTables provides an object-oriented interface…
permissive · top 5,000 on PyPI
pytdcPyTDC provides unified access to multimodal…
permissive · top 15,000 on PyPI
lamindbLaminDB is a data management system for…
unclear · top 15,000 on PyPI
pymatreaderReads MATLAB .mat files in both legacy and…
permissive · top 15,000 on PyPI
scanpyScanpy is a toolkit for preprocessing,…
permissive · top 5,000 on PyPI
xarrayxarray adds dimension, coordinate, and…
permissive · top 5,000 on PyPI