☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue

这篇具有很好参考价值的文章主要介绍了☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面我们简单介绍过ggplot2画KEGG富集柱形图,其实GO富集结果的展示相对于KEGG来说要复杂一点点,因为GO又进一步可以划分成三个类。

BP:biological process,生物学过程。

MF:molecular function,分子功能。

CC:cellular component, 细胞成分。

因此在画图的时候,我们需要将这三类给区分开来。下面分别用了三种不同的方式来展示GO富集分析的结果。

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

图1:横轴为富集到每个GO条目上面的基因数目

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

图2: 横轴为GeneRatio

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

图3:横轴为Fold enrichment(富集倍数)

下面我们结合富集分析的结果表,来分别解释一下这三张图中横坐标的具体含义。

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

首先来看看这张表中每一列所代表的含义

ONTOLOGY:区分是BP,MF还是CC
ID:具体的GO条目的ID号
Description:GO条目的描述
GeneRatio:这里是一个分数,分子是富集到这个GO条目上的gene的数目,
            分母是所有输入的做富集分析的gene的数目,可以是差异表达
            分析得到的gene
BgRatio:Background Ratio. 这里也是一个分数,分母是人的所有编码蛋白的
        基因中有GO注释的gene的数目,这里是19623个,分子是这19623个
        gene中注释到这个GO条目上面的gene的数目
pvalue:富集的p值
p.adjust:校正之后的p值
qvalue:q值
geneID:输入的做富集分析的gene中富集到这个GO条目上面的具体的
        gene名字
Count:输入的做富集分析的gene中富集到这个GO条目上面的gene的数目

这张表里面没有提到富集倍数(fold enrichment)

fold enrichment = GeneRatio / BgRatio

那么我们就很容易理解上面三张图的横坐标了,分别为Count,GeneRatio和Fold enrichment。

那么问题来了,既然这张表里面没有Fold enrichment,那么我们如何计算富集倍数呢?

下面小编给大家介绍三种方法来计算Fold enrichment,任君挑选

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值:

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

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

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

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

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

结果展示

在转录组测序结果中,可以通过散点图对差异表达基因进行富集分析。

以KEGG通路富集结果为例,此图中,KEGG富集程度通过Rich factor、qvalue和富集到此通路上的基因个数来衡量。

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

富集分析

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

前面给大家简单介绍过☞什么是Gene Ontology(GO),以及如何用一些简单易用的网页工具去做GO和KEGG富集分析

☞富集分析DAVID、Metascape、Enrichr、ClueGO

☞比DAVID强一万倍的基因注释工具

☞GO,KEGG富集分析工具——DAVID

也给大家简单的介绍过如何用R做GO富集分析,以及如何将富集结果中的gene ID转成基因名字

☞GO和KEGG富集结果如何显示基因symbol

还有计算富集倍数的三种方法

☞GO和KEGG富集倍数(Fold Enrichment)如何计算、

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

生信交流平台

53 次咨询

5.0

上海生命科学研究院 生物信息学博士

2623 次赞同

去咨询

今天我们来聊聊怎么来展示GO富集分析的结果,下面是一个GO富集分析的结果表。

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

ONTOLOGY:区分是BP,MF还是CC
ID:具体的GO条目的ID号
Description:GO条目的描述
GeneRatio:这里是一个分数,分子是富集到这个GO条目上的gene的数目,
            分母是所有输入的做富集分析的gene的数目,可以是差异表达
            分析得到的gene
BgRatio:Background Ratio. 这里也是一个分数,分母是人的所有编码蛋白的
        基因中有GO注释的gene的数目,这里是19623个,分子是这19623个
        gene中注释到这个GO条目上面的gene的数目
pvalue:富集的p值
p.adjust:校正之后的p值
qvalue:q值
geneID:输入的做富集分析的gene中富集到这个GO条目上面的具体的
        gene名字
Count:输入的做富集分析的gene中富集到这个GO条目上面的gene的数目

我们知道GO富集分析的结果又可以进一步划分成三个类。

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

因此在画图的时候,我们需要将这三类给区分开来。下面我们分别用了四种不同的方式来展示GO富集分析的结果。

1.气泡图分三个框显示BP,MF和CC的富集分析结果

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

2. 柱形图分三个框显示BP,MF和CC的富集分析结果

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

3. 柱形图用三种不同颜色显示BP,MF和CC的富集分析结果

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

4. 气泡图+标签,显示BP,MF和CC的富集分析结果

☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue,golang,开发语言,后端

这张图的横轴是富集倍数(fold enrichment),计算方法如下

fold enrichment = GeneRatio / BgRatio

