何为功能富集分析?

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

何为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. 一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例

    直接贴代码了: using System; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; namespace ...

  2. Django的学习——全局的static和templates的使用

    一.问题 首先我们在进行Django框架搭建的时候我们需要建立一个全局的变量,一是为了实现代码的复用,二是为了方便管理,如下图的样式 二.解决 1.修改setting里面的配置文件①templates ...

  3. 安装mysql驱动程序

    1.  MYSQL驱动:https://dev.mysql.com/downloads/connector/odbc/ 64 位版本:https://cdn.mysql.com//Downloads/ ...

  4. golang学习笔记 --go test

    Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码就可以快速测试一段需求代码. go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件.输 ...

  5. C++ 中 string和char* 的区别

    C++ 中 string和char* 的区别 1.定义: string:string是STL当中的一个容器,对其进行了封装,所以操作起来非常方便. char*:char *是一个指针,可以指向一个字符 ...

  6. Centos7/Ubuntu 初始化硬盘分区、挂载

    刚刚在腾讯云买了一台服务器,刚买的服务器的数据盘都是需要自己来分区的,下面就记录一下操作. 通过命令fdisk-l查看硬盘信息 可以看到有两块硬盘/dev/vda和/dev/vdb,启动vda是系统盘 ...

  7. 【01】Saltstack:从零开始 Saltstack

    写在前面的话 最近一直都在整理以前的乱七八糟的笔记,所以会有很多老旧的东西都会被拉出来重新遛遛.算是再度系统的进行学习. 关于 Saltstack 的一些概念 Saltstack 是基于 Python ...

  8. WPF程序集资源

    WPF会将引用到的资源如图片.BAML文件等编译成二进制数据嵌入到已经编译了的程序集中. 下图是一个反编译后的程序目录结构: 那么,如何向项目中添加资源? 向项目中添加文件 设置生成操作(Build ...

  9. WebUploader 上传文件 错误总结

    近日做文件上传,粗心的问题和技术不精的问题导致了很多的bug,大部分时间都是在找自己写出来的bug,近日总结一下使用 WebUploader 开启分片上传的使用方法以及注意事项 1.上传过程中,后续上 ...

  10. docker基础应用

    环境: centos 7  docker 19.03.0-beta3  192.168.10.10 关于如何安装docker请参考:https://www.cnblogs.com/caesar-id/ ...