生信从湿到干 · 交互式动画教程
⭑ 试用 OmicOne
第 11 章数据分析

标志基因与细胞注释

聚类给出的只是编号。要把“簇 3”变成“B 细胞”,需要两样东西:数据里每个簇特有的高表达基因,即标志基因;以及关于这些基因在哪些细胞里表达的先验知识。这一章在 pbmc3k 上把两者连起来,最后请你自己注释一次。

找标志基因

Seurat 的 FindAllMarkers 逐个簇地把“这个簇”和“其余所有细胞”比较,默认用 Wilcoxon 秩和检验。结果表里最重要的几列:

列 含义
avg_log2FC 本簇与其余细胞平均表达之比的 log2;1 表示约高 2 倍
pct.1 / pct.2 本簇 / 其余细胞中检测到该基因的细胞比例
p_val_adj Bonferroni 校正后的 p 值(按全部基因数校正)

好的标志基因三者兼备:倍数变化大、pct.1 高、pct.2 低。只看 p 值排序不够:一个在 95% 细胞里都有表达、只是本簇稍高的基因,p 值同样可以极小。

markers <- FindAllMarkers(obj, only.pos = TRUE)
标志基因浏览器真实数据
正在加载数据…

在组件里选一个簇,看它的标志基因表;再点一个基因,看它在 UMAP 上的分布和各簇的小提琴图。试试 MS4A1、LYZ、NKG7、PPBP。

从标志基因到细胞身份

注释就是把标志基因和已知的细胞类型对应起来。下面的组件给出 pbmc3k 每个簇的几个标志基因,请你先自己判断,再揭晓 Seurat 教程的标准注释。

试试自己注释细胞类型真实数据
正在加载数据…
做完测验后再展开:Seurat 教程使用的标志基因
标志基因 细胞类型
IL7R, CCR7 初始 CD4⁺ T 细胞
IL7R, S100A4 记忆 CD4⁺ T 细胞
CD8A CD8⁺ T 细胞
GNLY, NKG7 NK 细胞
MS4A1 B 细胞
CD14, LYZ CD14⁺ 单核细胞
FCGR3A, MS4A7 FCGR3A⁺ 单核细胞
FCER1A, CST3 树突状细胞
PPBP 血小板

除了手工注释,还可以用参考图谱自动注释(SingleR、Azimuth、CellTypist 等)。它们快,但参考数据必须与你的组织和状态匹配,结果仍要用标志基因核对。

常见误区

  • 只凭一个基因下结论。 用多个标志基因,也看“不该表达”的基因是否确实不表达。
  • 强行给每个簇命名。 “低质量”“双细胞”“未知”都是合理的标签。
  • 把细胞层面的 p 值当成条件间差异的证据。 条件比较用 pseudobulk,统计单位是样本。
  • 照搬参考图谱的结果。 参考数据里没有的细胞类型,会被硬塞进最相近的类别。