问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

GO和KEGG富集倍数(Fold Enrichment)的计算及结果展示方法

创作时间:
作者:
@小白创作中心

GO和KEGG富集倍数(Fold Enrichment)的计算及结果展示方法

引用
CSDN
1.
https://m.blog.csdn.net/qq_52813185/article/details/131965799?utm_source=702048761

在生物信息学研究中,GO(Gene Ontology)和KEGG(Kyoto Encyclopedia of Genes and Genomes)富集分析是揭示基因功能和代谢通路的重要工具。本文将详细介绍如何计算GO和KEGG富集分析中的富集倍数(Fold Enrichment),并展示如何可视化GO富集分析的结果。

GO富集分析结果表解析

在进行GO富集分析时,通常会得到一个包含多个列的表格,每一列都有其特定的含义:

  • ONTOLOGY:区分是BP(生物学过程)、MF(分子功能)还是CC(细胞成分)。
  • ID:具体的GO条目ID号。
  • Description:GO条目的描述。
  • GeneRatio:一个分数,分子是富集到这个GO条目上的基因数目,分母是所有输入的做富集分析的基因数目。
  • BgRatio:背景比率。也是一个分数,分母是人类所有编码蛋白基因中有GO注释的基因数目(这里是19623个),分子是这19623个基因中注释到这个GO条目上的基因数目。
  • pvalue:富集的p值。
  • p.adjust:校正之后的p值。
  • qvalue:q值。
  • geneID:输入的做富集分析的基因中富集到这个GO条目上的具体基因名字。
  • Count:输入的做富集分析的基因中富集到这个GO条目上的基因数目。

富集倍数(Fold Enrichment)的计算方法

虽然富集分析结果表中没有直接提供富集倍数(Fold Enrichment),但可以通过以下公式计算:

fold enrichment = GeneRatio / BgRatio

以下是三种计算富集倍数的方法:

方法1:使用eval函数

kegg=read.csv("KEGG-enrich.csv",stringsAsFactors = F)
enrichment_fold=apply(kegg,1,function(x){
  GeneRatio=eval(parse(text=x["GeneRatio"]))
  BgRatio=eval(parse(text=x["BgRatio"]))
  enrichment_fold=round(GeneRatio/BgRatio,2)
  enrichment_fold
})

方法2:使用strsplit函数按/分割

kegg=read.csv("KEGG-enrich.csv",stringsAsFactors = F)
fenshu2xiaoshu<-function(ratio){
  sapply(ratio,function(x) as.numeric(strsplit(x,"/")[[1]][1])/as.numeric(strsplit(x,"/")[[1]][2]))
}
enrichment_fold=fenshu2xiaoshu(kegg$GeneRatio)/fenshu2xiaoshu(kegg$BgRatio)
enrichment_fold=as.numeric(enrichment_fold)

方法3:使用gsub函数替换

kegg=read.csv("KEGG-enrich.csv",stringsAsFactors = F)
fenshu2xiaoshu2<-function(ratio){
  sapply(ratio,function(x) as.numeric(gsub("/.*$","",x))/as.numeric(gsub("^.*/","",x)))
}
enrichment_fold=fenshu2xiaoshu2(kegg$GeneRatio)/fenshu2xiaoshu2(kegg$BgRatio)
enrichment_fold=as.numeric(enrichment_fold)

富集分析原理

当分析实验过程是否显著影响某一类功能基因时,如果只是根据该类基因中差异基因的比例是不准确的。例如,某一类功能基因的总数是100个,其中差异基因有10个,那么只有实验只是影响了该功能基因的10%,但是如果该实验一共只鉴定到20个差异基因,那么这10个差异基因就占所有差异基因的50%。因此,需要同时考虑差异基因在所有功能分类中的分布,得到的结果才是准确的。

GO和KEGG富集分析

对差异基因进行GO功能和KEGG通路富集分析,可以识别差异基因富集的功能或代谢路径,在基因功能和代谢通路水平阐明样本间的差异。该分析通常使用软件Goatools和KOBAS进行,富集显著性的检验方法为Fisher精确检验。

为控制分析结果的假阳性率,还需要对检验结果的显著性进行校正,可以使用4种多重检验方法(Bonferroni、Holm、Sidak和false discovery rate)对p值进行了校正。一般情况下,当经过校正的p值(qvalue)≤ 0.05时,认为此GO功能或KEGG通路存在显著富集情况。

Fisher精确检验

应用如下公式计算显著性p值:

其中,a为功能A中差异基因的数量,b为非差异基因的数量,c为所有功能分类中差异基因的总数量,d为非差异基因的总数量,n为识别到的所有差异基因的数目。

之后使用如下公式对p值进行校正:

其中,p为待检验GO功能或KEGG路径的p值,length(p)为所有需要检验GO功能或KEGG路径的数目,rank(p)为待检验p值在所有p值从到到底排列中的位置。

结果展示

在转录组测序结果中,可以通过散点图对差异表达基因进行富集分析。以KEGG通路富集结果为例,此图中,KEGG富集程度通过Rich factor、qvalue和富集到此通路上的基因个数来衡量。

富集分析

横坐标是Rich factor,为该代谢路径下差异基因数目与所有注释到该路径基因数目的比值,数值越大表示富集程度越大。

GO富集分析结果的可视化

GO富集分析的结果可以进一步划分为三个类别:

  • BP:biological process,生物学过程。
  • MF:molecular function,分子功能。
  • CC:cellular component,细胞成分。

在画图时,需要将这三类区分开来。以下是四种展示GO富集分析结果的方式:

  1. 气泡图分三个框显示BP、MF和CC的富集分析结果
  2. 柱形图分三个框显示BP、MF和CC的富集分析结果
  3. 柱形图用三种不同颜色显示BP、MF和CC的富集分析结果
  4. 气泡图+标签,显示BP、MF和CC的富集分析结果

这些图的横坐标分别代表不同的指标:

  • GeneRatio
  • Count
  • -log10(p.adjust)
  • Fold enrichment

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号