Skip to main content

Out-of-memory AnnData powered by Rust (anndata-rs)

Project description

anndata-oom

PyPI Python License

Out-of-memory AnnData powered by Rust — a drop-in replacement for anndata.AnnData that keeps the expression matrix on disk and runs entire preprocessing pipelines (normalize, log1p, scale, PCA, neighbors, UMAP, Leiden) as lazy transforms or chunked operations. The full matrix is never loaded into memory.

Built on top of scverse/anndata-rs, the Rust implementation of AnnData.


Why?

Standard anndata.AnnData loads the entire expression matrix into RAM. For a million-cell atlas this can mean 100+ GB of memory — beyond what most workstations have.

anndataoom keeps X on disk (HDF5) and streams it through the preprocessing pipeline in chunks. Peak RAM is independent of dataset size.

Memory comparison

Dataset anndata.AnnData anndataoom Savings
PBMC 8k (7.7k × 21k) 1.5 GB 54 MB 27.8x
100k cells × 30k genes ~12 GB ~700 MB 17x
1M cells × 30k genes ~120 GB (OOM) ~700 MB 170x

How?

Each preprocessing step adds a small "transform descriptor" (a vector or flag) to a lazy computation chain. Data is computed on-the-fly during chunked reads from the HDF5 file:

X (HDF5 on disk, Rust I/O via anndata-rs)
  → TransformedBackedArray      (normalize: ÷ per-cell size factors)
    → TransformedBackedArray    (log1p: on-the-fly)
      → _SubsetBackedArray      (HVG: select 2,000 gene columns)
        → ScaledBackedArray     (z-score: stores only mean/std vectors)
          → Randomized SVD      (chunked matrix products)
            → X_pca             (n_obs × 50, in memory)
              → Neighbors / UMAP / Leiden (operate on X_pca only)
Step What's stored Peak memory
Read File handle ~0
Normalize Per-cell factor vector n_obs × 8 B
log1p Flag only 0
HVG subset Column index ~8 KB
Scale Mean + std vectors ~32 KB
PCA (working set) Y, Q matrices (k=60) n_obs × 60 × 8 B
X_pca Final embedding n_obs × 50 × 4 B

For a deeper look at the lazy operator model behind this — how nodes compose, how data flows through the chain, and why subsetting stays O(1) — see docs/transform-chain.md.


Documentation

  • The Transform Chain — design walkthrough with ASCII diagrams of the lazy operator model (BackedArray, _SubsetBackedArray, TransformedBackedArray, ScaledBackedArray) and how chunked reads flow through it.

Installation

Prebuilt wheels (recommended)

pip install anndataoom

Wheels are built for:

Platform Architectures Python
Linux x86_64, aarch64 3.9–3.13
macOS x86_64, arm64 3.9–3.13
Windows x86_64 3.9–3.13

Wheels bundle a statically-linked HDF5 — no system dependencies needed, no Rust toolchain required.

Build from source

If no prebuilt wheel matches your system, pip falls back to source. You'll need a Rust toolchain:

# Install Rust (if needed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

# Build + install
pip install anndataoom

Or for development:

git clone https://github.com/Starlitnightly/anndata-oom
cd anndata-oom
pip install maturin
maturin develop --release

Quick start

import anndataoom as oom

# Read an h5ad file — matrix stays on disk
adata = oom.read("large_dataset.h5ad")
print(adata)
AnnDataOOM                                 [Rust · out-of-memory · backed]
Dimensions:  n_obs: 100,000    n_vars: 30,000

┌───────────┬──────────────────────────────────────┐
│ File      │ large_dataset.h5ad  (1.2 GB on disk) │
│ X         │ csr_matrix · float32 · 5.3% density   │
│ Chunk I/O │ ~20 MB per 1,000-row chunk            │
└───────────┴──────────────────────────────────────┘

▸ obs     (8)    batch · cell_type · n_counts · ...
▸ var     (3)    gene_name · highly_variable · ...
▸ obsm    (–)
▸ layers  (–)
▸ raw     (–)