上面四张图的横坐标分别为GeneRatio,Count,−log10(p.adjust)和Fold enrichment。

☞完整的GO/KEGG富集分析及绘图代码的视频讲解文章来源地址https://www.toymoban.com/news/detail-738364.html

到了这里,关于☞GO和KEGG富集倍数(Fold Enrichment)如何计算 enrich factor qvalue的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • KEGG更新后富集分析的问题,包括下载包以及enrichKEGG和可视化

    运行以下代码出现报错,探究原因: 出现以下报错: 进行解决,查到第一个解决方法是把阈值降低,即将 pvalueCutoff = 0.01,qvalueCutoff = 0.05, 修改为: pvalueCutoff = 0.2,qvalueCutoff = 0.2, 但是依旧有以上报错,不断尝试网上的方法依然有问题,发现还是clusterProfiler包的问题,昨天在进

    2024年02月10日
    浏览(37)
  • 生信学习之通路富集一(GO分析)

    富集分析 (Enrichment Analysis)是一种广泛应用于生物信息学研究的统计方法,主要用于检验一个基因集合中某些功能或特征的富集程度。富集分析的主要目的是从大量基因数据中找出有生物学意义的模式和功能。根据分析的目标和方法,富集分析可以分为以下几种类型: 基因

    2024年02月09日
    浏览(38)
  • GO富集绘图绘制方法,零基础教程,替换数据直接作图,完成版R语言脚本

    本期分享一个快速绘制GO富集结果图的方法,主要使用R语言tidyverse包,只需导入数据即可一步出图,可以自定义显示的数目、颜色、筛选参数, 从此以后绘制GO富集图只需1秒 。 下面是一个GO富集分析的结果数据表: ID:表示具体的GO条目 Description:GO条目的描述 RatioF:分子是

    2024年02月12日
    浏览(47)
  • Bug:mac上运行go run main.go 报错,fork/exec /var/fold/T/go-build269/b001/ex

    今天通过goland执行go run main.go运行我本地编写好的go代码时,发现报错fork/exec / xxx 方法一: 因为当前go的build环境不对,比如:我是mac系统,但是之前go中的GOOS配置的是linux,因此导致报错 方法二: 可能是因为重装或者更新go版本后,并没有在env里更新 /var/folders/ty/q11880gn5797

    2024年02月10日
    浏览(59)
  • 渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

    生命科学中的数据分析和可视化是一个具有挑战性的领域。随着技术和理论的不断发展,研究人员需要处理越来越复杂和庞大的数据集,以研究生物体在不同尺度上的结构和功能,探索不同生物过程和疾病的机制。在这个领域,GO(Gene Ontology)富集分析已成为一种常见的技术

    2024年02月10日
    浏览(45)
  • KEGG 通路如何找

     链接: KEGG: Kyoto Encyclopedia of Genes and Genomes 学习链接: 科研干货|KEGG信号通路数据库轻松上手_哔哩哔哩_bilibili   示例:我要找人的结直肠癌信号通路: 1.   2.  3.  4.    over  

    2024年02月15日
    浏览(33)
  • 【js小案例】视频倍数播放、计算机、待办事项管理

    视频倍数播放示例图:  视频倍数播放代码: 计算机效果图:  计算机代码: 待办事项管理效果图:  待办事项管理代码:

    2024年02月12日
    浏览(41)
  • Go语言在云计算领域的应用和前景如何?

    随着信息技术的飞速发展,云计算作为一种新型的计算模式,正在逐渐改变着企业的IT架构和业务模式。云计算以其弹性伸缩、按需付费、资源共享等特性,为企业提供了更加灵活、高效和经济的计算服务。在云计算的蓬勃发展中,Go语言以其独特的优势在云计算领域得到了广

    2024年04月29日
    浏览(62)
  • .Net Core 使用 TagProvider 与 Enricher 丰富日志

    TagProvider  [LogProperties] 与 [LogPropertyIgnore] 如果用在DTO不存在任何问题,如果用在Domain实体上,可能有点混乱。 您可能不希望因日志记录问题而使您的域模型变得混乱。对于这种情况,可以使用[TagProvider]属性来丰富日志。 我们仍然使用前面用的Network实体,这次它不再使用[L

    2024年03月19日
    浏览(47)
  • for循环的输出控制(输出1-100中的奇数、偶数、倍数以及公倍数)

    一、输出1-100中所有的奇数: i = 1 while i = 100:     if i%2 == 1:         print(i)     i += 1   法二: for i in range(1,101):     if i%2 == 1:         print(i)   法三: for i in range(1,101,2):     print(i)     二、输出1-100中所有的偶数: for i in range(1,101):     if i % 2 == 0:         print(i)   三、

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包