基因富集分析的原理

基因集富集分析(gene set enrichment analysis, GSEA)主要用于分析2分组实验的基因表达谱数据。首先,根据各基因与表型间相关性r或2组间t检验统计量得分值进行降序排列。GSEA的思想是检验已定义的基因集S(例如包括在某一生物进程中的基因)中的基因在经过排秩的基因列表L中是随机排列(服从均匀分布)还是主要集中在列表的顶部。 主要步骤如下:

1 计算富集得分

富集得分(enrichment score, ES),主要用来反映某个基因集(我们也可以直接将其理解为通路)在排序之后的总基因列表L顶部富集或者过表达的程度。假设总基因个数为N,总基因列表为L,L=[g1,g2,g3,…,gN],基因排序是按照每个基因和表型之间相关性r进行排序的。以某基因集S为例来进行说明,如何计算基因集S的富集得分(记作ES(S))。设基因集S中共有s个基因。从总基因列表L的顶部开始,刚开始ES(S)=0,如果遇到S中的基因时,ES(S)就会增加一个数值,否则会减少一个数值。增加或者减少的数值依赖于基因和表型的相关性r,基因集的大小M,以及总基因集的个数N。 具体来说,从基因列表L的第一个基因开始,i=1到i=N,若i∈S,则ES(S)增加一定的数值,增加的数值与该基因和表型的相关性相关;如果i∉S,则ES(S)会减去一定的数值,减去的数值为1/(N-M),和S的大小M以及总基因集的大小N有关。这样就得到了每个基因集的富集得分,ES。具体的加数值可见文章定义,ES最后取得是在某个基因得到最高分时的值。

2 计算normalized enrichment score (NES)

因为每个基因集的大小不同,而ES又和基因集大小有关,因此需要对其进行normalization,从而消除每个基因集的ES的量纲,文章没有说怎么做,猜测应该也是scale。

3 估算每个基因集NES是否显著

为了检验每个基因集的NES是否显著,将总基因集L随机打乱排列一定次数,每次都计算每个基因集的NES(ES),得到每个基因集的NES在随机排序情况下的理论分布,从而计算其p值。若p<0.05,则说明该基因集在有序总基因列表L中大都富集在顶部,为富集基因集。FDR则是对p值进行FDR校正之后的p值。