何为功能富集分析?

功能富集分析是将基因或者蛋白列表分成多个部分,即将一堆基因进行分类,而这里的分类标准往往是按照基因的功能来限定的。换句话说,就是把一个基因列表中,具有相似功能的基因放到一起,并和生物学表型关联起来。

何为GO和KEGG?

为了解决将基因按照功能进行分类的问题,科学家们开发了很多基因功能注释数据库,。这其中比较有名的一个就是Gene Ontology(基因本体论,GO)和Kyoto Encyclopedia of Genes and Genomes(京都基因与基因组百科全书,KEGG)。

其中,GO是基因本体论联合会建立的一个数据库,旨在建立一个适用于各种物种的、对基因和蛋白功能进行限定和描述的、并能够随着研究不断深入而更新的语义词汇标准。GO注释分为三大类:分子生物学功能(Molecular Function,MF)、生物学过程(Biological Process,BP)和细胞学组分(Cellular Components,CC),通过这三个功能大类,对一个基因的功能进行多方面的限定和描述。

而KEGG,大多数人会将其当做一个基因通路(Pathway)的数据库,其实KEGG的功能远不止于此。KEGG是一个整合了基因组、化学和系统功能信息的综合数据库。KEGG下属4个大类和17个子数据库,而其中有一个数据库叫做 KEGG Pathway,专门存储不同物种中基因通路的信息,也是用的最多的一个,久而久之,KEGG被大家当做一个通路数据库了。

下面两个图展示了GO和KEGG Pathway的面貌。

如何做功能富集分析?

做功能富集分析的算法有很多,能够做功能富集分析的工具也非常多,见下面的列表

Funrich 也可以做功能富集分析