Chunked operations

# Sum over all cells — streams the matrix in 1000-row chunks
row_sums = adata.X.sum(axis=1)       # ndarray of shape (n_obs,)

# Per-gene means — one-pass chunked Welford's
mean, var = oom.chunked_mean_var(adata)

# Iterate chunks manually
for start, end, chunk in adata.X.chunked(5000):
    # chunk is a csr_matrix (or ndarray) of shape (≤5000, n_vars)
    ...

Subsetting

# All forms of indexing work
sub = adata[0:1000]                          # first 1000 cells
sub = adata[adata.obs["cell_type"] == "B"]   # boolean mask
sub = adata[:, ["GENE1", "GENE2"]]           # by gene name
sub = adata[:, adata.var["highly_variable"]] # after HVG selection

# Returns a new AnnDataOOM — still lazy
print(sub.shape)   # e.g. (17003, 2000)

Single-gene access

# obs_vector reads exactly one column from disk
expr = adata.obs_vector("CD3D")   # ndarray of shape (n_obs,)

Integration with omicverse

omicverse automatically detects anndataoom and uses it as the backend for ov.read(..., backend="rust"):

import omicverse as ov

# Read — returns AnnDataOOM if anndataoom is installed
adata = ov.read("data.h5ad", backend="rust")

# Full preprocessing pipeline — all chunked/lazy
adata = ov.pp.qc(adata,
                 tresh={"mito_perc": 0.2, "nUMIs": 500, "detected_genes": 250},
                 doublets=False)
adata = ov.pp.preprocess(adata, mode="shiftlog|pearson",
                         n_HVGs=2000, target_sum=50 * 1e4)

# HVG subset — returns a new AnnDataOOM
adata.raw = adata
adata = adata[:, adata.var.highly_variable_features]

# Scale + PCA — lazy z-score + chunked randomized SVD
ov.pp.scale(adata)
ov.pp.pca(adata, layer="scaled", n_pcs=50)

# Neighbors / UMAP / Leiden — operate on obsm['X_pca'], no matrix touch
ov.pp.neighbors(adata, n_neighbors=15, n_pcs=50,
                use_rep="scaled|original|X_pca")
ov.pp.umap(adata)
ov.pp.leiden(adata, resolution=1)

# Plotting — all ov.pl.* functions work directly, incl. use_raw=True
ov.pl.embedding(adata, basis="X_umap", color="leiden")
ov.pl.dotplot(adata, marker_genes, groupby="leiden")
ov.pl.violin(adata, keys="CD3D", groupby="leiden", use_raw=True)

Full API reference

Top-level

Function / Class Description
oom.read(path, backed='r') Read an .h5ad file → AnnDataOOM
oom.AnnDataOOM Out-of-memory AnnData (full anndata.AnnData API)
oom.BackedArray Lazy row-chunked wrapper over anndata-rs X
oom.TransformedBackedArray Lazy normalize / log1p transform chain node
oom.ScaledBackedArray Lazy z-score transform
oom.is_oom(obj) Check if obj is an AnnDataOOM
oom.oom_guard(...) Decorator: auto-materialise for in-memory functions
oom.concat(adatas) Concatenate multiple AnnData

Chunked preprocessing

Function Description
chunked_qc_metrics(adata) nUMIs, detected_genes, n_cells per gene
chunked_gene_group_pct(adata, mask) Per-cell fraction of counts in a gene group
chunked_normalize_total(adata, target_sum) Lazy normalize-total
chunked_log1p(adata) Lazy log1p
chunked_mean_var(adata) Welford's mean + var per gene
chunked_identify_robust_genes(adata) Filter low-expression genes
chunked_highly_variable_genes_pearson(...) Pearson residuals HVG selection (2 passes)
chunked_scale(adata) Lazy z-score
chunked_pca(adata) Randomized SVD with chunked matrix products

AnnDataOOM methods

All anndata.AnnData methods and properties are supported. Key ones:

Property / method Behaviour
.shape, .n_obs, .n_vars Dimensions
.obs, .var Pandas DataFrames (eagerly loaded; small)
.X Lazy BackedArray (never loaded)
.obsm, .varm, .obsp, .varp Dict-of-ndarray (loaded; typically small)
.layers BackedLayers dict (sidecar HDF5)
.raw _FrozenRaw snapshot (shares backing file)
.obs_vector(key) One column from disk (no full load)
.chunked_X(chunk_size=1000) Row-chunked iterator
adata[idx] Subsetting (returns new AnnDataOOM)
adata.copy() Shallow copy (shares backing file, no RAM cost)
adata.to_adata() Materialize to standard anndata.AnnData
adata.write(path) Chunked write — doesn't materialize
adata.close() Release file handle
repr(adata) / _repr_html_() Pretty text / Jupyter display

Benchmark: PBMC 8k (7,750 cells × 20,939 genes)

Full preprocessing pipeline (QC → normalize → HVG → scale → PCA → neighbors → UMAP → Leiden):

Step Python (MB) anndataoom (MB)
read 148 37
qc 280 54
preprocess 328 24
hvg_subset 450 24
scale 382 54
pca 846 33
neighbors 1195 33
umap 1500 34
leiden 1502 33
Peak 1502 54

27.8× memory savings on this small dataset; ratio grows with scale.


Supported h5ad formats

X format Reading Lazy ops Notes
Dense ndarray float32 / float64
CSR sparse Most common scRNA-seq format
CSC sparse Column-oriented

anndataoom automatically preserves sparsity through normalize and log1p (sparse → sparse), and materializes to dense only where algorithmically necessary (z-score, PCA).


Architecture

anndataoom is a thin Python wrapper over scverse/anndata-rs:

┌──────────────────────────────────────────────┐
│  anndataoom (Python package)                 │
│  ┌────────────────────────────────────────┐  │
│  │  AnnDataOOM                            │  │
│  │  ├─ obs, var (pandas.DataFrame)        │  │
│  │  ├─ obsm, varm (dict of ndarray)       │  │
│  │  ├─ layers (BackedLayers — sidecar H5) │  │
│  │  └─ X (BackedArray — wraps ↓)          │  │
│  └────────────────────────────────────────┘  │
│            │                                  │
│            ▼                                  │
│  ┌────────────────────────────────────────┐  │
│  │  anndataoom._backend  (Rust extension)│  │
│  │  ├─ AnnData (pyanndata)                │  │
│  │  ├─ PyArrayElem (chunked() iterator)   │  │
│  │  └─ Statically linked:                 │  │
│  │     ├─ anndata (Rust crate)            │  │
│  │     ├─ anndata-hdf5                    │  │
│  │     └─ HDF5 C library                  │  │
│  └────────────────────────────────────────┘  │
└──────────────────────────────────────────────┘

The Rust extension (anndataoom._backend) is pinned to a specific commit of scverse/anndata-rs for reproducible builds (the same commit used by SnapATAC2).


Limitations and caveats

  • Writing back to X is lazy — modifications via adata[mask] = value materialize X in memory. Use adata.obs, adata.obsm, or adata.write(path) to persist changes.
  • PCA accuracy: chunked_pca uses randomized SVD with 4 power iterations — top ~20 PCs are nearly identical to standard PCA; PCs 30+ start to deviate. For publication-quality analyses, consider adata.to_adata() + standard PCA.
  • Some ops require materialization: score_genes_cell_cycle, find_markers, non-Harmony batch correction, etc. These auto-materialize with a warning.
  • File mode: Default backed='r' (read-only) protects the source file. Use backed='r+' if you need to write back (advanced).
  • Concurrent access: HDF5 files default to exclusive locking. Set HDF5_USE_FILE_LOCKING=FALSE in the environment if multiple processes need to read the same file.

Comparison with alternatives

