个人推荐指数:⭐️⭐️⭐️

Chan Zuckerberg Initiative 简介

Chan Zuckerberg Initiative(CZI)是由 Facebook 创始人 Mark Zuckerberg 和他的妻子 Priscilla Chan 于 2015 年创立的慈善组织。Priscilla Chan 是一位儿科医生,她对医学和科学的热情深刻影响了 CZI 的发展方向。CZI 的使命是”在我们的有生之年治愈、预防或管理所有疾病”,这一宏大目标推动了该组织在生物医学研究领域的大量投资。

CZI 的科学部门专注于开发开源软件工具和协作平台,以加速全球生物医学研究。其中,单细胞生物学是 CZI 重点支持的领域之一。CZI 认为,理解人体中每种细胞类型的功能是理解健康和疾病的基础。为此,CZI 投入大量资源支持人类细胞图谱(Human Cell Atlas)项目,并开发了一系列工具来帮助研究人员探索和分析单细胞数据。

CZ CELLxGENE 就是 CZI 在单细胞领域最重要的贡献之一。


CZ CELLxGENE 简介

CZ CELLxGENE(发音为”cell-by-gene”)是一个综合性的单细胞数据平台,旨在帮助科学家发现、下载、探索、分析、注释和发布单细胞数据集。该平台于 2024 年 11 月在 Nucleic Acids Research 上发表了详细介绍文章。

随着高通量单细胞转录组技术的发展,已有数千个单细胞数据集被发表,涵盖数亿个细胞。这些数据蕴含着关于健康和疾病的丰富知识,但如何有效地整合和利用这些数据仍然是一个挑战。CZ CELLxGENE 正是为了解决这一问题而设计的。

官网:https://cellxgene.cziscience.com/


平台架构

CZ CELLxGENE 由多个相互关联的工具组成,形成一个完整的单细胞数据生态系统:

CZ CELLxGENE Discover

Discover 是平台的核心数据门户,用户可以在这里:

  • 浏览和搜索已发布的单细胞数据集
  • 按组织、疾病、细胞类型等条件筛选数据
  • 下载感兴趣的数据集进行本地分析

截至目前,平台已收录超过 1,300 个数据集,涵盖超过 1.36 亿个细胞,来自 400 多个组织和 900 多种细胞类型。

访问地址:https://cellxgene.cziscience.com/datasets

CZ CELLxGENE Explorer

Explorer 是一个交互式可视化工具,允许用户:

  • 在 UMAP/t-SNE 降维图上探索细胞分布
  • 查看特定基因的表达模式
  • 比较不同细胞群体之间的差异表达基因
  • 进行交叉筛选和子集分析

访问地址:在 Discover 中选择数据集后点击 “Explore” 按钮即可进入

CZ CELLxGENE Census

Census 是平台最具创新性的功能之一,它提供了高效的计算工具来访问、查询和分析 CZ CELLxGENE Discover 上的所有单细胞 RNA 数据。通过基于细胞的切片和查询范式,用户可以直接与数据交互,显著减少数据协调的工作量,从而加速研究进程。

Census 的核心价值在于让远程数据的访问更加便捷。Census 数据托管在云端(AWS S3),用户无需下载完整数据集(通常达数 TB 级别),而是通过 API 按需查询和获取数据切片,例如只获取特定细胞类型或特定基因的数据。

使用方式上,Census API(Python 的 cellxgene-census 包或 R 包)可以在本地安装和运行,但数据本身存储在云端,需要网络连接才能访问。查询结果会下载到本地内存中,用户可以将其保存为本地文件(如 h5ad 格式)供离线使用。简而言之:工具在本地运行,数据在云端访问。

Census 数据对象基于 SOMA API 规范和数据模型构建,通过 TileDB-SOMA 实现。

Census 的核心能力包括:

大规模数据访问:

  • 云端数据访问,无需下载完整数据集
  • 高效访问超出内存限制的大规模数据切片
  • 基于细胞或基因元数据进行低延迟查询

与现有单细胞工具的互操作性:

  • 加载和创建 AnnData 对象(Python)
  • 加载和创建 Seurat 对象(R)
  • 加载和创建 SingleCellExperiment 对象(R/Bioconductor)

与 Python/R 数据结构的互操作性:

  • Python:支持 PyArrow 对象、SciPy 稀疏矩阵、NumPy 数组和 pandas DataFrame
  • R:支持 R Arrow 对象、稀疏矩阵(Matrix 包)、标准 data frame 和密集矩阵

Census 数据发布计划:

  • 自 2023 年 5 月 15 日起,每六个月发布一次长期支持(LTS)版本
  • LTS 版本将公开访问至少五年
  • 此外还会发布每周更新版本(不保证永久性)

