MuData

0.3.4 · active · verified Thu Apr 16

MuData (Multimodal Data) is a Python library for working with multimodal single-cell data, building upon the AnnData ecosystem. It provides a container for multiple AnnData objects, representing different modalities, allowing for unified storage and analysis. The current version is 0.3.4, and the library typically releases minor versions every few months, with patch releases addressing compatibility and bug fixes.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to create a `MuData` object from multiple `AnnData` objects, access individual modalities, and inspect shared observation metadata. The example simulates two modalities (RNA and ATAC) for 10 cells.

import anndata as ad
import mudata as md
import numpy as np
import pandas as pd

# Create dummy AnnData objects for two modalities (e.g., RNA and ATAC)
adata_rna = ad.AnnData(
    X=np.random.rand(10, 20), # 10 cells, 20 genes
    obs=pd.DataFrame(index=[f"cell_{i}" for i in range(10)], data={'donor': np.random.choice(['D1', 'D2'], 10)}),
    var=pd.DataFrame(index=[f"gene_{j}" for j in range(20)])
)
adata_atac = ad.AnnData(
    X=np.random.randint(0, 5, size=(10, 15)), # 10 cells, 15 peaks
    obs=pd.DataFrame(index=[f"cell_{i}" for i in range(10)], data={'donor': np.random.choice(['D1', 'D2'], 10)}),
    var=pd.DataFrame(index=[f"peak_{j}" for j in range(15)])
)

# Create a MuData object from a dictionary of AnnData objects
mdata = md.MuData({'rna': adata_rna, 'atac': adata_atac})

print("MuData object created:")
print(mdata)

# Access a specific modality
print("\nAccessing the 'rna' modality:")
print(mdata['rna'])

# Access shared observation metadata
print("\nShared observation metadata:")
print(mdata.obs.head())

view raw JSON →