以上的工具中,DAVID最为常用也最为权威。DAVID是由美国Leidos生物医学研究公司的LHRI团队开发的一个在线基因注释及功能富集网站(https://david.ncifcrf.gov/)

使用DAVID做功能富集分析

第一步

打开DAVID官网:https://david.ncifcrf.gov/

点击左侧功能菜单:Functional Annotation

进入到如下的页面中,页面中的红框中就是进行分析所用的主要操作区域。

第二步

进入分析页面后,通过如下三步即可完成分析:

提交基因列表 --> 选定提交列表类型 --> 开始分析

具体操作如下:

(1) 在 "Enter Gene List" 中上传基因列表,格式是每行一个基因。按照 DAVID 的要求,总的基因个数不得超过 3000 个。

(2) 在 “Select Identifier” 中选择上传的基因类型,因为我们上传的是基因名(Gene Symbol),所以在下拉菜单中选择 “OFFICIAL_GENE_SYMBOL”

(3) 在 “List Type” 中有两个单选框,我们统一选择 “Gene List” 这一项

(4) 点击 “Submit List” 即可

点击 “Submit” 提交基因列表之后,经过几秒钟的等待,如果分析顺利,就会弹出下面一个提示(如下图所示):Please note that multiple species have been detected in your gene list. 这句话的意思就是在我们提交的基因列表中检测到多个物种,需要我们选择相应的物种。怎么选择物种?点击弹出框中的 “确定”,然后在 “List” 中的选择相应物种,这里我们选择 “Homo sapiens”,并点击下方的 “Select Species” 即可。

第三步

操作完成后,就可以得到如下图所示的分析结果。红框所示折叠框中分别就是GO和KEGG的分析结果。

第四步

做完了分析,我们就来看看如何提取结果,并实现结果的可视化吧。

如下图所示,在功能富集分析的结果中有多个折叠栏,其中 Gene_Ontology 这一折叠栏中有有三个栏目:GOTERM_BP_FAT、GOTERM_CC_FAT、GOTERM_MF_FAT 就是我们想要的 GO 功能富集分析结果。而 Pathways 里面有一个 KEGG_PATHWAY 就是我们想要的结果。如何找到 BP、CC、MF 和 KEGG 对应的详细结果呢? 点击每个栏目后面的 “Chart” 即可。

点击 “Chart” 之后,即可出现如下图所示的结果,这里面有几列数据分别是:Category、Term、RT、Genes、Count、%、P-Value 和 Benjamini。这几列中我们比较关心的是:Term(GO语义)、P-Value(P值)、Count(基因数)、%(基因比例)。后面我们要解决的问题是,如何将这些结果下载下来?点击红框中的 Download File 即可。打开一个新的网页,新打开的网页就是分析结果的文本文件,可以下载或者导入到作图软件中进行后续的操作。

第五步 结果导出和可视化

阅读文献时,大家遇到最多的就是柱状图(一般是水平柱状图),柱子的高低与 P-value 相关,柱子越高则越显著。

高级气泡图用来表征富集分析的结果,x轴是 Gene Ratio,对应的就是 DAVID 结果表格中的 % 一列;y轴是富集出来的通路或者 GO Term;点的大小表示 Gene 数;点的颜色最为重要,代表 P值的高低。

DAVID 进行 GO/KEGG 功能富集分析的更多相关文章

  1. 基因探针富集分析(GSEA)& GO & pathway

    http://blog.sina.com.cn/s/blog_4c1f21000100utyx.html GO是Gene Ontology的简称,是生物学家为了衡量基因的功能而而发起的一个项目,从分子 ...

  2. GSEA 基因集富集分析

    http://software.broadinstitute.org/gsea/index.jsp GSEA(Gene Set Enrichment Analysis)是一种生物信息学的计算方法,用于 ...

  3. 富集分析DAVID、Metascape、Enrichr、ClueGO

    前言 一般我们挑出一堆感兴趣的基因想临时看看它们的功能,需要做个富集分析.虽然公司买了最新版的数据库,如KEGG,但在集群跑下来嫌麻烦.这时网页在线或者本地化工具派上用场了. DAVID DAVID地 ...

  4. 【R】clusterProfiler的GO/KEGG富集分析用法小结

    前言 关于clusterProfiler这个R包就不介绍了,网红教授宣传得很成功,功能也比较强大,主要是做GO和KEGG的功能富集及其可视化.简单总结下用法,以后用时可直接找来用. 首先考虑一个问题: ...

  5. 利用GSEA对基因表达数据做富集分析

      image Gene Set Enrichment Analysis (GSEA) is a computational method that determines whether an a p ...

  6. GO富集分析

    GO的主要用途之一是对基因组进行富集分析.例如,给定一组在特定条件下上调的基因,富集分析将使用该基因组的注释发现哪些GO术语被过度表示(或未充分表示). 富集分析工具    用户可以直接从GOC网站的 ...

  7. OS Tools-GO富集分析工具的使用与解读详细教程

    我们的云平台上的GO富集分析工具,需要输入的文件表格和参数很简单,但很多同学都不明白其中的原理与结果解读,这个帖子就跟大家详细解释~ 一.GO富集介绍:       Gene Ontology(简称G ...

  8. GO富集分析示例【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  9. python scipy包进行GO富集分析p值计算

    最近总是有需要单独对某一个类型的通路进行超几何分布的p值计算,这里记录一下python包的计算方法 使用scipy的stat里面的hypergeom.sf方法进行富集分析的p值计算 hsaxxxxx ...

随机推荐

  1. Spring Boot + Vue 前后端分离开发,权限管理的一点思路

    在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面. 但是在前后端分离中,页面 ...

  2. Password file not found:.../jmxremote.password

    jmxremote.password 在jdk/jre/lib/management/下,jmxremote.password.template复制,去掉.template后缀 在配置JMX远程访问的 ...

  3. 【模板整合计划】DP动态规划

    [模板整合计划]DP动态规划 一:[背包] 1.[01背包] 采药 \([P1048]\) #include<algorithm> #include<cstdio> int T ...

  4. 深入挖崛:mysql主从复制原理

    一.基本原理 MySQL复制过程分成三步: 1).master将改变记录到二进制日志(binary log).这些记录过程叫做二进制日志事件,binary log events: 2).slave将m ...

  5. JS的数组进行切片slice

    代码 var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thoma ...

  6. elasticsearch原理学习

    用es也差不多一年左右了,但是都是只会用,底层做了什么一窍不通,没有核心竞争力,循序渐进,一个一个攻破,理解的多了,读的多了,自然能力就上去了,es底层是基于lucene的,所以今天先从lucene下 ...

  7. Delphi编译/链接过程

    下面展示了Delphi是怎样编译源文件,并且把它们链接起来,最终形成可执行文件. 当Delphi编译项目(Project)时,将编译项目源文件.窗体单元和其他相关单元,在这个过程中将会发生好几件事情: ...

  8. 一、VUE基础回顾1

    1.v-if和v-show v-if 和v-show都可以显示和隐藏元素: 区别:(1)v-if初始值为false那么这个元素不会被渲染 ,v-show不管初始值为何值都会被渲染 (2)v-if是控制 ...

  9. android studio学习---Lint工具

    对代码进行测试是一回事,但同样重要的是.我们还需要在编写代码的同时引入各种最佳实践.这不仅能够显著改进性能表现,也能增加应用程序的整体稳定性.另外,经过合理结构调整的项目在维护方面也更为轻松. And ...

  10. HTTP中分块编码(Transfer-Encoding: chunked)

    转自: 妙音天女--分块传输编码~ 参考链接: HTTP MDN--HTTP协议 一.背景: 持续连接的问题:对于非持续连接,浏览器可以通过连接是否关闭来界定请求或响应实体的边界:而对于持续连接,这种 ...