第一部分:核心理念 - 为什么要用GSEA?
1. 传统富集分析(如超几何检验/Fisher精确检验)的局限性:
方法:基于一个“显著基因列表”(例如,p-value < 0.05 & |logFC| > 1),看某个通路中的基因是否在该列表中过度出现。
问题:
阈值依赖性强:不同的阈值会产生不同的“显著基因列表”,导致结果不稳定。
忽略细微但一致的变化:如果某个通路中的大部分基因都发生了轻微但一致的表达变化(例如,logFC都在0.5-0.8之间),它们可能因为达不到阈值而被排除在分析之外,即使该通路在生物学上确实被激活/抑制了。
丢失信息:完全忽略了基因在排序列表中的位置信息。
2. GSEA的优势:
无阈值:它不需要预先定义“显著”基因。它使用整个排序的基因列表。
捕捉细微变化:能够识别出那些在通路上整体协调性、但单个效应不大的基因集合的变化。
核心思想:GSEA要问的问题是:“某个预先定义的基因集S(例如,某个KEGG通路中的基因)的成员,是在整个表达谱的排序列表中是随机分布的,还是更倾向于集中在列表的顶部或底部?”
第二部分:关键步骤与统计概念
步骤1:基因排序
操作:根据基因与表型的关联程度进行排序。最常用的度量是信噪比,也可以是logFC、t-statistic等。
结果:得到一个从“最与表型正相关”到“最与表型负相关”的基因列表 `L`。
步骤2:计算富集分数(Enrichment Score, ES)
目标:量化一个基因集 `S` 在排序列表 `L` 的顶部或底部的富集程度。
方法:
1. 从列表 `L` 的第一个基因走到最后一个基因。
2. 当遇到一个属于基因集 `S` 的基因时,增加一个“行走值”;遇到不属于 `S` 的基因时,减少一个“行走值”。
3. 这个“行走值”的增量与基因的排序指标(如logFC)的绝对值相关,即排名越靠前的基因对得分的贡献越大。
4. ES 就是这个行走过程中,与零点的最大偏差。正ES 表示基因集富集在列表顶部(与表型正相关),负ES 表示富集在列表底部(与表型负相关)。
步骤3:评估ES的显著性
核心方法:表型置换
目的:判断观察到的ES是否显著不同于随机情况。
操作:随机打乱样本的标签(如Case/Control),重新计算ES。重复这个过程1000-10000次,为基因集 `S` 构建一个在零假设(基因集与表型无关)下的ES分布。
结果:
名义p值 (Nominal p-value):基于这个零分布计算的观察ES的p值。
错误发现率FDR:这是GSEA结果中更重要的指标。为了校正多重假设检验,GSEA会计算每个基因集ES的FDR q-value。通常认为 FDR < 0.25 是具有统计学意义的阈值(Broad研究所推荐,比0.05宽松,旨在减少假阴性)。
标准化富集分数(Normalized Enrichment Score, NES):将ES对基因集大小进行标准化,使得不同大小的基因集之间的ES可以比较。在比较不同通路的富集程度时,应看NES而非ES。
第三部分:结果解读的实用要点
1. 核心输出指标:
NES:主要关注对象。绝对值越大,富集程度越强。正负号表示方向。
FDR q-value:首要的显著性指标。FDR < 0.25 通常认为有意义。有时也关注 FWER p-value,它是一个更严格的指标。
ES:了解其原始大小,但比较时用NES。
2. 解读GSEA图:
顶部(绿色)曲线:代表运行富集分数( walking score )。
中间竖线:代表基因集 `S` 中的成员在排序列表 `L` 中出现的位置。
底部(黑色)条带:峰越高,表示该区域的基因对ES的贡献越大。
一个“漂亮”的显著富集通常表现为:绿色曲线在开始或结尾有一个明显的峰值,并且中间的竖线密集地集中在列表的一端。
3. 生物学意义 > 统计学意义:
一个FDR显著的通路,如果与你的实验背景毫无关系,可能需要谨慎对待(可能是假阳性或未知的新机制)。
一个FDR不显著(例如0.3)但NES很高且生物学上非常合理的通路,也值得在报告中提及,作为“提示性”结果。
4. 基因集数据库的选择:
结果高度依赖于你使用的基因集。常用数据库包括:
Hallmark (H):来自MSigDB,是精选的、具有明确生物学状态的基因集,解读最直接。
KEGG, Reactome, BioCarta:经典的通路数据库。
GO (Gene Ontology):分为生物过程(BP)、分子功能(MF)和细胞组分(CC)。结果可能非常具体,也可能非常宽泛,需要仔细筛选。
在报告中必须注明使用的数据库和基因集版本。
第四部分:与代码实践相关的注意事项
1. 输入数据准备:
需要一个基因表达矩阵。
需要一个样本分组信息(用于排序)。
需要提前下载好对应的基因集数据库(.gmt文件)。
2. 参数设置:
`nPerm`:置换次数,通常设为1000或以上,以确保统计的稳健性。
`minGSSize` / `maxGSSize`:过滤掉过大或过小的基因集。太小的基因集可能不稳定,太大的基因集可能缺乏特异性。
`pvalueCutoff`:通常设为0.05或1(如果只想用FDR过滤)。
`pAdjustMethod`:多重检验校正方法,常用"BH"(即FDR)。
3. 软件包选择:
clusterProfiler:在R中最流行、最易用的包,功能强大,绘图方便。
fgsea:速度非常快,特别适合大型分析。
GSEA软件(来自Broad研究所):桌面版软件,有图形化界面,是GSEA的“原版”。