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.3.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.3-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.3-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.3-cp314-cp314-macosx_11_0_arm64.whl (24.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

anndataoom-0.1.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: anndataoom-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 8d28af381ef971fdeb90a7289bc3191fb07ddda35a892aee0cdfcb0e637efba1
MD5 546c914a6e6048aaac8ebeedae7d6f74
BLAKE2b-256 a12030896af8f995c856091fa9f343c7ee1ab5f09c877b931632d5d0b5d13753

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3.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.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00c6b800c2e6135d241a1c4d68a9189383f6330c6bbddddff19c14826edb1570
MD5 7c059b9c5eb7896491a27e19356773f7
BLAKE2b-256 8e93005f7978870be281fc0ae280c542e6b988b456bc59cb82ae5b3ad66986a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 740eea54e9fa5dff93cbe5711c950012af3f51555466a4354bfe408bb5f367d9
MD5 7f3f6f40fe31bbc6303ff44105510d8c
BLAKE2b-256 46db9eccc337d7a4e86e43d106f31bfe2651b7a091f31a8dfd3b4686abe64396

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37e2bfde85e3cd19bed433687d604a0b9cd38bbd63848dd589bc86ea360bc609
MD5 de9b10a527b0dcf255a46c92f005f000
BLAKE2b-256 738483f3b03435c787699fa97f02b9b8a2281c15ad07889557ffb176d9d848a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1ef17e4a5f43efde3d1e3e898f45731798df4b5b7109a019d403c9d5dd82b306
MD5 8f79f06b2b8ac3e7d4221ca45923e756
BLAKE2b-256 1f6a0f8936c0365dca07d0f5a14c54356892fa2414d0a0cf35cdbfea8dc85d4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 72f88530210a2795d8813e5ab6bcb56346e6eaf3f41600e7be929e2c44d3fd55
MD5 9b8faae33111e121ce4ef7f789c2c355
BLAKE2b-256 cb314759204a6a52ec7c52953a190940780ee1b82d752656d0cbb1f9fffad74e

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0ccddd0b405e81683833136eb6af732ad8ef74d87a23fff97fa61698a9be631
MD5 26c7c3025e27a41dec39bb2dd4d27d0e
BLAKE2b-256 612354694e8d716936a7b0ea0962c3f6dbb15c7ac8aff6fd8583124a9f4adc90

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 97bfe834ef17a82d072b5e3c72242b996b8a450591c10e890ae7c688bd17599b
MD5 9d0f28764220491e016ab9899734dcb6
BLAKE2b-256 1a0cf6a72237f31e1f5f0932d6e1f24a5a2b03be3e1152ecd7a86c48804f7750

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e154dc7a62cd82fb8b5355ee9cb107191c6af7b5af63f1575877116bc7e824ea
MD5 ed2b24a8b4a555516600b28a072e06d4
BLAKE2b-256 6a95443c46107960e0981b70ccd66de16a7888540d05093af6d3794865bd50b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f15b6ce779e8161b58d88d1857bedcafd94686533730606a63ac5ac7bf551b6
MD5 92e61edce76dbef6c110b9d506b5a210
BLAKE2b-256 0cbccd04b6d09d7f6a6554daa146b6c582101186300196a2ac0b62bf3e4c7896

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6a61ddb71a2be56b03f391d89caf7354234c353a114715e5b45f17d9e634a3c4
MD5 ef88a38064be482857598236e8c2d9a9
BLAKE2b-256 248f09f94555699a702d3353a87522ee5b6a6df1b3caccea6d1522a27c39b4ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bafba10ac90cf8f7ba0da2503fb47d1fb96dbc5502db1a52f344410247488cd
MD5 bd1fe3bf90b3e39ee15dc44277487d88
BLAKE2b-256 754511f968dbf21a32892e6852ce0951d6fb75331dd9318209e65d282bd62b87

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d4a5d0bdf8c804360b181a380ba78461c375eb61b6a3e044cd0dc819bbee602
MD5 8cf718d3fe0779f71e4a4b83a6a19726
BLAKE2b-256 2b9f5add10d3700f634da18fcb1c125bea82bf4ab180151eb2cda8af117aa3f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e81e362812f63d4772a28d9361efec12317eef78c47638b80ecafaf6f6258449
MD5 a6f20bb7aa637ffd1257934d9bfa69ca
BLAKE2b-256 efc7095bd51b1dad453533d9475216a488f8807db67453286d0d54590915c713

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fcb9eaecae5af853ba5e647e45f51fc11d0b5d649484ce3b142a21162427700e
MD5 d3471bc9863713835ddefd096c1d9d2e
BLAKE2b-256 28c6b3919ba3fac17f37fe756184a6866ebe2c281cc42c600d179581ead9a34f

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for anndataoom-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5373d5d0084cdae3c0e744ea7e27029a0451e189201436b3281535f92c8eecb5
MD5 6b08c5d72e1fe33527abea4d8767f6aa
BLAKE2b-256 57bcb3b75eef82a3eb859442e3791b228d8d0e3bb7e67aea4e0203041a7843cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for anndataoom-0.1.3-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