Skip to content
NygenAnalyticsPublic

About

Fast, out-of-core single-cell analysis in Python for RNA, ATAC, protein, and multi-omic data, scaling to 100M+ cells. Mount remote datasets, work within a memory budget, and trace every result through built-in provenance.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

CyteArc

Tests Coverage Documentation PyPI Python 3.13, 3.14, and 3.15

CyteArc is a fast Python framework for single-cell RNA, ATAC, protein, and multi-omic analysis that scales to 100M+ cells. In benchmarks, it processed one million cells within 15 minutes, from cell filtering through UMAP and clustering to marker gene identification. On Tahoe-100M, the same workflow ran in under 20 hours without any subsampling.

CyteBase is a ready-to-connect repository of CyteArc datastores, containing approximately 200 million cells and 1.1 TB of data on Hugging Face. CyteArc opens them by URI. Mount remote datasets for reanalysis and build or reuse references for mapping new cells, without downloading the complete count matrix. Counts stay remote while you save your own results in a store you control.

CyteArc's built-in provenance connects saved results to the exact cells, features, parameters, and upstream computations that produced them, so you can reuse completed work and trace each analysis.

Problem How CyteArc solves it What you get
Your dataset is larger than RAM Out-of-core algorithms, and neighbour search streams from cell-major and gene-major layouts, inside a memory budget you set Analyse the selected cells with explicit memory controls
The data is stored remotely and requires downloading Fetches only the chunks an operation touches, and writes results to a store you own Start analysing immediately, with one authoritative copy
A single parameter change costs hours of computation Each step is fingerprinted by its settings and inputs, so reuse is by content, not by layer name Only what changed recomputes, and the old version stays for comparison
Sub-population analysis leaves scattered copies that nobody can trace back Subsets are masks in one file, and every result carries the cells and parameters behind it A year later, a result still explains itself

Install

Python 3.13+.

uv venv --python 3.13
uv pip install --python .venv "cytearc[extra]"

Detailed installation instructions here

Quick start

import cytearc

ds = cytearc.DataStore(
    "s3://bucket/cells.zarr",  # also gs://, hf://, or a local path
)
run = ds.pipeline.run()  # durable QC → graph → UMAP → clustering → marker run

ds.plots.embedding(
    run=run,
    layout="umap",
    color_by="clusters",
)

Read the scRNA-seq tutorial for a granular workflow, or remote stores for cloud setups.

CyteBase

CyteBase provides a searchable catalog of public datasets stored as cloud-hosted CyteArc DataStores. Search by study, tissue, disease, or organism, then explore published cell annotations and available embeddings. Public access needs no credentials. CyteArc opens each dataset by its Hugging Face URI:

import cytearc

# A CyteBase dataset in the October 2026 release.
uri = (
    "hf://buckets/Nygen/cytebase-2610/datasets/"
    "mcglade_2021_scrna_data_human_fallopian_tube_30f5e171/data.zarr"
)

# Open it for read-only exploration; counts stay remote.
ds = cytearc.DataStore(uri, zarr_mode="r", storage_options={"token": False}, min_features_per_cell=-1)

# Create a writable local store for your own analysis, keeping counts remote.
analysis = cytearc.mount_datastore(
    uri, at="fallopian_tube.zarr", storage_options={"token": False}, min_features_per_cell=-1
)

Use analysis with the pipeline shown above to save new results locally. Computation runs in your Python environment, reading count blocks over the network as needed.

To search the catalog for dataset URIs, install the separate cytebase package (pip install cytebase) and see the CyteBase documentation. CyteBase datasets explains dataset URIs and releases.

Documentation

Read workflow vignettes and API references in the documentation.

CyteArc's capabilities

Area Methods
Modalities scRNA-seq, scATAC-seq, CITE-seq, matched multi-omics
Core workflow Quality control, feature selection, normalization, PCA and LSI, KNN graph, UMAP, densMAP, t-SNE (optional tsne extra), Leiden, Paris, marker search
Integration Harmony, partial PCA, shared and weighted nearest neighbours, integration metrics
Mapping Symphony-style reference mapping, label transfer, projection diagnostics
Trajectory Population Balance Analysis pseudotime, expression dynamics and modules, multi-sink fate probabilities
Also included Cell-cycle scoring, gene-set activity, graph-diffusion imputation, doublet scores, HTO demultiplexing, pseudobulk export

Support

GitHub issues

CyteArc is open source software released under the BSD 3-Clause License and maintained by Nygen.

About

Fast, out-of-core single-cell analysis in Python for RNA, ATAC, protein, and multi-omic data, scaling to 100M+ cells. Mount remote datasets, work within a memory budget, and trace every result through built-in provenance.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages