GSEA原理的通俗易懂的理解

GSEA介绍

我们先提出问题:在解读传统的富集分析(基于超几何分布或Fisher检验)结果时,经富集分析筛选的功能通路中,既有上调差异基因,也有下调差异基因,那么这条通路总体的表现形式改如何定义(是被抑制还是**)?或者更直观的解释,这条显著富集的功能通路的(基因)表达水平在实验处理后是上升了,还是下降了?

分析:

  1. 在传统的富集分析时,我们只需要一个差异基因的列表,根本不关心这个差异基因究竟是上调还是下调。这是因为,传统的富集分析根本不需要考虑基因表达量的变化趋势,其算法的核心只关注这些差异基因的分布是否和随机抽样得到的分布一致,即使后期在可视化时,我们在通路图上用不同颜色标记了上下调的基因,但是由于没有采用有效的统计学手段去分析这条通路下所有差异基因的总体变化趋势,这使得传统的富集分析结果无法回答上述的问题。
  2. 或许,我们可以按照一种常规的方法来解决,在进行传统的富集分析时,每次只提取上调或者下调的差异基因来进行分析,由于事先根据表达量变化趋势对差异基因进行了筛选,从而回避了上面的问题。但这样的做法有失偏颇,因为费舍尔精确检验就是想要证明我这个差异基因列表不是随机抽样得到的,而事先对差异基因列表分类后再富集,已经对结果的随机性造成了干扰,最后得出的结论其准确性也大大降低。
  3. 此外,当上调基因和下调基因分开富集,然后富集到了同一条通路,这怎么解释?所以,传统的富集分析只能定位到功能,这些差异基因与哪些功能相关,而不能回答一开始的这个问题。想要回答一开始的这个问题,我们需要GSEA富集方法的结果。

GSEA原理

首先,我们看一下原理图(如下)。
GSEA原理的通俗易懂的理解

数据矩阵文件

  1. Ranked Gene List L:该基因列表为待检测的数据集(通常为试验获得的表达矩阵文件);
  2. Gene Sets S:该基因集为已知功能注释的某一个通路所含基因(如一个GO term中所用基因);
  3. Leading Edege Subset:核心基因集,通常为位于ES的某一侧(或者Rank Gene List的某一端)。

通俗解释:GSEA的输入是一个基因表达量矩阵,其中的样本分成了A和B两组,首先对所有基因进行排序,可依据foldchange(A/B), 用来表示基因在两组间表达量的变化趋势。排序之后的基因列表其顶部可以看做是上调的差异基因(或在A中显著富集),其底部是下调的差异基因(或在B中显著富集)。GSEA分析的是一个基因集下的所有基因是否在这个排序列表的顶部或者底部富集。如果在顶部富集,该基因集(功能通路)是上调趋势,反之,如果在底部富集,则该基因集(功能通路)是下调趋势。

GSEA计算中几个关键概念

  1. Ranked Gene List L的排序算法
  • 下面提到的均值也可以是中位数。
  • 如果表型是分组信息,GSEA在计算分组间的差异值时支持5种统计方式,分别是signal2noise、t-Test、ratio_of_class、 diff_of_class(log2转换后的值计算倍数)和log2_ratio_of_class。
  • GSEA原理的通俗易懂的理解
  • 如果表型是连续数值信息(定量表型): GSEA通过表型文件和表达数据集文件,使用pearson相关性、Cosine、Manhattan 或Euclidean指标之一计算两个配置文件之间的相关性。
  1. 计算富集得分 (ES, enrichment score). ES反应基因集成员S在排序列表L的两端富集的程度。计算方式是,从基因集L的第一个基因开始,计算一个累计统计值。当遇到一个落在s里面的基因,则增加统计值。遇到一个不在s里面的基因,则降低统计值。
    每一步统计值增加或减少的幅度与基因的表达变化程度(更严格的是与基因和表型的关联度,可能是fold-change,也可能是pearson corelation值)是相关的(可以是线性相关,也可以是指数相关) 。富集得分ES最后定义为最大的峰值。正值ES表示基因集在列表的顶部富集,负值ES表示基因集在列表的底部富集。
    计算方式如下:
    GSEA原理的通俗易懂的理解
    \sum:表示基因集S(功能通路)中位于排序后的基因列表中L的基因的表达变化趋势程度的和值;
    NN:表示基因列表L中基因的数目;
    NHN_H:表示基因集S中基因的数目。

  2. 评估富集得分(ES)的显著性。通过基于表型而不改变基因之间关系的排列检验 (permutation test)计算观察到的富集得分(ES)出现的可能性。若样品量少,也可基于基因集做排列检验 (permutation test),计算p-value。

  3. ES标准化
    GSEA原理的通俗易懂的理解

  4. 多重假设检验校正(q-value)。首先对每个基因集S计算得到的ES,然后根据基因集的大小进行标准化得到Normalized Enrichment Score (NES)。随后针对NES计算假阳性率。(注:GSEA采用p-value<5%,q-value<25%进行数据过滤)

  5. RANK:当ES值最大时,对应基因在排序好的基因列表L中的位置;

  6. Leading-edge subset,对富集得分贡献最大的基因成员,即核心基因集;

  7. LEADING EDGE:该处有3个统计值,tags表示核心基因集占该基因集S中基因总数的百分比;list表示核心基因集占基因列表L中基因总数的百分比;signal,将前两项统计数据结合在一起计算出的富集信号强度,计算公式如下:
    GSEA原理的通俗易懂的理解

