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.1.0.tar.gz (160.5 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.1.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.1.0-cp313-cp313-macosx_11_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

mudataoom-0.1.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.1.0.tar.gz.

File metadata

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

File hashes

Hashes for mudataoom-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b0a4eeca73e8e7b92a20a0f210c3ccb26134090a63700db4a42ba4ab4523a76c
MD5 a2866e1c7a339583409e919fa399892e
BLAKE2b-256 181e9e72f4a75d879019bda504abdc2b9fdfc674ec62ccb3023be0c6c9e066b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9194aba939d561f406ac02045f1fb2541b46bc1d6d89f1b18e13efa8efde40ed
MD5 96357c4ed0a9003c80cfb6ba9a6cc200
BLAKE2b-256 6fb6d2a3a4fc0f5028904358d7f9affc5633a6f9b27da97d7956cd2f7ddc3828

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38b47759c1458dd13fc4906e9cc6842d4ecd72f5889243ad3e5a9f342cb72d1f
MD5 e596f32c471c84da1fd7976ba125c6c4
BLAKE2b-256 e0ea186488400bb533ebd2fd8e04cbc69fde66647a3323a2818cc8255cda91c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 012bfcb9f827f848ff4f4e9d39f9233bb424023cefffc90b13f6d301c444b1f4
MD5 fcea0983840f24aeebe6d038df97ee82
BLAKE2b-256 ada2944b1e546c70fd4ea9d1721df8ea03d1692c003fcf81f2c93bd203679247

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 74d1ea8bd19d7b6b299bce5df8c7c30893d027867e444d1aaa54d216b76efe15
MD5 1fd1c04ef5adcde6c9c0d51b2ed10401
BLAKE2b-256 61cc1450300aa680276ba915cb8656785a4cacf394f36e81b0fb247ba0967132

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04c5c247352c59569437d1127d406fd608e43f4daa18ff8a11f9ba3a5ca770e9
MD5 0537bc10701dbbaed56659d4f3265e23
BLAKE2b-256 bd6054ae19c5ff59e50a33804baaf76076ace804c2486231d28afe9516ac5335

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eef891526d4e18d0c0f84b508642978b83828c90f6d47dfcb3389c45a211fc34
MD5 3ad2a07ff61a9bdf337e3af192a9a4c8
BLAKE2b-256 a801685432c158975cae032985f5321de0f28ad9f7ddff54490afecb0181ea65

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c74774c46c8d033d062cafa5f52b408930ea2b31d454a29c319b1995a6d64ed
MD5 feef783817ecd8ae9203da84544774c9
BLAKE2b-256 c0c4187b0369dc5ab10b92c27d978159119ceef68b589f4f0707a65ba7a7b8dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3036e3adf437a815b805807d80fbc4eab472a19f824f465275008adcefe89e2c
MD5 91a60476dc76bf2d926749420bbcc9ae
BLAKE2b-256 c4a3fa6bcfd6be82ece1208918adab7a98d456d9b684e6c3a9c2781e74d58946

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 513b8cfeae346d34e32f5290a0b1cf60dc0121a53f1b631ea202ae234d25e0fe
MD5 5bedd1af98ba7a3e0e80cf6fddcb2234
BLAKE2b-256 1097265cb73ae614a50d754589f6dd073e054934c6e83777408a865084ac4c4e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3005c74c061913f3b46f846b778b36738f1105159b39f2138294fc24335684f1
MD5 699aee476faa2525996f22c7b916c7af
BLAKE2b-256 139787a53b769a65b641c59f172806558c3367cdf419f2825b09f00cd480464f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a46416f9f670a8b315dc95a7eb84a8696ff248322c55909fd792a62840834ed
MD5 788a248e8f25616ae6da404a55a8ef47
BLAKE2b-256 4bd5e561def612c950dd9dd15ece3d0fa7c353c82a7a11d6b0146de1286410cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eae4022a190e756b7b4461c4c946c244185077848cefe9802d652ae654e74ea4
MD5 052575f11f3b94ca9c4e8d5adc74e787
BLAKE2b-256 620d3e91ef5ebddc322e9121f03c5668e63c5263965a870664d3046be4188256

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba3e0a982993d58ba996bbb8c948be881f15f45e9c7e57e18c9eff6c8eaa65c2
MD5 4d8165a873d5f20ca59511a2f0dffa47
BLAKE2b-256 7b9e576209c6c1b773bae2d75d2df5b6399c06624e99cef160f48bd398408722

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7983e7c8441c4b98566de61ded9a5854e794ac2fe79399b900ea323c7bb1798
MD5 8f8d2671a623fd576facb6b537920548
BLAKE2b-256 8ba8f81d486ebfcc6a12ae2af87f4acfaa3b78820c1d7c02c4dc8c9539a2e393

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mudataoom-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 84b9ccf207d2281da4fcc743d9a0e0e3f52dfa5673f627797a1fe61ae8828138
MD5 797927df2637988cab643895be76322c
BLAKE2b-256 d3e7d347986d2577cf9300299070eeb91deba02eb4157c0ef5ae5991e989c8d9

See more details on using hashes here.

Provenance

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