Skip to main content

Out-of-memory MuData — drop-in replacement for mudata.MuData built on mudata-rs and anndataoom

Project description

mudata-oom

Out-of-memory MuData powered by anndataoom.

Drop-in replacement for mudata.MuData whose per-modality expression matrices stay on disk. Every API method, every property, every behaviour of upstream mudata.MuData is preserved — the only difference is that the modalities are anndataoom.AnnDataOOM objects instead of anndata.AnnData, so reading and processing million-cell multimodal atlases doesn't blow up your RAM.

import mudataoom as moom
mdata = moom.read_h5mu("cite_seq_1M.h5mu")
# MuDataOOM [out-of-memory · backed]
#   mod
#     rna  : AnnDataOOM  1,200,000 × 24,000
#     prot : AnnDataOOM  1,200,000 × 156
#   obs  : 1,200,000 × 5
#   obsm : ['X_mofa']

Why?

mudata.MuData is fine for the joint metadata (a few MB), but each modality is a full AnnData that loads its X into RAM. For a 1M-cell CITE-seq atlas (RNA + protein), this means >100 GB. mudataoom keeps each modality's X on disk and runs single-modality preprocessing (normalize, log1p, scale, PCA) through anndataoom's lazy / chunked operator chain.

Dataset mudata.MuData mudataoom Saving
CITE-seq 10k (RNA + 156 ADT) 2.4 GB ~70 MB 34x
RNA + ATAC 100k cells ~24 GB ~1.2 GB 20x
RNA + ATAC 1M cells ~140 GB (OOM) ~1.7 GB 80x+

Architecture (no new Rust code)

MuDataOOM (Python; subclasses mudata.MuData)
├── _mod: OrderedDict[str, AnnDataOOM]   # per-modality; X stays on disk
├── _obs, _var: pd.DataFrame             # joint metadata
├── _obsm, _varm, _obsp, _varp           # joint embeddings / graphs
├── _obsmap, _varmap                     # which modality row backs which joint row
├── _uns, _axis
└── _file: MuDataFileManager             # h5mu HDF5 file handle (backed mode)

