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.2.0.tar.gz (165.3 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.2.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.2.0-cp313-cp313-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

mudataoom-0.2.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.2.0-cp312-cp312-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

mudataoom-0.2.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.2.0-cp311-cp311-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

mudataoom-0.2.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.2.0-cp310-cp310-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

mudataoom-0.2.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.2.0-cp39-cp39-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mudataoom-0.2.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.2.0.tar.gz.

File metadata

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

File hashes

Hashes for mudataoom-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c741c1da796f224e45bc4874cd84a0196c5a2e2a0666b4f527822c6a9c435aff
MD5 ffab6b0c7eb256ba5910b39ce4dc8bfd
BLAKE2b-256 e0e9bde2127e2a62a4a2b9d1ab39ca4964ad3d5a38e7b2151ba8675fa4f5c395

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb80fe6e62cd21e8940dd8a29d79668ea4e7d117e9b1401a4e1cf4d26ee30bd4
MD5 31c5b455486f3a2e569ef9983d9ce764
BLAKE2b-256 31a0f9581f22fa2f701957015f33f2ca71adc0e68d62efca53bc80ba922c55ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ee5011639d2b1c2da3394335cef579901172b341e2efeed15e123dee10f118e
MD5 a63041efc868e67ff54ece5b73b88482
BLAKE2b-256 6f4fa27845eda7c44161776aca3bebe7f5f150d6f690adcb2c6778e012344863

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0682c7839f469f8ba7543f93b81406a7a3e4f782eafc68f13c79bba8cf65fa91
MD5 57b3dd8dc8d3df8486a0dd08dfeb2eee
BLAKE2b-256 64d0f841e069142f117206a4dd4ab71571a5570446e301f768c4b094d8f09ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33c0a582d6ade6eb6b017299619c5e460a2cbe2bf067e25f3848d3d80199597d
MD5 f8341e2d07e2760d15c38a75f34861e1
BLAKE2b-256 ffb04b57cc3ae8fbb04bc5b9fa7943668f81e68d8a1237420b611890e3bb4ccb

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27bb1985d9d6918b803e1e02f1e9dab738a4963b2ae6ae8997f03bc553c8f053
MD5 ca44989c6f5f588a23f76445b4ad1d8f
BLAKE2b-256 1a4a789a782c3dac52cb23e9801427d44b46085f874f03712bc61e151905282a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 52b3a87441499f4d09b24ab6679eff65bdb5634c7243d8dac964df1e910d9401
MD5 4f7762825094a3030ff3e6dddf2fe458
BLAKE2b-256 608ad00dea7435190db038c52ffa058b864b8560d8298f91a7bf0c3e491a53da

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 765b8634c1c44782e946ef468c3b4a1c57aa69145abe957c077a4e0b79f80bdc
MD5 5dfb2c502f23a55dde67f4a99360088c
BLAKE2b-256 a6750520d3713529f7031c5435d321136d466e4ceff7f5f7850a1c1dc38a408d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25a758c2fb07c9bc96716cbd80b0ffe2dff2956a60876f3dcf66d1c8c84d3a76
MD5 e10cf36b6762c8f96d48f83ac0ba035f
BLAKE2b-256 7da48d8038f07d3a840b80680a6edd0654c6186ca7b560dcf87e286a10ad8173

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 331e16ec1d1460cbdda9eb50992d4ee6c251349a92bcf59c42ad64ff1fe566be
MD5 13b1573eebdaeb587a77ebafa0c96359
BLAKE2b-256 f5e7bd97e278cb5b9639e2b29db19f8ae058ccdbc71b59b9980b866d94861ee1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 507e03ce2d1499992b18766cfda74bee66455ca7102ee847cd4915793daa0eec
MD5 7e741c06c2e026f1440f6be7664dc80d
BLAKE2b-256 d7f0c80e369e58de2fcac7633a1cd9ed21d91892919b39cfcac5f91f1086b5bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1dc9dadcb05b5c14eaba57470f465e34db265c345a6b13ee5b2056b1c796dbbe
MD5 ec7914c8b9ecddf7fe3e8951f47d7385
BLAKE2b-256 3c19ae9e9e83cdfb470b3963e472a195af471b28b992dc41de8fc9a7cde6ffa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6d84ae5e6d26b0d823aacfe9bda825ae7f4981e153ec60b7ad6f3396952e987d
MD5 f9d496bc9dc7b5bb9086b275c62848cc
BLAKE2b-256 cb987c594839cafe4680916b9896060bc6de9ee0fdbec96571aa3c4b2c519748

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a614839711f6c3110a40382a8293e8f8cd6ba490af677447e75f282752146563
MD5 a966eb6a939f549f33bb02534d7a6cb5
BLAKE2b-256 de4b5dd9353570557cb60dc20ccace225981e1ce17eef65dc2616eb05ee3b7de

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46a2b9c77374a5406264d478cce2c5608b6d2a8d650c29d36f7a2e0cea30ab0b
MD5 33daf9105522bd2d7cb1910048e27f92
BLAKE2b-256 1426c4730e79b4ee055e5cf5ad0e81031cc61747cd0051ce0983c527b97da2f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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.2.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mudataoom-0.2.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8b8ef614c8707dc98f540a73765de09ace7f5656470a8d12829b0ecacc9cf210
MD5 b3b6a70daef95082c06266bc06e2d153
BLAKE2b-256 8fb664df55330b49d3a935c108076278c6a6d106a0fc5a2ff4d1cef7041f0d2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mudataoom-0.2.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