Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

CyteBase

A searchable catalog of public single-cell datasets, stored as cloud-hosted CyteArc DataStores.

Search by study, tissue, disease, or organism, then open a dataset from a local notebook or a cloud Python session. Explore its published cell annotations, imported embeddings, and gene expression without downloading an H5AD or a complete store. Public access needs no credentials.

Install CyteBase · Explore the catalog · API reference

What the catalog contains

The datasets come from CZ CELLxGENE Discover. Each public release is a separate, read-only Hugging Face bucket named by year and month. The October 2026 release (2610, in Nygen/cytebase-2610) was built from a CELLxGENE Discover snapshot taken on 2026-10-10 and contains primary RNA datasets from 376 registration-ready collections, converted to CyteArc stores. cytebase.releases() lists every release with its bucket, notes, and changelog.

Each catalog entry records the dataset’s title, citation, CELLxGENE links, size, and ontology labels for its tissues, diseases, cell types, assays, and organisms. The stores hold the RNA counts with the published cell annotations. When a dataset provides a usable UMAP (obsm/X_umap), the build imports it, so it can be plotted without recomputing an embedding. Cite the original study and CELLxGENE Discover when you use these data.

A first example

import cytebase

# Connect to the latest public release; no credentials are needed.
catalog = cytebase.Catalog()

# Search IDs, titles, citations, authors, and ontology labels.
matches = catalog.search("kidney")
print(matches)

# Open one of the matching datasets for read-only exploration.
dataset_id = matches[0]["cytebase_id"]
ds = catalog.open_datastore(dataset_id)

# Plot the imported UMAP; plotting needs CyteArc's extra dependencies.
umap_ref = cytebase.embedding(ds, "X_umap")
ds.plots.embedding(layout=umap_ref, color_by="cell_type")

# Create a writable local store for your own analysis, keeping counts remote.
analysis = catalog.mount_datastore(dataset_id, at="kidney_analysis.zarr")

How it works

Next steps

Report problems in the issue tracker. The documentation index for LLMs lists guides and API references for assistants that read this site.