OS Tools-GO富集分析工具的使用与解读详细教程
我们的云平台上的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)为例子,如下表:
OS Tools-GO富集分析工具的使用与解读详细教程的更多相关文章
- 【Java线程与内存分析工具】VisualVM与MAT简明教程
目录 前言 VisualVM 安装与配置 本地使用 远程监控 MAT 使用场景 安装与配置 获得堆转储文件 分析堆转储文件 窥探对象内存值 堆转储文件对比分析 总结 前言 本文将简要介绍Java线程与 ...
- Tools - 源代码阅读分析工具Source Insight
简介 https://www.sourceinsight.com/ Source Insight是一个面向项目开发的程序编辑器和代码浏览器,可以分析C/C++.C#.Java.Python等语言源代码 ...
- 优启通-PE启动盘制作工具 原版Win7系统安装超详细教程!!!!!
https://www.jianshu.com/p/cd4abc9889b6 前期准备 原版Win7系统ISO映像文件 PE启动U盘或系统光盘(本教程以纯净无捆绑的优启通PE为示例) 优启通v3.3下 ...
- GO富集分析
GO的主要用途之一是对基因组进行富集分析.例如,给定一组在特定条件下上调的基因,富集分析将使用该基因组的注释发现哪些GO术语被过度表示(或未充分表示). 富集分析工具 用户可以直接从GOC网站的 ...
- Analysis Tools(分析工具)
分析工具 1.叠加分析 # Process: 交集取反 arcpy.SymDiff_analysis("", "", 输出要素类, "ALL" ...
- Linux资源分析工具杂谈(长文慎入)
Linux资源分析工具杂谈 开篇之前请大家先思考一个问题: 磁盘的平均I/O响应时间是1 ms,这个指标是好,还是差? 众所周知,计算机科学是客观的,也就是说对于一个给定的问题,我们总是 ...
- Linux 日志分析工具之awstats
一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...
- Android代码分析工具lint学习
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...
- 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
随机推荐
- Python+Flash+NodeJS 接口自动化平台
一.前端安装步骤# manager-web(1)下载项目 git clone https://github.com/t880216t/manager-web.git (2) 安装依赖 cnpm ins ...
- swift一些常用系统方法的简化使用
//获取Image func FImage(_ imageName:String) -> UIImage { return UIImage(named:imageName)! } //获取Url ...
- 第四节:Linux下如何解决冲突
当出现冲突,我们push的时候,会出现: 然后pull,下拉到本地: 查看冲突: 然后进入冲突文件: 修改为: 保存退出. 提交:
- Got fatal error 1236原因和解决方法
一 前言 MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,笔者相信大多数人都会遇到“Got fatal erro ...
- memcached命令知识
memcached安装配置 yum install memcached memcached最大的缓存单位为1M,大于1M的单项数据将不会缓存 memcached是基于文本协议的,所 ...
- 并发编程---互斥锁---互斥锁与join的区别
互斥锁 互斥锁:就是把多个进程并发,修改成一块共享数据的操作变成串行,保证是一个一个来修改的. 缺点:效率低,加锁过程复杂 优点:增加了安全性 from multiprocessing import ...
- caffe SSD目标检测lmdb数据格式制作
一.任务 现在用caffe做目标检测一般需要lmdb格式的数据,而目标检测的数据和目标分类的lmdb格式的制作难度不同.就目标检测来说,例如准备SSD需要的数据,一般需要以下几步: 1.准备图片并标注 ...
- Scala常用变量生命周期
val words = *** //在words被定义时取值 lazy val words = *** //在words被首次使用时取值 def words = *** //在每一次words被使用时 ...
- 《全栈性能Jmeter》-5JMeter负载与监听
- python获取当前,昨天,明天时间
import datetime nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')#现在 pastTimeMinutes = ...