最新的 Census LTS 版本(2025-11-08)包含来自人类(Homo sapiens)、小鼠(Mus musculus)、猕猴(Macaca mulatta)、狨猴(Callithrix jacchus)和黑猩猩(Pan troglodytes)的数据集,并新增了对 Slide-seq 和 Visium 空间转录组数据的支持。

访问地址:https://chanzuckerberg.github.io/cellxgene-census/

Gene Expression

Gene Expression 功能允许用户跨所有数据集探索特定基因在不同细胞类型中的表达模式,目前处于 beta 测试阶段。

访问地址:https://cellxgene.cziscience.com/gene-expression

Cell Guide

Cell Guide 是一个交互式细胞类型百科全书,提供:

  • 超过 700 种细胞类型的定义和描述
  • 每种细胞类型的标记基因
  • 相关数据集的链接

访问地址:https://cellxgene.cziscience.com/cellguide

CZ CELLxGENE Annotate

Annotate 是一个用于单细胞转录组数据的交互式数据探索工具,支持来自人类细胞图谱(Human Cell Atlas)等项目的数据集。它利用现代 Web 开发技术实现快速可视化,能够流畅处理至少 100 万个细胞的数据,帮助生物学家和计算研究人员深入探索他们的数据。

Annotate 作为 PyPI 包发布,用户可以在本地安装和运行,用于探索和注释自己的未发表数据集。

安装和使用:

1
2
3
4
5
6
7
8
# 安装(需要 Python 3.10+)
pip install cellxgene

# 启动(使用示例数据)
cellxgene launch https://cellxgene-example-data.czi.technology/pbmc3k.h5ad

# 启动本地数据
cellxgene launch your_data.h5ad

主要功能:

  • 交互式 UMAP/t-SNE 可视化
  • 基因表达模式探索
  • 细胞群体交叉筛选
  • 细胞类型注释
  • 差异表达分析

支持的浏览器:Google Chrome 61+、Edge 15+、Firefox 60+

访问地址:https://pypi.org/project/cellxgene/


数据标准化

CZ CELLxGENE 的一个核心优势是其严格的数据标准化流程。所有提交到平台的数据集都必须遵循统一的 schema,包括:

  • 使用标准化的本体术语(如 Cell Ontology、UBERON、MONDO 等)描述细胞类型、组织和疾病
  • 统一的基因标识符(Ensembl ID)
  • 标准化的元数据字段
  • 原始计数矩阵的保留

这种标准化使得跨数据集的比较和整合成为可能,也是 Census 功能得以实现的基础。


技术实现

数据存储

CZ CELLxGENE 使用 AnnData 格式存储单细胞数据,这是单细胞分析领域最广泛使用的数据格式之一。对于 Census,平台采用 TileDB-SOMA 格式,这是一种专为大规模单细胞数据设计的云原生存储格式。

API 访问

平台提供 Python 和 R 两种语言的 API:

Python 安装:

1
pip install cellxgene-census

R 安装:

1
install.packages("cellxgene.census")

使用示例

以下是使用 Python API 查询 Census 数据的简单示例:

1
2
3
4
5
6
7
8
9
10
11
12
import cellxgene_census

# 打开 Census 数据
with cellxgene_census.open_soma() as census:
# 查询人类 T 细胞数据
adata = cellxgene_census.get_anndata(
census,
organism="Homo sapiens",
obs_value_filter="cell_type == 'T cell'",
var_value_filter="feature_name in ['CD3D', 'CD3E', 'CD4', 'CD8A']"
)
print(f"获取到 {adata.n_obs} 个 T 细胞")

机器学习应用

CZ CELLxGENE 的大规模标准化数据为机器学习应用提供了理想的训练数据。平台支持:

  • 直接从 Census 数据训练 PyTorch 模型
  • 细胞类型自动注释
  • 基因表达预测
  • 单细胞基础模型的训练和评估

许多知名的单细胞基础模型(如 Geneformer、scGPT 等)都使用了 CELLxGENE 的数据进行训练。


数据贡献

研究人员可以将自己的单细胞数据集发布到 CZ CELLxGENE,这需要:

  1. 将数据格式化为符合 CELLxGENE schema 的 AnnData 文件
  2. 使用标准化本体术语注释元数据
  3. 通过平台提交数据集
  4. 经过审核后数据集将被公开发布

发布数据到 CELLxGENE 可以增加数据的可见性和可重用性,同时也为整个单细胞研究社区做出贡献。


相关代码仓库

CZ CELLxGENE 是一个开源项目,其代码分布在多个 GitHub 仓库中:

cellxgene-census

Census API 的核心实现,提供 Python 和 R 接口用于查询和访问整合后的单细胞数据语料库。

cellxgene

CELLxGENE Annotate 的核心代码,一个用于单细胞转录组数据的交互式可视化工具。支持快速可视化百万级细胞数据。

single-cell-data-portal

