{"library":"mudata","title":"MuData","description":"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.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install mudata"],"cli":null},"imports":["from mudata import MuData","from mudata import read_h5mu","from mudata import concat"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import anndata as ad\nimport mudata as md\nimport numpy as np\nimport pandas as pd\n\n# Create dummy AnnData objects for two modalities (e.g., RNA and ATAC)\nadata_rna = ad.AnnData(\n    X=np.random.rand(10, 20), # 10 cells, 20 genes\n    obs=pd.DataFrame(index=[f\"cell_{i}\" for i in range(10)], data={'donor': np.random.choice(['D1', 'D2'], 10)}),\n    var=pd.DataFrame(index=[f\"gene_{j}\" for j in range(20)])\n)\nadata_atac = ad.AnnData(\n    X=np.random.randint(0, 5, size=(10, 15)), # 10 cells, 15 peaks\n    obs=pd.DataFrame(index=[f\"cell_{i}\" for i in range(10)], data={'donor': np.random.choice(['D1', 'D2'], 10)}),\n    var=pd.DataFrame(index=[f\"peak_{j}\" for j in range(15)])\n)\n\n# Create a MuData object from a dictionary of AnnData objects\nmdata = md.MuData({'rna': adata_rna, 'atac': adata_atac})\n\nprint(\"MuData object created:\")\nprint(mdata)\n\n# Access a specific modality\nprint(\"\\nAccessing the 'rna' modality:\")\nprint(mdata['rna'])\n\n# Access shared observation metadata\nprint(\"\\nShared observation metadata:\")\nprint(mdata.obs.head())","lang":"python","description":"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.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"0.2.4","pypi_latest":"0.3.8","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":60,"avg_install_s":13,"avg_import_s":2.51,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mudata","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.75,"mem_mb":42.6,"disk_size":"325.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mudata","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":12.1,"import_time_s":1.38,"mem_mb":42.6,"disk_size":"313M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mudata","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mudata","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":13,"import_time_s":2.97,"mem_mb":52.3,"disk_size":"383M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mudata","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mudata","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":13.1,"import_time_s":3.23,"mem_mb":51.5,"disk_size":"367M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mudata","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mudata","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":13.4,"import_time_s":3.24,"mem_mb":52.3,"disk_size":"365M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mudata","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mudata","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":13.6,"import_time_s":null,"mem_mb":null,"disk_size":"319M"}]}}