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

一、GO富集介绍:
       Gene Ontology(简称GO)是一个国际标准化的基因功能分类体系,提供了一套动态更新的标准词汇表(controlled vocabulary)来全面描述生物体中基因和基因产物的属性。GO总共有三个ontology(本体),分别描述基因的分子功能(molecular function)、细胞组分(cellular component)、参与的生物过程(biological process)。GO的基本单位是term(词条、节点),每个term都对应一个属性。

富集的含义:
       每个基因都会对应有一个或多个GO term(也就是GO功能)。
       富集涉及到两个概念:前景基因和背景基因。前景基因就是你关注的要重点研究的基因集,背景基因就是所有的基因集。比如做两个样本对照组和处理组的转录组测序,前景基因就是对照组vs处理组的差异基因,背景基因就是这两组样本的所有表达基因。再比如,我想知道与整个广东省相比,深圳市的大学生是不是显著更多(“大学生”就相当于深圳市民的其中一个GO term)。那么前景就是深圳市的人口,背景就是广东省的人口,每个个体都会有一个标签(如大学生、中学生、小学生等)。
       富集的意思就是,某个GO term在所关注的前景基因集中占的比例要显著高于在所有背景基因集中所占的比例。比如上面的例子,深圳市大学生显著富集,意思就是深圳市本科毕业的人口所占深圳市总人口的比例显著高于广东省本科毕业人口在广东省总人口中所占的比例。例如下图,我们要计算的就是10%与2%相比是否有显著性。

那么,这个“显著性”是如何计算的呢?就是我们众所周知的P value。P value是利用超几何检验计算出来的,具体公式如下:

其中,N为所有Unigene中具有GO注释的基因数目;n为N中差异表达基因的数目;M为所有Unigene中注释为某特定GO term的基因数目;m为注释为某特定GO term的差异表达基因数目。
       计算得到的P value会进一步经过多重检验校正,得到corrected-pvalue(也就是Q value)。通常我们会以Q value≤0.05为阈值,满足此条件的GO term定义为在差异表达基因中显著富集的GO term。

二、数据准备:
       明白了GO富集的原理后,我们需要准备的数据就只有两份:前景基因文件和背景基因文件。
       富集目的基因文件(前景基因文件):就是你要富集分析的基因集。在上面的例子中,就是对照组vs处理组的差异表达基因。格式为每行一个基因ID,文本文件(制表符分隔)(*.txt)。

GO背景基因文件:就是所有的基因集,在上面的例子中,就是对照组和处理组所有的表达基因。1)如果你研究的物种是有参考基因组的模式物种,那么可以直接使用数据库上已有的参考基因作为背景基因文件。目前提供的物种有水稻、拟南芥、小鼠、大鼠、斑马鱼、鸡、秀丽线虫、果蝇、人。ID类型可选择基因ID或转录本ID,根据富集目的基因的ID类型决定。如果不清楚自己的文件是什么ID,可以点击“预览参考文件”来查看具体ID。后面的“版本”是最新的Ensemble版本号。

2)如果你研究的物种不在这些选择范围内,那么就要自己准备GO背景基因文件了。
因为一个基因可有多个GO term,所以文件格式有两种:一种为第一列为基因ID,第二列为所对应的GO term,如下表:

另一种为第一列是基因ID,第二列之后为同一个基因的所有GO号,这种格式也是我们基迪奥的转录组denovo流程出来的结果格式,如下表:

上传这两种格式中的任何一种都是可以的~  要记住,前景基因文件里的基因ID必须包含在背景基因文件里面!

如何得到基因的GO注释?
      有一些同学不知道如何获得背景基因的GO号。通常,如果你的数据是从公司测序得到的,那么测序报告里都会有。如果你是自己捣腾的数据,那么,如果是无参考基因组的物种,就需要根据unigene的Nr注释,用Blast2go软件得到unigene的GO注释信息。具体Blast2go的使用,可参考我们第二期在线交流课堂:http://www.omicshare.com/forum/thread-176-1-1.html。如果是有参考基因组的物种,可以在GO 官网上下载GO注释信息,也可以在Biomart上下载物种的GO注释信息,我们也有相应的教程:http://www.omicshare.com/forum/thread-437-1-1.html