read_h5mu walks /mod/* inside the source .h5mu, builds one tiny "virtual" .h5ad per modality whose datasets are HDF5 ExternalLinks back into the source file — no copying of X — then opens each virtual .h5ad through anndataoom.read(). The Rust I/O layer streams X chunks straight from the original .h5mu on demand.

See docs/architecture.md for the full design.

Install

pip install mudataoom

(Will pull anndataoom, mudata, h5py, anndata.)

Compatibility

MuDataOOM is a strict subclass of mudata.MuData. Anything that takes a mudata.MuData (mofapy, muon plotting, scvi-tools, …) accepts a MuDataOOM unchanged.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mudataoom-0.3.0.tar.gz (170.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mudataoom-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

mudataoom-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mudataoom-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

mudataoom-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

mudataoom-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mudataoom-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

mudataoom-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mudataoom-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mudataoom-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

mudataoom-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mudataoom-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mudataoom-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

mudataoom-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mudataoom-0.3.0-cp39-cp39-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mudataoom-0.3.0-cp39-cp39-macosx_10_12_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file mudataoom-0.3.0.tar.gz.

File metadata

  • Download URL: mudataoom-0.3.0.tar.gz
  • Upload date:
  • Size: 170.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mudataoom-0.3.0.tar.gz
Algorithm Hash digest
SHA256 07b59986c8e45dfc2018b6aad2591e0c5905d990adb9c9865e791fbc8b4c0d53
MD5 cb9a04849e19654999f38f54fee34777
BLAKE2b-256 6be115f0456b8ff8920b654641ade5bb899d410af847340ac9276c7bbb23c520

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0.tar.gz:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf2357f63140f86783b46033267e6dfd0273b89480223eeeffdfeef4aef908cf
MD5 cb6c421b14d5775e3965103f3a01f959
BLAKE2b-256 0dddfe6f0442f49e0950a3911217a34b7363ff9fa642606cab36fc6de84924e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 36a90457ce1d3dbae208b0fde2cd15f34371968ef2b565caeed2fa63c9327987
MD5 67e21e86e3af993db3310feaa490df7e
BLAKE2b-256 b83cd9aca9755514994ed11246d4b1099017017db45ceec599b2eb5ffa8bdf95

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d08a6db5145eb09863b45e59b49cc66e8f80fc833488c9aedb4ca1a3caad8024
MD5 9a06e5d62b88caefb5b3715966147b32
BLAKE2b-256 3ea8116c11026eef19908adec945720f5d9c7833749b2fcae06b3daa9bee80d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4db739b51f9eb0c081fbcf00dd147a67d2bf0ea607ffe9366cafa8f313f3279e
MD5 2237d2c2df5bd20eea5e89bf2f8e724b
BLAKE2b-256 fbeee18dee20bae04f48b1cdffbbd6c833c9fbb3a99b06d4cea04c184773ad59

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4f5de5f779dcc87b9689a1aba2db7fa416d074dda3c9240f9a277d15584a735
MD5 b13aaddbfaa40c5e61201305d169bfb5
BLAKE2b-256 9b5694f006fdef3604f74dd12cbe402eafe02d6da7af80e07c93b679ffb6dc7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3455fa1b016b701ecc666e7337c5cfbc2aec69bb1fee7440128e7e1505549a84
MD5 0b325c5a35f19615f68961687dc41a4f
BLAKE2b-256 ea9682d69e3cf5367fef6a035d8e06686c11ea160450285811864fa57fa38b90

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb6842407329eda261cd95e4f8d337b2c3b88c15789f3b7005fdebcf41fc7b76
MD5 b8fb761398df4901c7d4522f5dd4fa50
BLAKE2b-256 071010c3232a82092e1e6fcf0c91922f9af0412ac2f2c27c825ca13e3c89671f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3d143eb748e0ff7d2f6b5c95d605100b5f5d86cff3e5405060b257af94401ff
MD5 2a829cc159e5b141f258d4d35f7fd3fd
BLAKE2b-256 51e42155df65bb0b9519a2e8112e2f7678ed16411ff30c124bbba435bd981aec

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a4fd5a2bc669786d4dbbd5c0aca9bf35ff4d17266f19b7dc9a64a5e01341555d
MD5 cb172c225dcfbb2c2abd531b0877797e
BLAKE2b-256 70699a961f8005ee7a82398ee0833dd75a66096d8121f5c833fc94f707d286b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29bc2d32188f80154ba6be9b9f0525a6e975374873942c3cdbdc4f79419d3617
MD5 d4719398d9a778159c9f3585ab908c07
BLAKE2b-256 5998d8c03933076a594e57401e323c0a5a2ad719304dfa86d3b551c60b0d4a3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5e37dd3777f7ab04d1db8537f0df1415c742e5b9acabc5a93008eeaf8fe16d0
MD5 0d66a1c9959ef4621719f6fceb490870
BLAKE2b-256 856a30d115b96905eb4de76653e9961298142ca8a2a418fe5e7392b6f73272c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 863c5bad55116ba36bb3a5f513591fce7f9065bdac876d2f7767bcc250082f1f
MD5 ba64fbddf7ae25fc3f77befd92285510
BLAKE2b-256 dea8cca0a9c98afdfb52d375ab3a1f32dcee170f4664637eef085e7fd10e94aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de9106760eafe3c254f4dc3e53dffd79e6de09c34d5377d043568416549fb8d2
MD5 cb8e3af57793ad2c135d6cddadbf1476
BLAKE2b-256 856fe727a8b9148b6ca7780dbf896c60f05fae810e3b06ca3b35a1d978d2f2b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 462d31cfe199c1068b49fa26a3b0ca2980cf70757746210f7a4461b8f7432514
MD5 facccfc5bd6c4d028d32d67a2aa5e4d2
BLAKE2b-256 d46a0a0399e78c671c343293670eca4bafca5a46915fa5940a7edb92601edf34

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mudataoom-0.3.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.3.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3125ada69f6974c4f77466414f1748c6be9df5ade56ea34ace18650ac2229a47
MD5 56f6644378c408b8ff1f299279628e34
BLAKE2b-256 c7006e9d2bedb80e23e22bc29938652f8222acd64e547b82aaae56466e01cbac

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.3.0-cp39-cp39-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/mudata-oom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page