富集分析——GO、KEGG
一、 富集分析的基础认知
在生物信息学研究领域,基因功能解析及通路阐释是众多分析流程中的关键环节,富集分析(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