上传完这两个文件后,点击“提交”就OK了。等着收菜~~

三、结果解读:       这次我试运行的数据为荔枝趋势分析文章里的趋势分析结果数据,我以profile1包含的基因为前景基因集,所有趋势包含的基因为背景基因集,做GO富集分析。

1. GO二级分类图(out.secLevel.png/svg)

这个图显示了profile1的基因在各个GO term的数目和富集情况。横坐标代表GO三个 ontology的更细一级分类,即二级分类;纵坐标代表每个分类条目所包含的基因数目。由于一个基因常常对应多个GO term,因此同一个基因会在不同分类条目下出现,即被多次统计,因此如果你把这里所有柱子的基因数目加起来,肯定是多于profiel1总的基因数目的。

2. GO富集结果表(out.[PFC].html )      三个Ontology(C, F, P)会分别展示。以生物过程(biological process)为例子,如下表:

       第一列为GO term的ID,点击GO ID,可显示这个GO term包含的所有基因:
 
再点击这个GO ID,就可以链接到http://amigo.geneontology.org 官网,可以查看GO的具体信息。
       第二列为GO term的功能描述;
       第三列前面的数字为差异表达基因中富集到这个GO term的基因数,后面的数字为差异表达基因的总数;
       第四列前面的数字为背景基因中富集到这个GO term的基因数,后面的数字为背景基因的总数;
       第五列为P value,即计算第三列的百分比与第四列的百分比相比,是否有显著差异。我们将小于0.05的P value标红显示;
       第六列为多重检验校正后的Q value,也是把小于0.05的Q value标红显示。这些GO term是按照P value从小到大排列的,方便老师找差异富集结果。如在这个例子中,microtubule-based process为在差异基因中富集最显著的GO term,说明profile1中的基因显著富集于这个功能。
3.  GO有向无环图(out.C/P/F.png)
       从整体上来看,GO注释系统是一个有向无环图(Directed Acyclic Graphs),GO各term之间的关系是单向的,GO term之间的分类关系有三种:is a、part of 和 regulates。具体的解释可看这个帖子:http://www.omicshare.com/forum/thread-538-1-1.html。富集分析结果会分别给出GO三个ontology(细胞组分、分子功能、生物过程)的有向无环图,如下图是生物过程的有向无环图:
 
在这个图中,越接近根结点的GO term越概括,往下分支的GO term为注释到更细层级的term。我们来看每个GO term里的含义:
 
其中,Pvalue 这一行,如果大于0.05,即会显示NA,即图中只显示显著的P value。
形状的含义:程序默认把显著性最高的前10个GO term设置为方形,其他的GO term为圆形。
颜色的含义:颜色越深,代表该GO term越显著。颜色由浅到深分别为:无色——浅黄——深黄——红色。
那么,从颜色上来看,在molecular function这个ontology上,最显著的GO term是GO:0003774。因此后续可以从这个GO term入手,这个GO term所在的分支上的其他GO term也值得研究。
意义:
GO有向无环图展示了GO term之间的分类关系,并且从另一方面帮助老师寻找显著富集的GO term。
四、引用
大家如果在数据处理的过程中,使用了我们的omicshare tools云工具网站,那么在文章中的method部分可以这样引用:GO enrichment analysis was performed using the OmicShare tools,a free online platform for data analysis (www.omicshare.com/tools)。
 
五、详细版:英文method 加 引用