Feature anndata anndata (backed='r') anndataoom
Read without loading matrix
Subset (lazy view) ✅ (view) ✅ (view) ✅ (new AnnDataOOM)
Chunked iteration ❌ (manual)
normalize / log1p In-memory ❌ (read-only) ✅ (lazy transform)
scale In-memory ✅ (lazy z-score)
PCA Full SVD ✅ (chunked rSVD)
Plotting (scanpy/omicverse) Limited ✅ (via omicverse)
Modify obs/var
Peak RAM (1M × 30k) ~120 GB — (can't process) ~700 MB

Development

git clone https://github.com/Starlitnightly/anndata-oom
cd anndata-oom

# Install Rust (first time)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env

# Build in editable mode
pip install maturin
maturin develop --release

# Run tests
pip install pytest
pytest tests/

Contributing

Contributions welcome! Areas of interest:

  • More lazy transforms: regress-out, harmony, scVI integration
  • Zarr backend: currently only HDF5 supported
  • Dask interop: expose BackedArray as a dask.array
  • Query engine: SQL-like filtering over chunks

Release process

  1. Bump version in pyproject.toml and Cargo.toml
  2. Update CHANGELOG.md
  3. Commit, tag, push:
    git commit -am "Release v0.x.0"
    git tag v0.x.0
    git push && git push --tags
    
  4. GitHub Actions builds wheels for all platforms and publishes to PyPI (via trusted publishing)

License

MIT License — see LICENSE.

Built on scverse/anndata-rs (MIT, © Kai Zhang).


Citation

If you use anndataoom in published research, please cite:

@software{omicverse,
  title  = {OmicVerse: A framework for multi-omic data analysis},
  author = {Zeng, Z. et al.},
  url    = {https://github.com/Starlitnightly/omicverse},
  year   = {2024},
}

@software{anndata_rs,
  title  = {anndata-rs: Rust implementation of AnnData},
  author = {Zhang, Kai},
  url    = {https://github.com/scverse/anndata-rs},
  year   = {2022},
}

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

anndataoom-0.1.6.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

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

anndataoom-0.1.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

anndataoom-0.1.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

anndataoom-0.1.6-cp314-cp314-macosx_11_0_arm64.whl (24.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

anndataoom-0.1.6-cp314-cp314-macosx_10_12_x86_64.whl (25.6 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

anndataoom-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

anndataoom-0.1.6-cp313-cp313-macosx_11_0_arm64.whl (24.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

anndataoom-0.1.6-cp313-cp313-macosx_10_12_x86_64.whl (25.6 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

anndataoom-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

anndataoom-0.1.6-cp312-cp312-macosx_11_0_arm64.whl (24.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

anndataoom-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl (25.6 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

anndataoom-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

anndataoom-0.1.6-cp311-cp311-macosx_11_0_arm64.whl (24.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

anndataoom-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl (25.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

anndataoom-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

anndataoom-0.1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file anndataoom-0.1.6.tar.gz.

File metadata

  • Download URL: anndataoom-0.1.6.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for anndataoom-0.1.6.tar.gz
Algorithm Hash digest
SHA256 4ff1e5ff0e2c609d6df512cdad2eaad16a45a1416bedd6aef358f7576913b7db
MD5 ed7e5a563d49b9866b4d93b990a79033
BLAKE2b-256 d632c0b9ed7924bd1edd8cf6075c632927c748e8ad3cf3b86f78fe172ec60650

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6.tar.gz:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3283a21b95d251fb44e9bdefc031a7d0820c092bacabe574bf4c97f5d53e4949
MD5 d2ed7d0024085e035c7698c5725c94d8
BLAKE2b-256 a7aef1e2cb8533eab94b175113995ddd8a803a6343255655b5b038e54ad7d953

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3cc081fe8ed4ac29b7442d2ef4c68dbecff5d5c6666cb18474a7e929cf864bcc
MD5 5668f5885e5d402261ae117de72a2e27
BLAKE2b-256 43d19396a7ca15388ad57172d662ea2711cbf496b15b985f52a71633a77c1417

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f7914611950fc3e3782b93d62b6207bac9cf5d4c8a300225072a77493250a90
MD5 fb270743d24706b6f53942883c44e615
BLAKE2b-256 3460d09e128c312c9b407840d0f16e7752683649e9d8e109eccf79717d27686b

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5b274e24b2689a96551097bfcd1a65db7f692dc80d6b81b710331423580f9943
MD5 605c35454ad670da901705285dc6605f
BLAKE2b-256 2dd80d7b467f3ff0cbc7a738cb4e6fc6870f9ca5ed7263f04d442b7b3c1ff645

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea867a1593552ed906ea95fb5282873bc2908997a8993bcf8e1871ce48630c95
MD5 3be55938dd4a2a534cba7c641e4ddc8d
BLAKE2b-256 653f0e4752a58e5a960641717904873fe8e63c89f5ceb3794271554f1b9b1929

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3ff3cc8bfd9afb1aa28eef6e750c0b889375f83d085814336cff6775a7d954f
MD5 3337f78ab1128f7cdb79adc6d96e54cf
BLAKE2b-256 248a6d730eac87214b4c5773c787f41f8311dd4edda4487ecd9470b9e3a7a4a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 156e3261fa1a5c424530a05e1c83a934f640171a8c74e4c1834db01c639cfd93
MD5 8d82a0b46488b1fce05b2ec6434475d9
BLAKE2b-256 c07bb4efc1107975456e5c1da4faba60c47b7c72a9da4b69b9812028a13b4bd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7770104e09b27f0e12c2b128571f93c2e5f115e1cd8cf3904043cd495fb910b
MD5 b25d215fe40daa90de1828dc474ca730
BLAKE2b-256 eb983ea0c8c1263aafc86f78f04cb62f1836efc2b7b14751e6a13b74fbe6d06a

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d81ed86527dc0d6e9474fd9a38fd6ee63696c5687a578a44e67218623d680a6
MD5 420c8b7947cd7644ab5fe7d104f0c3f1
BLAKE2b-256 ef5a012c006107f5cd04be16b9a5dbad22fa9af5fa1a37ef97571f16795b42ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d161ea3ad4d39e021c6f95a857cf8447c67d35fa7e6eb03a1ec6100740961f67
MD5 c085dfdbfc357b7d7c08aa8e345b76e4
BLAKE2b-256 89611da0333c1028220d506b89dc183c2e5cbfb35194d1fa9697c18426e2b807

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86ebc4a0466cf459bd4433e8c50dcf2880d7a09fc19aaa95017c11009b8b2c25
MD5 8af919f3b74e2cb10fdaf4f7c46080c7
BLAKE2b-256 57c8e6382cb5edbec58df2e8d0ce37a39cddd4caded4511731fd8dc7d380fe5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ebde6eda0c8a03927bf4482ab290daee01a1f95f5d113a4388cae77831686dd1
MD5 234e0081d7f360549b7303d3a7abf205
BLAKE2b-256 ee5d3d6e36393ffed48474da66bd45f6b9417a087f54e217e99c48f6e2aa58b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 de77e0543f02071b317e9246a5cc87ea0c5ac1407deb4548dbdabfd62bcd3451
MD5 1c5c2c54603672378932ce4304f81888
BLAKE2b-256 1cd01c9a7cd365a7cbc803b661cbef63314898fe65fbdf15f7fc38a2699827db

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea716d93bf12e5ae37a1a4f294ac1c4a582ae137f966d64c14385c31c307de03
MD5 4ac7f4becb54656bab6cf130ac2f97d9
BLAKE2b-256 4bdbfef8c7e4b635038bd88d9f93c1ce34e2d1394014f8c03d63b9094ae564a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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 anndataoom-0.1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c8042dadc4282891e3af1cae9c2cf4f78d9dabe0cb256e9c9c691b690364ebc
MD5 8492972cfee984b707e9ae23cb9ac9c8
BLAKE2b-256 47dc1564abad5fbe2dc303f5fe8d85974b89d05f437fd6b188df79b3cd5b7995

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on omicverse/anndata-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