CELLxGENE Discover 数据门户的前后端代码,包括数据浏览、搜索和下载功能的实现。

single-cell-explorer

用于在 CELLxGENE Discover 上探索单个数据集的 Explorer 组件。

single-cell-curation

数据策展工具,用于验证和处理提交到 CELLxGENE 的数据集,确保它们符合平台的 schema 要求。

cellxgene-ontology-guide

本体指南工具,帮助用户使用正确的本体术语注释他们的数据。CZ CELLxGENE 使用多种生物医学本体来标准化数据注释,主要包括:

Cell Ontology (CL,细胞本体):细胞类型本体,提供标准化的细胞类型命名和层级关系。例如 “T cell”(CL:0000084)、”B cell”(CL:0000236)等。这是注释单细胞数据中细胞类型的标准词汇表。

UBERON (Uber-anatomy ontology,跨物种解剖学本体):用于描述组织和器官。例如 “lung”(UBERON:0002048)、”heart”(UBERON:0000948)等。它支持跨物种的解剖结构比较。

MONDO (Mondo Disease Ontology,疾病本体):提供统一的疾病分类和命名。例如 “lung cancer”(MONDO:0008903)、”Alzheimer disease”(MONDO:0004975)等。它整合了多个疾病数据库的术语。

其他常用本体:

  • HANCESTRO (Human Ancestry Ontology):人类祖先本体,用于描述供体的种族/民族背景
  • PATO (Phenotype And Trait Ontology):表型质量本体,用于描述生物学特征
  • NCBITaxon (NCBI Taxonomy):物种分类本体,用于标注样本来源物种
  • EFO (Experimental Factor Ontology):实验因子本体,用于描述实验条件和测序技术

cellxgene-ontology-guide 的主要功能:

该工具为 CZ CELLxGENE 平台提供本体支持,主要用途包括:

  1. 本体术语查询:查找特定本体术语的定义、ID 和层级关系
  2. 层级关系获取:获取某个术语的所有祖先或后代术语(如查询 “T cell” 的所有子类型)
  3. 数据验证:验证用户提交的数据是否使用了正确的本体术语
  4. 术语映射:在不同本体版本之间进行术语映射
  5. 预处理本体文件:提供经过过滤和优化的本体文件,减少用户处理原始本体的负担

Python API 使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from cellxgene_ontology_guide.ontology_parser import OntologyParser
from cellxgene_ontology_guide.supported_versions import load_supported_versions

# 查看支持的本体版本
load_supported_versions()

# 初始化解析器(指定 CellxGene schema 版本)
ontology_parser = OntologyParser(schema_version="v5.3.0")

# 获取术语的祖先(如 female germ cell 的祖先)
ancestors = ontology_parser.get_term_ancestors("CL:0000021")
# 返回: ['CL:0000586', 'CL:0000039', 'CL:0000000']

# 获取术语的可读标签
labels = [ontology_parser.get_term_label(term_id) for term_id in ancestors]
# 返回: ['germ cell', 'germ line cell', 'cell']

# 获取术语的所有后代
descendants = ontology_parser.map_term_descendants(["CL:0000021", "CL:0000586"])

# 计算两个术语之间的距离
distance = ontology_parser.get_distance_between_terms("CL:0000021", "CL:0000015")
# 返回: 2

# 获取两个术语的最近公共祖先
lca = ontology_parser.get_lowest_common_ancestors("CL:0000021", "CL:0000015")
# 返回: ['CL:0000586']

# 检查术语是否已废弃
is_deprecated = ontology_parser.is_term_deprecated("CL:0000003")
# 返回: True

# 获取废弃术语的替代术语
replacement = ontology_parser.get_term_replacement("CL:0000003")
# 返回: 'CL:0000000'

# 获取术语的父节点
parents = ontology_parser.get_term_parents("CL:0000101")
# 返回: ['CL:0000526']

# 将细胞类型映射到高层级分类
CELL_CLASSES = ["CL:0000039", "CL:0000586", "CL:0000066"] # 预定义的高层级类别
cells_to_map = ["CL:0000021", "CL:0000015"]
mapped = ontology_parser.map_high_level_terms(cells_to_map, CELL_CLASSES)

总结

CZ CELLxGENE 是目前最全面、最易用的单细胞数据平台之一。它不仅提供了海量的标准化单细胞数据,还提供了一整套工具来探索、分析和利用这些数据。

该平台的主要贡献包括:

  • 建立了单细胞数据的标准化 schema,促进数据共享和整合
  • 提供了 Census 功能,使得跨数据集的大规模分析成为可能
  • 开发了直观的可视化工具,降低了单细胞数据探索的门槛
  • 支持机器学习应用,推动了单细胞 AI 模型的发展

对于从事单细胞研究的科学家来说,CZ CELLxGENE 是一个不可或缺的资源。


相关链接