Gene Ontology (GO)is an international standardized gene functional classification system whichoffers a dynamic-updated controlled vocabulary and a strictly defined conceptto comprehensively describe properties of genes and their products in anyorganism. GO has three ontologies: molecular function, cellular component andbiological process. The basic unit of GO is GO-term. Each GO-term belongs to a type of ontology.
GO enrichment analysis provides all GO terms that significantly enriched in DEGs comparing to the genome background, and filter the DEGs that correspond to biological functions. GO enrichment analysis was performed using the OmicShare tools,a free online platform for data analysis (www.omicshare.com/tools)。Firstly all DEGs were mapped to GO terms in the Gene Ontology database (http://www.geneontology.org/), gene numbers were calculated for every term, significantly enriched GO terms in DEGs comparing to the genome background were defined by hypergeometric test. The calculated p-value was gone through FDR Correction, taking FDR ≤ 0.05 as a threshold. GO terms meeting this condition were defined as significantly enriched GO terms in DEGs. This analysis was able to recognize the main biological functions that DEGs exercise.

OS Tools-GO富集分析工具的使用与解读详细教程的更多相关文章

  1. 【Java线程与内存分析工具】VisualVM与MAT简明教程

    目录 前言 VisualVM 安装与配置 本地使用 远程监控 MAT 使用场景 安装与配置 获得堆转储文件 分析堆转储文件 窥探对象内存值 堆转储文件对比分析 总结 前言 本文将简要介绍Java线程与 ...

  2. Tools - 源代码阅读分析工具Source Insight

    简介 https://www.sourceinsight.com/ Source Insight是一个面向项目开发的程序编辑器和代码浏览器,可以分析C/C++.C#.Java.Python等语言源代码 ...

  3. 优启通-PE启动盘制作工具 原版Win7系统安装超详细教程!!!!!

    https://www.jianshu.com/p/cd4abc9889b6 前期准备 原版Win7系统ISO映像文件 PE启动U盘或系统光盘(本教程以纯净无捆绑的优启通PE为示例) 优启通v3.3下 ...

  4. GO富集分析

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

  5. Analysis Tools(分析工具)

    分析工具 1.叠加分析 # Process: 交集取反 arcpy.SymDiff_analysis("", "", 输出要素类, "ALL" ...

  6. Linux资源分析工具杂谈(长文慎入)

    Linux资源分析工具杂谈 开篇之前请大家先思考一个问题:        磁盘的平均I/O响应时间是1 ms,这个指标是好,还是差? 众所周知,计算机科学是客观的,也就是说对于一个给定的问题,我们总是 ...

  7. Linux 日志分析工具之awstats

    一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...

  8. Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...

  9. 【转】gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

随机推荐

  1. Python+Flash+NodeJS 接口自动化平台

    一.前端安装步骤# manager-web(1)下载项目 git clone https://github.com/t880216t/manager-web.git (2) 安装依赖 cnpm ins ...

  2. swift一些常用系统方法的简化使用

    //获取Image func FImage(_ imageName:String) -> UIImage { return UIImage(named:imageName)! } //获取Url ...

  3. 第四节:Linux下如何解决冲突

    当出现冲突,我们push的时候,会出现: 然后pull,下拉到本地: 查看冲突: 然后进入冲突文件: 修改为: 保存退出. 提交:

  4. Got fatal error 1236原因和解决方法

    一 前言   MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,笔者相信大多数人都会遇到“Got fatal erro ...

  5. memcached命令知识

    memcached安装配置 yum install memcached      memcached最大的缓存单位为1M,大于1M的单项数据将不会缓存      memcached是基于文本协议的,所 ...

  6. 并发编程---互斥锁---互斥锁与join的区别

    互斥锁 互斥锁:就是把多个进程并发,修改成一块共享数据的操作变成串行,保证是一个一个来修改的. 缺点:效率低,加锁过程复杂 优点:增加了安全性 from multiprocessing import ...

  7. caffe SSD目标检测lmdb数据格式制作

    一.任务 现在用caffe做目标检测一般需要lmdb格式的数据,而目标检测的数据和目标分类的lmdb格式的制作难度不同.就目标检测来说,例如准备SSD需要的数据,一般需要以下几步: 1.准备图片并标注 ...

  8. Scala常用变量生命周期

    val words = *** //在words被定义时取值 lazy val words = *** //在words被首次使用时取值 def words = *** //在每一次words被使用时 ...

  9. 《全栈性能Jmeter》-5JMeter负载与监听

  10. python获取当前,昨天,明天时间

    import datetime nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')#现在 pastTimeMinutes = ...