一、 富集分析的基础认知
在生物信息学研究领域,基因功能解析及通路阐释是众多分析流程中的关键环节,富集分析(Enrichment Analysis)是将基因或蛋白列表按照功能进行分类的统计方法,目的是找出在特定基因集中显著富集的功能类别或通路。通过这种方法,研究人员可以理解一组基因(如差异表达基因)在哪些生物学过程、分子功能或通路中代表。
1.富集分析分类
基因本体论富集分析(Gene Ontology Enrichment Analysis):这是最常用的富集分析类型,用于检验基因集合中基因本体论(GO)条目的富集情况。这可以帮助研究者了解基因集合中的基因在生物学过程、分子功能和细胞组成方面的共同特征。分类:分子功能(Molecular Function, MF):描述基因产物在分子水平上的活性;生物学过程(Biological Process, BP):描述基因产物参与的有序生物学过程;细胞组分(Cellular Component, CC):描述基因产物活跃的细胞位置。Gene Ontology Resource
通路富集分析(Pathway Enrichment Analysis):这种类型的富集分析主要关注基因在代谢途径和信号传导通路中的作用。通过检测基因集合中通路的富集情况,研究者可以了解这些基因在生物体内的功能和调控机制。通路数据库如KEGG(Kyoto Encyclopedia of Genes and Genomes)和Reactome是进行通路富集分析的常用资源。KEGG: Kyoto Encyclopedia of Genes and Genomes
KEGG(Kyoto Encyclopedia of Genes and Genomes)不仅包含通路信息,还整合了基因组、化学和系统功能信息。KEGG Pathway是最常用的子数据库,存储不同物种中基因通路的信息。在实际研究中,我们通常会得到一组差异表达的基因,比如通过比较疾病样本和正常样本的基因表达谱得到的。富集分析会将这些基因与 KEGG 数据库中的通路进行比对,计算每个通路中基因的出现频率,并与随机情况下的预期频率进行比较。如果某个通路中基因的实际出现频率显著高于随机预期,那么我们就认为这个通路在当前研究中是显著富集的,可能与所研究的生物学现象密切相关。
基因集富集分析(Gene Set Enrichment Analysis,GSEA):GSEA是一种旨在检测一个基因集合(如差异表达基因)与某些生物学特征(如基因本体论、通路、疾病、表型等)之间的关联的方法。GSEA可以帮助研究者了解基因集合与生物学功能和过程之间的关联,从而揭示潜在的生物学意义。
蛋白质-蛋白质相互作用富集分析(Protein-Protein Interaction Enrichment Analysis):这种类型的富集分析关注蛋白质之间的相互作用,帮助研究者了解基因集合中蛋白质在细胞信号和代谢过程中的功能。
基因表达调控富集分析:这种类型的富集分析关注转录因子、miRNA等调控因子对基因表达的调控作用。通过这种富集分析,研究者可以了解基因表达的调控机制和相互关系
其中 GO(Gene Ontology)与 KEGG(Kyoto Encyclopedia of Genes and Genomes)富集分析扮演着举足轻重的角色。随着研究的深入,无论是基因表达差异分析、蛋白质组学探索,还是单细胞测序研究等,最终往往都会导向富集分析这一重要步骤,以便从海量的数据中挖掘出具有生物学意义的信息。
鉴于此,我们特别开辟这一章节,聚焦 GO 与 KEGG 分析,深入探讨它们如何助力科研人员拨开数据迷雾,直击生物学过程、分子功能及细胞组分等关键要点,进而揭示生命活动背后的深层机制,为前沿科学研究与实际应用开发筑牢根基。
2.在线工具
-
OmicShare:提供交互式GO/KEGG富集分析工具,支持多种可视化形式(柱状图、气泡图、网络图等),已被4500多篇SCI文章引用2
-
g:Profiler:支持多种功能注释数据库,包括GO、KEGG、Reactome等
-
Metascape:提供一站式分析流程,支持多种ID类型转换
-
DAVID:经典富集分析工具,医学研究中广泛使用
-
IMP平台:专为植物研究设计,集成了GO/KEGG富集分析模块
二、借助 R 语言分析绘图
我们将使用 R 语言和一些常用的生物信息学包来进行 KEGG 富集分析。这里我们会用到 clusterProfiler
、org.Hs.eg.db
(人类基因注释数据库,如果研究其他物种,需要替换相应的数据库)和 enrichplot
(用于可视化分析结果)等包。
1. 准备工作
首先安装并加载必要的R包:
# 安装必要的包(如果尚未安装)
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(c("clusterProfiler", "org.Hs.eg.db", "DOSE", "ggplot2"))
# 加载包
library(clusterProfiler)
library(org.Hs.eg.db) # 人类基因注释数据库,其他物种需替换
library(DOSE)
library(ggplot2)
2. 数据准备
假设我们已经有了差异表达基因列表:
# 示例基因列表(使用基因Symbol)
gene_list <- c("BRCA1", "TP53", "EGFR", "MYC", "CDK2", "VEGFA", "AKT1", "PTEN")
# 创建示例基因列表(使用基因Symbol标识),这里使用了一些著名的癌症相关基因作为示例
# 将基因Symbol转换为Entrez ID(KEGG分析需要)
gene_entrez <- bitr(gene_list, fromType = "SYMBOL",
toType = "ENTREZID",
OrgDb = org.Hs.eg.db)
#bitr函数进行基因ID转换,SYMBOL(基因符号)转换为ENTREZID(KEGG分析需要的ID类型)
# 参数说明: gene_list - 输入基因列表;fromType - 输入ID类型; toType - 输出ID类型;OrgDb - 使用的注释数据库(这里使用人类数据库)
# 查看转换结果
head(gene_entrez)
3. GO富集分析
# GO富集分析
ego <- enrichGO(gene = gene_entrez$ENTREZID,
OrgDb = org.Hs.eg.db,
keyType = "ENTREZID",
ont = "ALL", # 可指定BP、MF或CC
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
qvalueCutoff = 0.05)
#参数说明:gene - 输入基因列表(需要Entrez ID); OrgDb - 使用的注释数据库;keyType - 输入基因ID类型;ont - 指定GO类别:ALL(全部)、BP(生物过程)、MF(分子功能)、CC(细胞组分);pAdjustMethod - p值校正方法(BH = Benjamini-Hochberg);pvalueCutoff - p值阈值;qvalueCutoff - q值阈值(FDR校正后的p值)
# 查看结果
head(ego)
# 绘制点图
dotplot(ego, showCategory=15) +
ggtitle("GO Enrichment Analysis") +
theme(plot.title = element_text(hjust = 0.5))
# dotplot函数参数: ego - 富集结果对象;showCategory - 显示的条目数量
4. KEGG富集分析
# KEGG富集分析
kk <- enrichKEGG(gene = gene_entrez$ENTREZID,
organism = "hsa", # 人类代码,其他物种需更改
keyType = "kegg",
pvalueCutoff = 0.05,
pAdjustMethod = "BH",
qvalueCutoff = 0.05)
# 查看结果
head(kk)
# 绘制气泡图
dotplot(kk, showCategory=15) +
ggtitle("KEGG Pathway Enrichment") +
theme(plot.title = element_text(hjust = 0.5))
5. 富集结果可视化进阶
# 富集圈图(需要安装ggnewscale包)
if (!require("ggnewscale")) install.packages("ggnewscale")
library(ggnewscale)
cnetplot(kk, categorySize="pvalue", foldChange=gene_list)
# 通路图可视化(需要安装pathview包)
BiocManager::install("pathview")
library(pathview)
# 可视化hsa04110(细胞周期)通路
pathview(gene.data = gene_entrez$ENTREZID,
pathway.id = "hsa04110",
species = "hsa",
limit = list(gene=max(abs(gene_list)), cpd=1))
通过掌握GO/KEGG富集分析,研究人员可以更深入地理解组学数据背后的生物学故事,推动研究进展,这也是富集分析备受研究人员青睐的原因。
其他富集分析方法我们有时间再更。谢谢大家啦