各位医学方的朋友,大家好,我们你们的老朋友Flyman,时隔许久,今天我们又和大家见面了。今天我们和大家分享一下大家司空见惯的话题基因通路富集分析。谈到富集分析,大家首先会想到Y叔叔写的神包clusterprofiler,几行代码轻松搞定,目前主流的富集分析的算法寻找相关通路本质就是一个超几何分布,那我们今天剖析的GSEA算法则和超几何分布是略有不同。
GSEA全称是gene-set enrichment analysis,即基因集富集分析,而不是简单地基因富集分析。上次我们和大家已经简述了GSEA的实现过程,那我们这次更深度的解析一下GSEA的算法本质,并更详细的实现相应的操作。
首先我们看一下上面的这张原理图,第一步我们需要准备一个基因表达量矩阵作为GSEA输入,在上图我们看到样本是可以分为A和B两组,类似我们常规的给药组和模型组以及模型组与正常组,接着对所有基因进行排序,这一步也是最关键的一步,对基因排序,一般我们是按照foldchange值从大到小排序,注意这里不是绝对值之后的排序,而是原始值的排序,用来表示基因在两组间表达量的变化趋势。比如AvsB排序之后的基因列表,大于0的基因列表表示在A组高表达,B组低表达,小于0的基因代表在A低表达,B高表达,那对于这样的基因列表,其顶部的基因可以看做是上调的差异基因,其底部是下调的差异基因。
GSEA分析的是一个基因集下的所有基因是否在这个排序列表的顶部或者底部富集,如果在顶部富集,我们可以说,从总体上看,该基因集是上调趋势,反之,如果在底部富集,则是下调趋势。


很明显当NES<0,其主要在底部富集,当NES>0,主要在顶部富集,如下:

当然我们还可以进行更好看一些的颜色搭配,采用的是gseaplot2如下:

多条通路同时展示,如下: