基因集富集分析(Gene Set Enrichment Analysis,简称GSEA)是一种用来确定一个预先定义的基因集是否在某种生物学状态下(比如疾病状态)表达水平有显著变化的方法。
这种方法不仅关注单个基因是否表达差异,而且关注一整组基因的表达模式,从而揭示背后的生物学过程或通路。它需要有下面的步骤:
- 定义基因集:首先,我们需要有一些预先定义的基因集,这些基因集通常基于先前的生物学知识,比如与特定通路或过程相关的基因。(通常是kegg或者go等数据库可以拿到基因集)
- 全部的基因需要排好序:这个排名可以基于多种统计度量,如t统计量、P值、变化倍数(fold change)等。(通常是表达量差异分析的结果可以对基因进行排序)
- 计算富集分数:GSEA计算一个富集分数(Enrichment Score,ES),这个分数表明了每个给定的基因集中,基因表达水平的变化是否比随机情况下更显著。
- 评估统计显著性:通过比较实际的富集分数与通过随机化过程获得的分数分布,GSEA可以评估观察到的富集是否具有统计学意义。
其中第2个环节是需要对全部的基因需要排好序,最简单的基因排序当然了表达量高低了,这个甚至不需要多个样品分组后的差异分析。理论上单个样品它全部的基因就可以根据其基因表达量进行排序,这个就是单样本基因集富集分析(Single-Sample GSEA,简称ssGSEA)。
但是绝大部分情况下,其实应该是多个样品分组后的差异分析结果来对基因进行排序, 但是我们差异分析通常是会产生很多重要的指标。在基因表达数据的差异分析中,研究者通常使用一系列统计学指标来识别差异表达基因(Differentially Expressed Genes,DEGs)。以下是一些常用的统计学指标:
-
P值(P-value):表示统计检验中观察到当前结果或更极端结果的概率,通常用于假设检验。P值小于某个阈值(如0.05)通常被认为是统计显著的。
-
Fold Change(FC):即变化倍数,表示基因在两个条件或样本之间的表达水平比率。常用对数变化倍数(如log2 FC)来表示。
-
t统计量(t-statistic):在t检验中使用的统计量,用于比较两组样本均值是否有显著差异。
-
效应量(Effect Size):衡量变量效应的大小,对于基因表达数据,常用的效应量包括标准化均值差(Standardized Mean Difference)。
-
假发现率(False Discovery Rate,FDR):在多重假设检验中,FDR控制了错误发现的比例,常用的FDR控制方法有Benjamini-Hochberg程序。
-
q值:与FDR类似,q值也是一个用于多重检验校正的统计量,它提供了对错误发现概率的直接估计。
-
信噪比(Signal-to-Noise Ratio,S2N):衡量信号强度与背景噪声比率的指标,用于评估基因表达差异的可靠性。
-
B统计量(B-statistic):在非参数检验中使用,如Mann-Whitney U检验,用于比较两组样本的中位数是否有显著差异。
-
AUC(Area Under the Curve):接收者操作特征曲线(ROC Curve)下的面积,用于评估分类器的性能。
-
π值(Pi-value):结合了变化倍数和P值的基因显著性评分,用于改善基因排名。
这些统计学指标可以单独使用,也可以组合使用,以提供更全面的基因表达差异分析。在实际应用中,研究者会根据数据的特性、实验设计和研究目标选择合适的统计方法和指标。
但是常规生物信息学数据分析往往是简单粗暴的选择了变化倍数来对基因进行排序后做gsea分析,下面是一个简单的案例:
nrDEG=DEG_limma_voom
library(org.Rn.eg.db)
library(clusterProfiler)
gene <- bitr(rownames(nrDEG), fromType = "SYMBOL",
toType = "ENTREZID",
OrgDb = org.Rn.eg.db)
nrDEG = nrDEG[rownames(nrDEG) %in% gene$SYMBOL,]
nrDEG$ENTREZID = gene$ENTREZID[match(rownames(nrDEG) , gene$SYMBOL)]
geneList=nrDEG$logFC # 简单粗暴的选择了变化倍数来对基因进行排序
names(geneList)=nrDEG$ENTREZID
geneList=sort(geneList,decreasing = T)
kk_gse <- gseKEGG(geneList = geneList,
organism = 'rat',#按需替换
nPerm = 1000,
minGSSize = 10,
pvalueCutoff = 0.99,
verbose = FALSE) # 做gsea分析
其实不同形式的基因排序方法会影响gsea富集分析结果,有一个标题是《Ranking metrics in gene set enrichment analysis: do they matter?》,发表在《BMC Bioinformatics》期刊上的文章主要探讨了在基因集富集分析(Gene Set Enrichment Analysis,简称GSEA)中,用于基因排名的不同度量标准(metrics)是否会显著影响最终的分析结果。
最后的结论是一个关键的参数是用于基因排名的度量标准,这个选择可能会影响最终的分析结果:
- 研究者使用了28个基准数据集,评估了16种不同的排名度量标准在基因集分析中的敏感性和假阳性率。
- 通过k-means聚类算法,研究者确定了四种在整体敏感性、假阳性率和计算负载方面表现最佳的度量标准:绝对值的Moderated Welch Test统计量、最小显著差异(Minimum Significant Difference)、绝对值的信噪比(Signal-To-Noise ratio)和Baumgartner-Weiss-Schindler测试统计量。
- 研究还测试了所选方法对样本大小的鲁棒性。
作者并没有明确指出单一的“最推荐”的算法,因为不同的排名度量标准(metrics)在不同的数据集和条件下表现各有优势。然而,文章中确实强调了几个表现较好的排名度量标准,并讨论了它们的稳定性。
文章中提到的四个表现最佳的排名度量标准是:
- 绝对值的Moderated Welch Test统计量 (|MWT|):在整体敏感性方面表现最佳,这意味着它在检测基因集富集方面最为有效。
- 最小显著差异 (MSD):在整体特异性方面表现最佳,这表明它在最小化假阳性结果方面最为有效。
- 绝对值的信噪比 (|S2N|):在原始的GSEA Java应用中作为默认度量标准,表现稳定。
- Baumgartner-Weiss-Schindler测试统计量 (BWS):在非正态分布基因数量较高时表现更好,并且能够发现更多的富集通路,同时保持合理的假发现率。
在稳定性方面,文章指出:
- |MWT| 和 |S2N|:在不同的样本大小下,这两个度量标准显示出稳定的结果,这意味着它们对于样本大小的变化不敏感。
- BWS 和 MSD:这两个度量标准在较大的样本大小下表现更好,这可能与它们的方法有关。
文章测评的全部的16种GSEA排名度量标准(ranking metrics)分为两组:
第一组:标准GSEA Java应用中可用的度量标准
- Signal-to-Noise Ratio (S2N):GSEA中默认使用的度量标准。
- Absolute value of Signal-to-Noise Ratio (|S2N|)。
- Difference of expression means between classes (Difference)。
- Ratio of expression means of two classes (Ratio)。
- Log2 of Ratio (log2(Ratio))。
- T-test statistic (T-test)。
第二组:来自特征选择领域的度量标准,常用于高通量生物实验中发现差异表达基因
- Moderated Welch Test statistic (MWT) 和它的绝对值 Absolute value of Moderated Welch Test statistic (|MWT|)。
- Sum of Ranks (SoR)。
- Baumgartner-Weiss-Schindler test statistic (BWS)。
- Two metrics derived from ReliefF algorithm:每个基因根据最近邻距离估计被赋予一个权重(weight),这个权重表示基于类的最佳分离。
- Weighted Average Difference method (WAD) 和它的绝对值 Absolute value of Weighted Average Difference (|WAD|)。
- Fold Change Rank Ordering Statistics (FCROS):基于样本组间配对比较的变化倍数变化矩阵计算的截断均值。
- Minimum Significant Difference (MSD):定义为对数折叠变化(logFC)估计的置信区间(CI)从无变化(零)的有符号距离。
这些度量标准在统计学基础上有所不同,包括基于参数的统计、非参数统计和数据挖掘方法。研究者根据他们的数据特性和分析目标选择合适的度量标准是非常重要的。例如,如果数据不符合正态分布或者存在异常值,非参数统计方法可能更为合适。而当数据集的特征与这些度量标准的设计假设相匹配时,基于参数的统计方法可能会提供更高的统计功效。