本文聚焦于功能富集分析的相关知识,并使用R语言展示了GO和KEGG分析,希望能对你有所帮助🎉

1. 功能富集分析的基础概念

1.1 什么是功能富集分析?
功能富集分析是分析一组基因或蛋白质(通常是差异表达基因)在某些功能集合中的显著富集程度的过程。

目标:揭示这组基因在生物学功能、通路或结构中的潜在模式。
意义:帮助理解基因的生物学背景,推测可能的机制或功能。

1.2 常见功能集合

  1. GO(Gene Ontology)

    • 用于描述基因产品的属性,分为三类:
      • BP(生物学过程):如细胞分裂、凋亡等。
      • MF(分子功能):如酶活性、结合活性等。
      • CC(细胞组分):如线粒体、核糖体等。
  2. KEGG(Kyoto Encyclopedia of Genes and Genomes)
    描述代谢和信号通路,如糖酵解、p53 通路等。

  3. Reactome
    注重代谢、信号转导、基因调控等通路。

  4. MSigDB(Molecular Signatures Database)
    包含多种基因集合,如特定疾病基因集、药物反应基因集等。

1.3 关键术语
基因列表:目标基因集合(如实验中发现的差异表达基因)。
背景基因集:分析中用作参照的所有基因(如全基因组或检测到的基因)。
富集:目标基因列表在某功能集合中出现的频率高于随机预期。

2. 功能富集分析的类型

过度富集分析(ORA)
原理:使用统计检验(如超几何分布)检测目标基因列表是否在某功能集合中富集。
输入:目标基因列表。
输出:显著富集的功能集合及其统计显著性。

基因集富集分析(GSEA)
原理:不预定义基因列表,而是基于基因表达水平或差异显著性排序,评估整个基因集合的富集情况。
步骤

  1. 对基因按某一特征(如表达量)排序。
  2. 计算功能集合中的基因在排序中的分布偏差(富集分数)。
  3. 统计显著性(如置换检验)。
    输入:排序的基因集合。
    输出:显著富集的功能集合及其富集分数。

功能类别评分法(FCS)
原理:为基因列表中的每个功能集合打分,适用于对多个基因集合的评分和对比。
特点

3. 功能富集分析的基本流程

数据准备

  1. 目标基因列表:来源于实验结果,如差异表达基因、突变基因。
  2. 背景基因集:根据实验数据或全基因组选择背景基因集。
  3. 基因注释:确保基因有对应的功能集合注释(如 GO、KEGG)。

选择功能集合

3.3 选择分析方法

3.4 显著性检验

结果可视化与解释

  1. 可视化方法

    • 富集条形图:显示显著功能集合及其富集程度。
    • 气泡图:同时展示功能集合的显著性和基因数量。
    • 网络图:展示功能集合之间的关系。
    • 热图:显示基因在不同功能集合中的表达水平。
  2. 结果解读

    • 优先关注显著性最高的功能集合。
    • 将 GO 和 KEGG 的分析结果结合起来,获得更全面的生物学背景。

3.5结果展示(R)
这部分也可见R语言学习笔记

GO 富集分析
使用 clusterProfiler 包进行 GO 富集分析(包括 Biological Process、Molecular Function、Cellular Component)。

# 加载 clusterProfiler
library(clusterProfiler)

# 使用 enrichGO 进行 GO 富集分析
go_enrich <- enrichGO(gene         = gene_list,
                      OrgDb        = org.Hs.eg.db,  # 使用人类基因注释数据库
                      keyType      = "ENTREZID",    # 输入基因 ID 的类型
                      ont          = "BP",          # 生物过程 (Biological Process)
                      pAdjustMethod = "BH",         # 调整 p 值的方法
                      pvalueCutoff = 0.05,
                      qvalueCutoff = 0.2)

# 查看结果
head(go_enrich)

# 可视化 GO 富集结果
library(enrichplot)
barplot(go_enrich, showCategory = 10)  # 柱状图
dotplot(go_enrich)                     # 点图

结果

KEGG 富集分析
使用 clusterProfiler 进行 KEGG 通路富集分析,hsa 是人类的 KEGG Organism Code。

# 运行 KEGG 富集分析
kegg_enrich <- enrichKEGG(gene         = gene_list,
                          organism     = "hsa",    # 人类的 KEGG 代码
                          keyType      = "kegg",   # 输入基因 ID 类型为 KEGG ID
                          pAdjustMethod = "BH",    # 使用 Benjamini-Hochberg 方法调整 p 值
                          pvalueCutoff = 0.05,
                          qvalueCutoff = 0.2)

# 查看 KEGG 富集分析结果
head(kegg_enrich)

# 可视化 KEGG 富集结果
dotplot(kegg_enrich)    # 点图

结果

4. 实际应用

基因功能注释
目标:通过分析未知基因的功能集合,预测基因的可能功能。
示例:分析一组差异表达基因,发现它们富集在“细胞凋亡”相关的 GO 术语中,提示这些基因可能参与调控细胞死亡。

疾病机制研究
目标:分析与疾病相关的基因集合,探索可能的病理机制。
示例:通过 KEGG 富集分析,发现差异基因显著富集在“癌症通路”中,提示这些基因可能在肿瘤发生中发挥作用。

药物靶点筛选
目标:通过富集分析确定潜在的药物靶点。
示例:使用 Reactome 分析药物处理后基因集合,发现关键基因富集在“Wnt 信号通路”,提示该通路可能是药物作用的主要靶点。

环境与应激反应分析
目标:研究特定环境条件下的基因表达响应。
示例:在高温应激实验中,通过 GO 分析发现“热休克蛋白结合”显著富集,表明这些基因可能在应激响应中发挥重要作用。

本文参考

《生物信息学》 樊笼江主编