细胞类型注释——给每个细胞贴上正确标签

细胞间通信分析,说到底得先知道「谁在跟谁说话」。你想想看,如果连细胞身份都不清楚,那后面画的网络图就是一笔糊涂账。我个人习惯将细胞注释看作生物信息学分析中最关键的一步——方向对了,后面的路才好走。

今天我带你梳理一下细胞类型注释的常用方法,以及如何用好Marker基因这块敲门砖。

注释的本质:不仅要「分群」,更要「认亲」

单细胞测序做完聚类,我们拿到的是一个个「细胞簇」。但这些簇对应什么细胞类型?需要借助已知的分子标记来匹配。

我在项目中遇到过这样的坑:聚类效果好,看起来团块分明,但一查Marker基因,发现某个簇同时表达了T细胞和NK细胞的标志物。后来仔细排查,原来是双细胞没滤干净。嗯,这里要注意——Marker基因的质量直接决定注释准确度。

注释层次 依赖信息 典型做法
粗粒度 少数高特异Marker CD3E→T细胞,CD19→B细胞
细粒度 多基因组合+亚群特征 CD4+FOXP3→调节T细胞
功能级 通路活性+功能标记 IFNG+TBX21→Th1效应状态

Marker基因:注释的“身份证”

Marker基因,说白了就是某个细胞类型的独家签名。一个好的Marker基因需要满足:在该细胞类型中稳定高表达,在其他类型中表达量低甚至不表达。

我记得之前接触过一个项目,想从PBMC数据中注释出树突状细胞亚群。光靠单个CD1C不够——它虽然富集于髓样DC,但在部分单核细胞中也有表达。后来我用CD1C+FCER1A+CLEC10A三个基因联合筛选,才把cDC2挑干净。

我的小技巧:单基因注释只能作为粗筛。做正式分析时,至少用2-3个基因的组合做双保险。你可以用点图(Dot Plot)或特征图(Feature Plot)同时检查多个Marker的表达模式。

实际工作中,Marker基因的来源主要有两处:一是文献和数据库(如CellMarker、PanglaoDB),二是用差异表达分析从自己的数据中挖掘。我的习惯是先查数据库,再结合实验验证。

常用注释方法:三条路,各有利弊

现在主流的注释方法有三类。我按推荐度从高到低给你排一下:

  1. 基于Marker基因的人工注释:最传统,也最灵活。你对照已知Marker列表,逐个鉴定每个簇的身份。适合有经验的分析者,能处理罕见亚群。
  2. 自动注释工具:如SingleR、CellTypist。它们拿你的数据跟参考数据库比对,自动打标签。速度快,适合批量处理,但依赖参考数据的质量。
  3. 无监督+先验知识结合:先用无监督聚类拿到初步分群,再利用已知生物学知识进行归属判断。我比较喜欢这种方式——既保留了数据本身的特征,又不脱离生物学背景。

这里有一个坑:自动注释也不是万能的。我曾经遇到过用SingleR注释外周血样本,结果把一部分单核细胞标成了DC。后来查原因,是因为参考数据中没有充分覆盖跨组织变异。所以,自动注释的结果一定要做人工复核。

避坑指南:不要完全依赖软件给出的注释结果。我在项目中通常的做法是:自动注释跑一遍,再用关键Marker做点图验证,最后人工调整那些置信度低的分群。你想想看,自动化工具也是人写的,参考数据也逃不掉批次效应。

实战案例:三步走,快速上手注释

下面用一个简化流程示范,假设你已经完成了降维聚类和差异表达分析。

第一步:挑选候选Marker

用差异表达结果,找每个族高表达的Top基因。用文献或数据库筛选出已知的细胞类型标记。

# 这里展示一个简单的筛选逻辑
# 差异表达结果已存储为 de_table
# 筛选条件:avg_log2FC > 1 且 p_val_adj < 0.05

marker_candidates <- de_table[
  de_table$avg_log2FC > 1 & de_table$p_val_adj < 0.05, 
]

# 人工核对候选Marker与已知注释表的匹配情况

第二步:多基因交叉验证

对每个候选细胞类型,列出2-3个特异性基因,用可视化检查表达分布。

# 示例:检查T细胞和NK细胞的Marker表达
markers_to_check <- c("CD3D", "CD8A", "NKG7", "GNLY")

DotPlot(seurat_obj, features = markers_to_check) + RotatedAxis()
# 如果某个簇CD3D高而NKG7低,倾向注释为T细胞
# 如果NKG7高而CD3D低,倾向注释为NK细胞

第三步:全局一致性调整

将注释结果放到整体上下文中,检查是否有矛盾。例如某类细胞出现在不该出现的组织位置,或者某些Marker组合出现异常。

我个人比较喜欢用Seurat的FindAllMarkers配合SingleR做双向验证——机器学习给初筛,人工做终审。

细胞类型注释流程图 细胞类型注释流程框架 单细胞聚类结果 Step 1: 获取差异表达Marker基因 人工文献比对 自动注释工具 无监督+先验 Step 2: 多基因交叉验证 最终注释结果

我的一些实战心得

做了这么多年单细胞分析,我总结了几条实用经验:

  • 参考数据别死心眼:同一个细胞类型在不同组织中的Marker表达有差异。比如组织驻留巨噬细胞与循环单核细胞的标记就不同。
  • 关注低表达基因:有些高特异的Marker本身就是低表达。我遇到过很多情况——CD4在调节T细胞中表达不高,但跟FOXP3组合起来就是金标准。
  • 重视质量控制的反馈:注释结果异常有时不是注释方法的问题,而是上游数据有问题。簇中出现跨谱系Marker共表达,先查双细胞率和批次效应。

其实细胞注释更像是一门艺术——优秀的语境判断力和扎实的生物学背景,往往比代码水平更重要。我在带学生时总强调:工具在变,但理解细胞身份的思维方式不会变。

一句话总结:Marker基因是注释的武器,方法是战术,而你对细胞生物学的理解才是战略。三种注释方法我建议都掌握,实战时灵活搭配。