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

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.1.tar.gz (1.1 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.1-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.1-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.1-cp314-cp314-macosx_11_0_arm64.whl (24.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

anndataoom-0.1.1-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.1-cp313-cp313-macosx_11_0_arm64.whl (24.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

anndataoom-0.1.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (24.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

anndataoom-0.1.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (24.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

anndataoom-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (25.6 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

anndataoom-0.1.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: anndataoom-0.1.1.tar.gz
  • Upload date:
  • Size: 1.1 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.1.tar.gz
Algorithm Hash digest
SHA256 c3508aaadd98764602d5be54096dc51be8141029b2bff5991f6dc68d8808cb1e
MD5 9530ab4540843cb7ba1b62513d9a7371
BLAKE2b-256 3b6b9860a7526038607aa95c4e977927bdc395a64b0f678e7ac8bf53cabc6ea1

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c629fef89aa751b607b825c686d9a0448e079fb5293a336dfd76687e4a4986f7
MD5 0880527b20c1b04ac3b5680595b382aa
BLAKE2b-256 c446cd24b48ed8011497b3c84e31504ea4d5bc8f3f9c6d31fc75dcb2f7e2cff5

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 019438e9606e9f49c68ab50b4c72acb2b847a9eb5ed0eff54c9319f82c719b17
MD5 fad1087aa232ba3a37f9133344195a78
BLAKE2b-256 bf6ba9063a728be21877600e671be6f4fc99763f740d231e6233d7c25422a4ff

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13e371d755f573250b75589c15f41c44775cf88ff4271b30a0b6d13d7ac1db15
MD5 3dcbdb77f8d8b83b7ff0b024436cfa85
BLAKE2b-256 54ca424b01d6d39241597d9ad03fe2e5cb43179203ad8cc30f7db09891f7cf0f

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 757524a4999f8a9266a6bbed50c3fba239cbe9f16cf9516fc46f5a98948e21f2
MD5 73b1f8bd2e236ca4f1bd699c320097ac
BLAKE2b-256 50959921f552a1fc33056922fbae01318fcd93135f78c235751a93e8b56560ae

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 76cb1a3c29b3579cf3dc9ef5d58210a285d28b82c82e681824e0721312110cb6
MD5 f27ca2f0f00b2dead5f2d1d0c5764695
BLAKE2b-256 1fab00a88dbaa68ac81f978c8811fafe260407d8d064ccffd6865fcefbd915c8

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d70e4369601a62a9a8bfd116218ad901ee59f3d08f8d4c8086e658154b15835b
MD5 c6f82562ec65340d93a105ebe54262bc
BLAKE2b-256 1e8d9909d0446ee9665e385888283092c6f7eca4355eb5678e99cb618e6e6216

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3d7d1aa020928438ba6fc398fbccd3f652c1c74ed6e55299b9e9ea81c1964024
MD5 12983efeb088748b00f6dfedc0287c17
BLAKE2b-256 99db46851f938d7bb2995c471cc63db4cde1213e013d3a759968b097805aed52

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f68646b3125199b74a3451b932768009bdf776a008dc1bcacff4f4851a9ac777
MD5 838b83854b8614f9d852a4fecceb96a7
BLAKE2b-256 0002656be792bcd3be1fa519a32ddc05b188749dac89623eb402f1870320c188

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7376ef983889837563c5d1446f77bac722ae9fdc1ecd060382afffbd9c444f3
MD5 06eb5651295e0cbabf4e0262ff8d6040
BLAKE2b-256 aa243be9c7d3b9f3851dc42d9325089d96a516fb8f10b8dc594d3e8bfa708169

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 90db748adc1650b5c02cfb79e95c503b0ad446f319fd7562cde21e6eb9937223
MD5 c36b58f1f12c0a317c45474ce4a60a03
BLAKE2b-256 e0169e174a56d30451a26d7314cbc8128696fd509309be72f6eb53742acc8a37

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec59857b5a65e78e5e25abc8f05e55cbdcdd5ecf0bf757b6a1565348a14ee79a
MD5 5f94bd9a08bcc97ea528b78631688d3b
BLAKE2b-256 aadc1f3eff5501402b49eff4c1b331143dcebb808c77374f39e0f343427bbd3a

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 601523be4eea1e026c09be7bb0a504c8069028665e808eb1d8572d9e9b386e6d
MD5 e77bdee68c67743094620d62c9f9f8de
BLAKE2b-256 2dba98400c2c8607767f08f092a8c822fcd87a0dd60ae93fd1d93df5bd7ab304

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9672197408af27c311c96b760c211d6acae850d4bd5ccab11f34461b1900d704
MD5 bea7221df0db3e3cdde1a886f8ed5657
BLAKE2b-256 81be56f4f27c5046e92e7222d4fa8225cb3d062b3c9bfc1bfc46f4809f15db6d

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4bd40c30d63edececaf695238b521f34e01c78078d36a6925ef0fcec57775562
MD5 46374fe580c6014c5f8944ddaa065dc4
BLAKE2b-256 16f61c5a7932ba01d5c8f461de267f2d0d08969c7aee07ceeeb7328b0fb9be3b

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Starlitnightly/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.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3056589ced16fb253e7283e62f1362c275d7f660e771bb240a890a4d61098c94
MD5 f7682095ce0e75986ee26bbddcabeec6
BLAKE2b-256 f6ba53b561e3658f0bba3657d74b313ff4facc1c5f4fe8de31dda9db9935e8f7

See more details on using hashes here.

Provenance

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

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