典型富集结果解读

典型的结果如下:

GSEA原理的通俗易懂的理解
解读:

  • 第一部分是Enrichment score折线图:显示了当分析沿着排名列表(基因列表L)计算基因集S中每一个基因的ES值时,累计ES值的变化趋势。最高峰处的得分便是该基因集S的ES值。
  • 第二部分,用线条标记了基因集S中每个基因出现在基因排序列表中的位置,黑线基因集S(功能注释通路)中的基因位于排序基因列表L中。leading edge subset 就是到绿色曲线峰值ES出现对应的这部分基因(通常情况下,ES大于0,为ES左侧的基因集合;ES小于0,为ES右侧的基因集合)。
  • 第三部分是排序后所有基因rank值得分布,热图红色部分对应的基因在case组中高表达,蓝色部分对应的基因在control组中高表达,每个基因对应的信噪比(Signal2noise,前面选择的排序值计算方式)以灰色面积图显展示。在上图中,我们一般关注ES值,峰出现在排序基因集的前端还是后端(ES值大于0在前端,小于0在后端)以及Leading edge subset(即对富集贡献最大的部分,领头亚集或和核心基因集);在ES图中出现领头亚集的形状,表明这个功能基因集在某处理条件下具有更显著的生物学意义;对于分析结果中,我们一般认为|NES|>1,p-val<0.05,FDR q-val<0.25的通路是显著富集的。

GSEA与传统的比较

  • GO富集分析:筛选差异基因,再判断差异基因在哪些注释的通路存在富集;这涉及到阈值的设定,存在一定主观性并且只能用于表达变化较大的基因,即我们定义的显著差异基因;仅考虑了差异基因的数目

  • GSEA分析:不局限于差异基因,从基因集的富集角度出发,理论上更容易囊括细微但协调性的变化对生物通路的影响;关联基因与表型,即富集分析兼顾基因与表达变化趋势(程度)

  • GSEA分析似乎与GO分析类似但又有所不同。GO分析更加依赖差异基因,实则是对一部分基因的分析 (忽略差异不显著的基因),而GSEA是从全体基因的表达矩阵中找出具有协同差异 (concordant differences)的基因集,故能兼顾差异较小的基因。因此二者的应用场景略有区别。另外GO富集是定性的分析,GSEA考虑到了表达或其它度量水平的值的影响。另外,对于时间序列数据或样品有定量属性时,GSEA的优势会更明显,不需要每个分组分别进行富集,直接对整体进行处理。

  • GSEA分析的目的是要判断S集基因(基于先验知识的基因注释信息,某个关注的基因集合)中的基因是随机分布还是聚集在排序好的L基因集的顶部或底部(这便是富集分析)。

  • 与GO富集分析的差异在于GSEA分析不需要指定阈值(p值或FDR)来筛选差异基因,我们可以在没有经验存在的情况下分析我们感兴趣的基因集,而这个基因集不一定是显著差异表达的基因。GSEA分析可以将那些GO/KEGG富集分信息中容易遗漏掉的差异表达不显著却有着重要生物学意义的基因包含在内。

参考

https://cloud.tencent.com/developer/article/1426130