1. 基因集打分:为什么它成了单细胞与空间转录组分析的“刚需”?
如果你最近在分析10X单细胞或者空间转录组数据,肯定对“基因集打分”这个词不陌生。它就像一个万能的计算器,能帮我们回答一个核心问题:我关心的那组基因(比如某个信号通路、细胞功能状态、疾病特征),在哪些细胞里特别活跃?
听起来很简单,对吧?但实际操作起来,你会发现这里面的水很深。我刚开始做肿瘤微环境分析的时候,想把一个经典的“上皮间质转化(EMT)”基因集在单细胞数据里做个打分,看看哪些肿瘤细胞更具侵袭性。结果一搜方法,GSEA、GSVA、AUCell、UCell、AddModuleScore……十几种算法摆在面前,参数还各不相同,瞬间就懵了。选错了方法,不仅结果不靠谱,还可能得出完全相反的生物学结论。
为什么基因集打分在今天变得如此重要?我总结下来主要是三个原因。第一,单细胞数据太稀疏了。单个基因的表达波动很大,噪音多,直接看某个Marker基因的表达高低,经常说不清楚。但如果我们把功能相关的一群基因(一个基因集)打包起来看它们的“集体表现”,信号就稳定多了,更能反映细胞的功能状态。第二,生物学问题越来越精细。我们不再满足于知道这是T细胞还是B细胞,我们想知道这群T细胞是耗竭的、记忆性的还是效应性的?肿瘤细胞是处于增殖状态还是代谢重编程状态?这些精细的亚群特征,往往由一组协同工作的基因来定义,必须靠基因集打分来量化。第三,空间转录组的兴起。空间数据每个Spot(捕获点)里都是多个细胞的混合体,直接看单个基因表达更是“一团浆糊”。用基因集打分,我们可以有效评估每个Spot区域整体上更富集哪种功能(比如“免疫浸润”、“血管生成”),从而把复杂的空间表达模式解读成直观的功能图谱。
所以,无论你是做发育、免疫、神经还是肿瘤研究,基因集打分都是把海量基因表达数据“翻译”成可理解的生物学语言的关键一步。这篇文章,我就结合自己踩过的坑和实战经验,带你彻底搞懂主流打分方法的原理、优缺点和怎么选,并用详细的代码示例手把手教你跑通一个从打分、整合到可视化的完整流程。
2. 核心算法原理解析:从“样本依赖”到“单样本排名”的进化
面对琳琅满目的算法,我们得先抓住它们的本质区别。根据算法是否需要所有样本一起计算作为背景,可以粗略分为两大类:依赖样本背景的方法和基于单样本排名的方法。这个区别,在整合多样本数据(尤其是涉及批次效应)时,至关重要。
2.1 依赖样本背景的经典方法:GSEA、GSVA与AddModuleScore
这类方法在计算某个样本的得分时,需要用到所有样本的信息来构建背景分布或进行标准化。在传统的批量转录组分析中,它们表现优异,但在单细胞和空间转录组整合分析中,可能会引入批次效应的干扰。
GSEA 大家都很熟悉。它的核心思想是:先根据样本分组(比如肿瘤 vs 正常)对所有基因按差异程度(如logFC)排序,得到一个从最上调到最下调的基因列表。然后看我们关心的基因集(比如某个通路)的成员,是更多地聚集在这个排序列表的顶部(上调)还是底部(下调)。关键在于,这个排序是基于所有样本比较产生的。如果你的数据来自多个批次,批次效应会直接影响基因的排序,从而干扰富集结果。所以,对于未校正批次效应的整合数据,使用GSEA需格外谨慎。
GSVA 的思路很巧妙,它直接把“基因表达矩阵”转换成“通路活性矩阵”。算法会为每个样本的每个基因计算一个经验累积分布函数,然后评估基因集成员在这个分布中的位置,最终得到一个代表通路活性的分数。问题同样在于,这个分布的计算考虑了所有样本。如果样本构成不同(比如批次间细胞类型比例差异大),计算出的分布就会不同,导致同一个基因集在不同批次数据中的得分可能缺乏可比性。
AddModuleScore 是Seurat包内置的函数,用起来非常方便。它的计算过程是:先计算目标基因集内所有基因的平均表达量,然后根据这个平均值将表达矩阵分成若干个区间(bin),最后从每个区间里随机抽取非基因集基因作为背景基因,用基因集表达与背景表达的差值作为得分。这里有个“坑”:随机抽样。这意味着,即使对相同的数据、相同的基因集运行两次AddModuleScore,由于背景基因的随机选择,得到的分数也可能有细微差异。在需要精确比较的场合,这可能是个问题。
注意:依赖样本背景的方法并非不好,在数据来源一致、批次效应处理得当的情况下,它们非常强大。但当你面对的是多个来源、未经深度校正的公共数据整合分析时,它们的稳定性可能会受到挑战。
2.2 基于单样本排名的稳健方法:AUCell、UCell与singscore
为了解决上述问题,更适合单细胞和空间转录组整合分析的另一类方法应运而生。它们的核心特点是:只利用单个样本内部的基因表达排名信息进行计算,完全不需要其他样本的数据作为参考。这就天然地避免了批次效应和样本构成差异带来的影响。
AUCell 的原理非常直观,我把它理解为“头部富集检测器”。对于一个细胞,它先把所有基因按表达量从高到低排序。然后问:

3115

被折叠的 条评论
为什么被折叠?



