用途:以编程方式访问 CZ CELLxGENE Discover 标准化单细胞基因组数据。2025-11-08 LTS 版本含 162,025,130 个人类细胞与 46,299,127 个小鼠细胞,提供标准化元数据(细胞类型、组织、疾病、供体)、原始基因表达矩阵与预计算嵌入;细胞数随版本增长,应读取 census["census_info"]["summary"] 而非在方法部分写死数字。
适用场景:按细胞类型、组织或疾病查询表达数据;探索可用数据集与元数据;在单细胞数据上训练机器学习模型;大规模跨数据集分析;与 scanpy 等框架集成;跨数百万细胞计算统计量;访问预计算嵌入或模型预测。分析自有数据(而非参考图谱)应改用 scanpy 或 scvi-tools。
安装:uv pip install cellxgene-census;PyTorch ML 工作流另装 uv pip install tiledbsoma-ml(loader 已移出 cellxgene-census)。
核心流程:用上下文管理器打开 Census,并固定 census_version 以保证可复现(stable 为最近 LTS 别名,latest 跟踪每周构建,LTS 至少保留五年)。先探索元数据(get_obs / datasets summary),始终过滤 is_primary_data == True 避免重复细胞。加载前估算查询规模:小于 10 万细胞用 get_anndata()(内存),更大用 axis_query() 核外迭代。用 obs_value_filter(细胞)与 var_value_filter(基因)查询,仅选所需 obs_column_names。结果 AnnData 交给 scanpy,或用 PyTorch dataloader 流式训练。
最小骨架:import cellxgene_census; with cellxgene_census.open_soma(census_version="2025-11-08") as census: 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")。
路由:中小查询用 get_anndata();超内存用 axis_query() 分块迭代与增量统计;训练 ML 用 tiledbsoma_ml 的 PyTorch dataloader / ExperimentDataset;标准 scanpy 分析与多组织整合、完整 schema 与过滤语法细节见随附参考资料。本技能不用于对已有 AnnData 做归一化/聚类/UMAP、拼接本地文件、训练深度生成模型或浏览特定 GEO 登录号。