什么是 GSEA 分析?
GSEA 是 Gene Set Enrichment Analysis 的缩写,中文译为基因集富集分析。它是一种强大的计算方法,用于确定一个预先定义的基因集是否在基于某些表型或实验条件(如疾病 vs. 正常,处理 vs. 对照)排序的基因列表中,显示出统计学上显著的富集。
与传统的单基因差异表达分析不同,GSEA 不仅仅关注少数几个在统计学上达到显著阈值的基因,而是着眼于整个基因表达谱。它通过评估基因集内所有基因在排序列表中的分布情况,来判断这个基因集是否整体上与表型差异相关联。如果一个基因集内的基因倾向于聚集在排序列表的顶部(例如,在疾病组中整体上高表达)或底部(例如,在疾病组中整体上低表达),那么这个基因集就被认为是富集的。
GSEA 的输入数据通常是一个基因表达矩阵(如 RNA-Seq 或芯片数据)和样本的表型标签。其核心思想是计算一个富集得分 (Enrichment Score, ES),该得分反映了基因集在排序列表中的富集程度。
GSEA 与 ORA 的区别
值得一提的是,GSEA 与传统的过表达分析 (Over-Representation Analysis, ORA) 有显著区别。ORA 通常首先确定一组差异表达基因(基于固定的 p 值或 FDR 阈值),然后检查这些基因在已知基因集中的比例是否高于随机预期。而 GSEA 直接使用所有基因基于差异表达统计量(如 fold change, t-statistic)排序的列表,避免了设定武断的差异表达阈值,并且能够检测到基因集内多个基因发生微小但协调一致的变化所产生的整体效应,这使得它在某些情况下对检测生物学上相关的通路变化更为敏感。
为什么进行 GSEA 分析?
进行 GSEA 分析的主要原因是,生物过程和疾病往往不是由单个基因的变化引起的,而是由多个基因组成的通路或功能模块协调作用的结果。仅仅关注单个基因的显著性差异可能会遗漏重要的生物学信息。
使用 GSEA 的优势包括:
- 通路水平的洞察: GSEA 直接分析基因集(代表通路、功能模块或共有调控元件的基因集合),帮助研究人员理解在不同生物学状态下,哪些生物学通路或功能模块整体上被激活或抑制。
- 更高的敏感性: 即使基因集内的单个基因表达变化不显著,但如果多个基因都表现出朝着同一方向变化的趋势,GSEA 也能检测到这种累积效应,从而发现传统方法可能忽略的微弱但有意义的信号。
- 无需硬性阈值: GSEA 使用所有基因的排序列表,避免了设定差异表达基因的武断截断阈值,减少了信息损失。
- 提供排序结果: GSEA 提供一个富集基因集的排序列表,研究人员可以优先关注富集程度最高且统计学意义最显著的通路。
- 生物学解释: 富集分析的结果更容易联系到已知的生物学功能和调控机制,为进一步的实验验证提供假说。
GSEA 特别适用于回答以下类型的生物学问题:
- 某种处理(如药物)如何影响细胞或组织的整体通路活性?
- 某种疾病状态(如癌症,自身免疫病)中,哪些生物学通路发生了整体性改变?
- 不同亚型的疾病或细胞状态之间,在通路层面有什么差异?
- 某个特定基因或调控因子扰动后,下游的信号通路如何响应?
在哪里进行 GSEA 分析?
进行 GSEA 分析主要有以下几种途径和工具:
1. GSEA Desktop 应用程序
这是由 Broad Institute 开发和维护的官方独立应用程序。
- 优点: 功能全面,图形界面友好,提供了详细的参数设置和结果可视化(如富集图)。是许多研究者的首选。
- 缺点: 对于大型数据集可能需要较多计算资源和时间,安装和运行有时需要 Java 环境。
- 获取: 可从 Broad Institute GSEA 官方网站下载。
2. R/Bioconductor 包
有多个 R 包可以实现 GSEA 或类似的基因集富集分析:
- fgsea: 速度快,内存效率高,适合分析大型数据集。
- clusterProfiler: 一个功能强大的生物信息学分析包,集成了多种富集分析方法(包括 GSEA 的实现),支持多种物种和注释数据库。
- GSEA: Broad Institute 提供的 R 包,提供了 GSEA Desktop 的部分功能。
- GSVA (Gene Set Variation Analysis): 虽然方法略有不同(它为每个样本计算每个基因集的富集分数,而不是比较两组样本),但 GSVA 也属于基因集层面的分析,常与 GSEA 结合使用或作为替代方法。
使用 R 包需要一定的编程技能,但灵活性更高,易于自动化和集成到更复杂的分析流程中。
3. 在线工具和平台
一些生物信息学平台或数据库可能提供基于 GSEA 方法的在线分析功能,但这些通常依赖于特定的数据库和预设参数,自定义程度可能不如桌面应用或 R 包。例如,一些 Pathway 数据库的网站可能提供上传数据进行富集分析的选项。
基因集数据库
无论使用哪种工具,进行 GSEA 分析都需要基因集数据库。最常用、最全面的数据库是 Broad Institute 的 Molecular Signatures Database (MSigDB)。MSigDB 包含了多种类别的基因集,例如:
- H: Hallmark Gene Sets (生物学状态或过程的代表性基因集)
- C1: Positional Gene Sets (染色体位置相关基因集)
- C2: Curated Gene Sets (来自公开文献、通路数据库如 KEGG, Reactome, PID 等)
- C3: Regulatory Motif Gene Sets (包含共有调控元件基序的基因集)
- C4: Computational Gene Sets (通过计算方法定义的基因集)
- C5: Ontology Gene Sets (来自 GO (Gene Ontology) 数据库)
- C6: Oncogenic Signature Gene Sets (来自癌症相关研究)
- C7: Immunologic Signature Gene Sets (来自免疫学研究)
- C8: Cell Type Signature Gene Sets (细胞类型特异性基因集)
在进行 GSEA 分析时,需要根据研究问题选择合适的基因集类别。MSigDB 文件通常是 .gmt 格式。
进行 GSEA 分析需要多少数据和资源?
进行 GSEA 分析所需的“多少”可以从几个方面理解:
1. 需要多少样本?
GSEA 依赖于比较不同表型组样本之间的基因表达差异。为了获得统计学上的可靠结果,每个比较组都需要有足够的生物学重复样本。虽然理论上少至每组 3 个样本也可以运行,但这通常会导致统计功效不足,难以检测到真正的通路变化。建议每组至少有 5-10 个或更多样本,这样可以提高分析的稳健性和结果的可靠性。样本量越大,区分生物学变异和技术噪声的能力越强。
2. 需要多少基因?
输入数据需要包含尽可能全面的基因表达信息。对于 RNA-Seq 数据,通常包含数万个基因/转录本。对于芯片数据,取决于芯片类型,可能包含几千到几万个基因。GSEA 分析需要一个包含所有或大部分检测到的基因的排序列表,因此需要一个完整的表达矩阵,而不仅仅是差异表达基因列表。
3. 需要多少基因集?
一个典型的 MSigDB 文件包含数千到数万个基因集。选择多少基因集取决于研究问题和计算资源。选择与研究领域相关的基因集类别(如肿瘤研究选择 C6,免疫研究选择 C7)可以减少需要检验的基因集数量,提高解释效率。分析所有可用的基因集也是一种选项,但会增加计算负担和多重检验校正的难度。
4. 需要多少计算资源?
GSEA 的计算需求取决于数据集的大小(基因数、样本数)和设定的参数(主要是置换次数)。
- 内存 (RAM): GSEA 需要将表达数据和基因集加载到内存中,对于大型数据集,可能需要数 GB 甚至更多的内存。GSEA Desktop 在处理大型数据集时尤其如此。
- 处理器 (CPU): 计算富集得分和进行置换检验是 CPU 密集型任务。更多的核心可以并行处理置换,显著缩短运行时间。
- 硬盘空间: 输入文件(表达矩阵,基因集)和输出结果都需要硬盘空间。结果文件可能包含详细的表格和图表,占用空间可能较大。
例如,使用 GSEA Desktop 分析一个包含 1万多个基因、几十个样本的数据集,并进行 1000 次置换,可能需要几十分钟到几个小时不等,具体取决于机器配置。使用 R 包(如 fgsea)可能更快。
5. 需要多少置换 (Permutations)?
置换检验是 GSEA 计算统计学显著性(p 值和 FDR)的关键步骤。建议的置换次数通常是 1000 次。更高的置换次数(如 5000 或 10000)可以提供更精确的 p 值估计,尤其对于非常小的 p 值,但这会显著增加计算时间。对于初步分析或计算资源有限时,500 次置换也可以提供大致的结果,但不建议用于最终结果的发表。
如何进行 GSEA 分析?
进行 GSEA 分析的流程通常包括以下几个关键步骤:
步骤 1:数据准备
这是分析的基础,数据的质量和格式至关重要。
- 表达数据: 准备一个基因表达矩阵。行是基因,列是样本。数据可以是经过归一化的表达值(如 log2(TPM+1), VST, RLOG)或用于差异表达分析的原始计数(某些工具如 DESeq2/edgeR 的下游结果可以直接用于排序)。确保基因标识符是标准的(如 Gene Symbol, Ensembl ID),并且在整个数据集中一致。
- 表型文件: 创建一个文件或数据结构,明确指定每个样本所属的组别或类别(例如,SampleA 属于 “Disease”,SampleB 属于 “Control”)。这个文件中的样本名称必须与表达矩阵中的列名完全匹配。
- 基因集文件: 选择并下载适用于你物种和研究问题的基因集文件(通常是 .gmt 格式)。MSigDB 是最常用的来源。
注意: 表达数据的归一化和是否取 log2 变换取决于你选择的 GSEA 工具和它如何计算基因排序指标。一些工具(如 GSEA Desktop 的 Signal2Noise)可以直接使用归一化的线性数据,而另一些可能期望 log2 变换后的数据。查阅具体工具的文档非常重要。
步骤 2:选择并配置分析工具
根据你的偏好和计算环境,选择 GSEA Desktop 或一个 R 包。
- GSEA Desktop: 安装 Java 环境后安装 GSEA Desktop 软件。界面友好,适合非编程背景的用户。
- R 包: 在 R 环境中安装选择的包(如 `install.packages(“fgsea”)` 或 `BiocManager::install(“clusterProfiler”)`)。编写 R 脚本进行分析。
步骤 3:运行 GSEA 分析
以 GSEA Desktop 为例,基本流程如下:
- 启动 GSEA Desktop。
- 加载表达数据(Load Data)。
- 加载表型文件(Load Phenotypes)。
- 加载基因集文件(Load Gene Sets)。
-
配置运行参数 (Run GSEA):
- 选择 Expression dataset 和 Phenotype labels 文件。
- 选择 Gene sets database。
- 设置 Number of permutations (通常 1000)。
- 选择 Permutation type (对于两组比较通常选择 Phenotype)。
- 选择 Gene list weighting scheme (如 Signal2Noise 适用于两组连续变量比较,或 log2_Ratio_of_Classes)。这个决定了基因如何排序。
- 根据需要设置其他参数,如是否将探针 ID 聚合成基因符号 (Collapse dataset to gene symbols),设置基因集的大小范围等。
- 点击 Run 按钮开始分析。
使用 R 包的流程会涉及调用特定的函数,并以函数参数的形式输入数据文件路径、基因集文件路径、置换次数等。
步骤 4:解读 GSEA 结果
分析完成后,工具会生成结果文件(GSEA Desktop 生成 HTML 报告和表格文件;R 包通常生成数据框)。解读结果是理解生物学意义的关键。关注以下几个核心指标:
- 基因集 (Gene Set): 哪个基因集被检测到富集。
- 富集得分 (Enrichment Score, ES): ES 的正负号表示富集的方向。正 ES 表示基因集中的基因倾向于富集在排序列表的顶部(例如,在 phenotype1 中高表达);负 ES 表示倾向于富集在底部(例如,在 phenotype1 中低表达)。
- 标准化富集得分 (Normalized Enrichment Score, NES): ES 经过标准化处理,考虑了基因集大小和数据集大小的影响。NES 是用于比较不同基因集之间富集程度的主要指标。绝对值越高的 NES,富集程度越高。
- 名义 p 值 (Nominal p-value): 基于置换检验计算的统计学显著性。
- FDR q 值 (False Discovery Rate q-value): 对多个基因集进行检验后的多重检验校正结果。FDR q 值表示,在该阈值下被判定为显著富集的基因集集合中,错误发现(即实际上不富集)所占的比例。这是判断基因集是否显著富集最重要的指标。通常,FDR q值 < 0.25 被认为是 GSEA 中可接受的显著性阈值,尽管 < 0.05 更为严格和可靠。
- FWER p 值 (Family-Wise Error Rate p-value): 另一种更严格的多重检验校正方法。FWER < 0.05 意味着在所有检验的基因集中,至少有一个错误发现的概率小于 5%。
- 前导子集 (Leading Edge Subset): 这是基因集内对富集信号贡献最大的那部分基因。检查前导子集中的基因,可以帮助深入理解是基因集内的哪些具体基因在驱动富集信号。
- 富集图 (Enrichment Plot): 这是一个可视化结果。它显示了基因集的 ES 随基因排序列表的变化曲线,基因集内成员在排序列表中的分布位置,以及基因排序指标的分布。它可以直观地展示基因集富集的模式。
在解读结果时,通常会先关注 FDR q 值小于设定的阈值(如 0.25 或 0.05)的基因集。然后查看这些显著富集基因集的 NES 值(判断富集程度和方向),并结合基因集的生物学功能来解释结果。检查前导子集有助于进一步理解具体相关的基因。
总之,GSEA 是一个强大的工具,通过关注基因集而非单个基因,为基因表达数据分析提供了通路层面的视角,有助于揭示复杂的生物学机制。正确的数据准备、工具选择、参数设置以及对结果指标的深入理解,是获得有意义分析结果的关键。