alterlab-cellxgene — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-cellxgene (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The CZ CELLxGENE Census provides programmatic, versioned access to standardized single-cell genomics data from CZ CELLxGENE Discover. The 2025-11-08 LTS release holds 162,025,130 human and 46,299,127 mouse cells with standardized metadata (cell types, tissues, diseases, donors), raw gene expression matrices, pre-calculated embeddings, and integration with PyTorch, scanpy, and other analysis tools. Cell counts grow with each release — read them from census["census_info"]["summary"] rather than quoting a number in a methods section.
Use this skill when:
For analyzing your own dataset (not the reference atlas), use scanpy or scvi-tools instead.
uv pip install cellxgene-census
# For PyTorch ML workflows (loaders moved out of cellxgene-census):
uv pip install tiledbsoma-mlcensus_version for reproducibility. "stable" is the alias for the most recent LTS release (2025-11-08 as of 2026-09) and "latest" tracks the weekly build; LTS releases are kept available for at least five years.get_obs / datasets summary) to understand what's available — always filter is_primary_data == True to avoid duplicate cells.get_anndata() (in-memory); larger → axis_query() out-of-core iteration.obs_value_filter (cells) and var_value_filter (genes); select only the obs_column_names you need.Minimal skeleton:
import cellxgene_census
with cellxgene_census.open_soma(census_version="2025-11-08") as census: # pinned LTS
adata = cellxgene_census.get_anndata(
census=census,
organism="Homo sapiens",
obs_value_filter="cell_type == 'B cell' and tissue_general == 'lung' and is_primary_data == True",
)| Scenario | Use Instead |
|---|---|
| Normalize/cluster/UMAP an AnnData you already have | alterlab-scanpy |
Concatenate or wrangle local .h5ad/zarr files | alterlab-anndata |
| Train a deep generative model / batch-integrate your own data | alterlab-scvi-tools |
| Browse or download a specific GEO/ArrayExpress accession | alterlab-geo |
One-off gget cellxgene lookup from the CLI | alterlab-gget |
get_anndata(). See references/querying_expression.md.axis_query() with chunked iteration and incremental stats. See references/querying_expression.md.tiledbsoma_ml PyTorch dataloader / ExperimentDataset. See references/ml_and_scanpy.md.references/ml_and_scanpy.md.references/census_schema.md.get_anndata() queries, and large out-of-core axis_query() processing with incremental statistics.tiledbsoma_ml PyTorch dataloader / ExperimentDataset train-test splits, scanpy integration, multi-dataset/tissue integration (anndata.concat), and four worked use cases.tissue_general vs tissue, presence matrices, the full obs/var metadata field list, and a troubleshooting guide.Part of the AlterLab Academic Skills suite.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.