参考连接:https://shengxin.ren/article/403
ssGSEA顾名思义是一种特殊的GSEA,它主要针对单样本无法做GSEA而提出的一种实现方法,原理上与GSEA是类似的,不同的是GSEA需要准备表达谱文件即gct,根据表达谱文件计算每个基因的rank值,再进行后续的统计分析。
而单个样本则无法计算rank,当然GSEA也支持你直接提供rank来进行富集分析的,这个不在此讨论,我们这里主要介绍ssGSEA用来对单个样本做GSEA富集分析的原理。
关于R的实现可以参考:https://support.bioconductor.org/p/98463/
关于genepattern工具在这里:http://software.broadinstitute.org/cancer/software/genepattern/modules/docs/ssGSEAProjection/4
首先假设我们有一个样本的表达数据,那么他应该是这样的
第一列为基因,第二列为表达值,这样的两列的数据矩阵
首先我们对我们的样本的所有基因的表达水平进行排序获得其在所有基因中的秩次rank,这些基因的集合为BG
假设我们要对其进行KEGG的分析,首先我们需要在GSEA官网找到KEGG对应的gmt文件
gmt文件主要格式是:每行表示一个通路,第一列为通路ID,第二列为通路对应的描述,第三列开始到最后一列为该通路中的基因
那么对于任意的一个通路A,我们可以拿到这个通路的基因列表GL
我们从GL中寻找BG里存在的基因并计数为NC,并将这些基因的表达水平加和为SG
开始计算ES:
对于任意一个表达谱中的基因 G:
如果G是集合GL中的基因则他的ES等于 该基因的表达水平除以SG
否则 记该基因的ES等于 1除以(基因集合BG总个数减去NC)
依次计算每个BG中的基因的ES值,找到其中绝对值最大的ES作为通路A的A.ES
到此 通路A的ES计算完毕,我们需要一个统计学方法来评估该ES是否是显著的,即非随机的
我们按照上述计算ES的方法,先随机打乱表达谱中基因的表达顺序,然后再依次计算ES值,如此重复一千次,得到一千个ES值,我们根据这一千个ES值的分布,来计算A.ES在这个分布中所处的位置及出现在该位置时的概率即得到了p值
依次我们分别计算每个通路的ES及p值,然后使用多重检验矫正得到每个通路的FDR
以上即是整个ssGSEA算法的整体思路。
网友评论