gene ontology为了查找某个研究领域的相关信息,生物学家往往要花费大量的时间,更糟糕的是,不同的生物学数据库可能会使用不同的术语,好比是一些方言一样,这让信息查找更加麻烦,尤其是使得机器查找无章可循。Gene Ontology就是为了解决这种问题而发起的一个项目。
    Gene Ontology中最基本的概念是term。GO里面的每一个entry都有一个唯一的数字标记,形如GO:nnnnnnn,还有一个term名,比如"cell", "fibroblast growth factor receptor binding",或者"signal transduction"。每个term都属于一个ontology,总共有三个ontology,它们分别是molecular function, cellular component和biological process。
    一个基因product可能会出现在不止一个cellular component里面,也可能会在很多biological process里面起作用,并且在其中发挥不同的molecular function。比如,基因product "cytochrome c" 用molecular function term描述是"oxidoreductase activity",而用biological process term描述就是"oxidative phosphorylation"和"induction of cell death",最后,它的celluar component term是"mitochondrial matrix"和"mitochondrial inner membrane"。
Ontology中的term有两种相互关系,它们分别是is_a关系和part_of关系。is_a关系是一种简单的包含关系,比如A is_a B表示A是B的一个子集。比如nuclear chromosome is_a chromosome。part_of关系要稍微复杂一点,C part_of_D意味着如果C出现,那么它就肯定是D的一部分,但C不一定总会出现。比如nucleus part_of cell,核肯定是细胞的一部分,但有的细胞没有核。
    Ontology的结构是一个有向无环图,有点类似于分类树,不同点在于Ontology的结构中一个term可以有不止一个parent。比如 biological process term "hexose biosynthesis" 有两个parents,它们分别是"hexose metabolism"和"monosaccharide biosynthesis",这是因为生物合成是代谢的一种,而己糖又是单糖的一种。
GO (gene ontology)对大家而言也许会是一个相对陌生的名词,但是它已经成为生物信息领域中一个极为重要的方法和工具,并正在逐步改变着我们对 biological data的组织和理解方式,它的存在已经大大加快了我们对所拥有的生物数据的整合和利用,我们应该逐步学会理解和掌握这种思想和工具。
众所周 知,sequence based biology中的核心内容即是对序列的Annotation(注释),其中主要包含structural annotation和functional annotation,前者涉及分析sequence在genome中的locus以及exon,intron,promoter等的location, 而后者则是推断序列编码产物的功能,也正是我们在六月论题中所着重探讨的。应该说,这二者是相互关联的。
随着多种生物genome的相继解 码,同时大量ESTs以及gene expression profile date的积累,使得annotation的工作量和复杂度大大增加。然而另一方面,大多数基因在不同真核生物中拥有共同的主要生物功能,通过在某些物种 中获得的基因或者蛋白质(shared protein)的生物学信息,可以用以解释其他物种中对应的基因或蛋白(especially in comparative genomics)。由于这些繁复的功能信息主要是包含在积累的文献之中,如何有效的提取和综合这些信息就是我们面临的核心困难,这也是GO所要着力解决 的问题。通过建立一套具有动态形式的控制字集(controlled vocabulary),来解释真核基因及蛋白在细胞内所扮演的角色,并随着生命科学研究的进步,不断积累和更新。一个ontology会被一个控制字集 来描述并给予一定的名称,通过制定“本体”ontologies并运用统计学方法及自然语言处理技术,可以实现知识管理的专家系统控制。
到目 前为止,Gene Ontology Consortium(GO的发起组织)的数据库中有3大独立的ontology被建立起来:biological process生物过程, molecular function分子功能及cellular component细胞组分。而这三个ontology下面又可以独立出不同的亚层次,层层向下构成一个ontologies的树型分支结构。可以说, GO是生物学的统一化工具。
http://www.geneontology.org/Gene Ontology使用Oxford Dictionary of Molecular Biology (1997)中的定义,在分选时还要参考SWISS-PROT, PIR, NCBI CGAP, EC…中的注释。建立起来的标准不是唯一的标准(这是GOC所一直强调的),自然也不规定每个研究者必须遵循这套控制字集系统。所采用的动态结构 (dynamic structure)使用DAGs(Directed Acyclic Graphs)方式的network,将每一个ontology串连起来,形成树状结构(hierarchical tree),也就是由前面所说的“is a”和“part of”两种关系。
由于GO是一种整合性的分类系统,其下的3类主 ontology我们前面说是独立的,但是无论是GOC原初的设计还是我们的使用中其实都还是存在一定的流程关系。一个基因/蛋白质或者一个 ontology在注解的过程中,首先是考虑涉及在构成细胞内的组分和元件(cellular component),其次就是此组分/元件在分子水平上所行使的功能(molecular function),最后能够呈现出该分子功能所直接参与的生物过程(biological process)。由于这是一种存在反馈机制的注释过程,并且整个系统是动态开放实时更新的,因此在某种程度上说它具有纠错的能力。
在spiro转贴的帖子中提到TAMBIS计划,这是目前唯一实现了在概念和联系层次上集成信息源的系统。但是还有其他一些相关计划正在研究之中。比如BioKleisli (宾夕法尼亚大学计算机系),采用Mediator(调节器)技术实现了若干数据源的集成,其后的K2/Kleisli系统还利用数据仓库实现了OLAP(联机分析处理)。
DiscoveryLink (IBM研究院),基于Wrapper/ Mediator(包装器/调节器)实现了信息源集成,提出了查询的分解和基于代价的优化策略 TAMBIS (曼彻斯特大学计算机系)基于Wrapper/ Mediator实现了信息源集成,借助BioKleisli中的CPL语言作为查询语言并给出了查询优化的方法。通过TaO(TAMBIS Ontology)本体定义为用户浏览和查询处理提供领域知识。TINet (GSK公司和IBM研究院),基于多数据库中间件OPM(Object-Protocol Model,对象协议模型)定义数据源的对象视图,其CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)服务器使各数据源Wrapper(包装器)更易于扩充。但是他们都存在一定的 缺陷。BioKleisli 系统查询能力相对较弱,而且并未给出查询优化策略;TAMBIS系统和DiscoveryLink系统集成的数据源数量相对还很少,后者在查询处理中并未 运用领域知识,因而查询分解也未从语义角度考虑;TINet系统中的查询处理能力不强。
现在面临的突出问题是在数据库查询中尤其是当 多个数据库存在信息重叠时,缺乏从中选择最佳检索成员,动态生成优化检索方案的能力。而且现有的工作主要面向数据集成,而对服务集成考虑不多。支持数据与 服务综合性集成的体系仍欠完备。因此这也将是GO未来发展和提升的一个重要方向。
Ontology: 哲学中称为本体论/存在论,这里本质是指一系列特定的文字可用来形容一些特定的模式、元件或角色,因此在国外的华人生物信息学家中试译为语义(学)。

*********************************************************************

Gene Ontology (GO) 之分析实作简介
在此先简介一下如何使用MySQL来做GO分析,首先,请到ensembl的BioMart下载所需要的基因。
这里下载时有些事项要注意,选好database以及dataset后,请在Filter的Gene子项目中勾选Limit to genes … with GO ID(s) only。
接着在Attribute的EXTERNAL子项目中勾选go biological process, go cellular component, and go molecular function这三个子项目的GO ID。
其他细节可以依各自实验所需来勾选 (如勾选染色体号码以及基因的起始及结尾坐标)。
做GO的基本材料准备好后,接着必须具备一些MySQL的操作知识,之后去GO Database (http://www.geneontology.org/GO.downloads.database.shtml)下载MySQL的数据库回来建 (下载时选择 go_200904-assocdb-tables.tar.gz 这种table档即可,里面包含了许多MySQL的建表格指令,网页中也有使用教学,照着操作即可)。
下载好基因数据,建立好GO的表格后,请利用一些MySQL的指令,再多建立一个表格来汇入刚刚从ensembl下载回来的那些基因。
结束以上的前处理动作,就可以开始做GO的分析了。
1. 根据你所需要的数据类型,去刚建好的ensenbl数据库中抓取所需要的基因出来。如:
Gene ID, Transcript ID, BiologicalProcess Cellular Component Molecular Function
ENSG00000196763 ENST00000359554 GO:0000012 GO:0005634 GO:0003684
ENSG00000119673 ENST00000238651 GO:0000038 GO:0005739 GO:0004091
ENSG00000119673 ENST00000238651 GO:0000038 GO:0005739 GO:0005515 …
在做GO分析时,会先挑选出某一类来做分析,看是要先做BP, CC, or MF。
所以就以上的例子,假如现在想先做BP的GO分析,想看这个基因在BP这个分类下,在某个level当中会有多少种功能。
于是就先挑出GO:0000012, GO:0000038这两个最下层的GO ID来爬GO树。
假设现在要做BP的level 2的话,先利用MySQL指令找出biological process这个root的id是多少。
select * from term where name='biological_process';
查询后可以得知biological process这个root的id是6067。
接着,查询出root到level 2的所有path是哪些。
select * from graph_path where term1_id=6067 and distance=1;
root=0, 所以distance=1表示在第二层。
纪录每一笔select出来的term2_id值,这id值表示root到第二层的GO ID有哪些 (child id)。
然后用一个循环把GO:0000012的id放入term2_id 跟刚刚找到的那些level 2的id去做一轮select。
如何找GO:0000012的id? 从GO 的term table当中去做select。
select * from term where acc='GO:0000012';
如此可得知GO:0000012的id为32。
//for loop
select * from graph_path where term1_id=4581(刚找到的那些level 2的id) and term2_id=32;
做个一轮完,纪录有select出来的结果
表示这个基因到level 2有个path在,纪录结果的term1_id值,此值丢入term table可以取出GO ID。
如此可得之此GO:0000012在levle 2有哪种功能的分类。
(方式大致如上,写的比较赶,之后会再详细修改)

转载于:https://www.cnblogs.com/wangshicheng/p/10107958.html

gene Ontology (基因本体论)相关推荐

  1. 最熟悉的陌生人| 长文理解基因本体论 (Gene Ontology, GO)

    在生物信息学中,GO似乎是一个我们绕不开的话题.想要深入的探讨这个话题,我们首先要理解「什么是GO?」 01 GO的概念 GO (Gene Ontology),中文译名为基因本体论.基因组测序已经清楚 ...

  2. 一文极速读懂 Gene Ontology (GO)数据库

    一.介绍 官方:基因本体(GO)知识库是有关基因功能的全球最大信息来源. 这些知识既是人类可读的,也是机器可读的,并且是生物医学研究中大规模分子生物学和遗传学实验的计算分析的基础. 在读懂基因本体论( ...

  3. Gene Ontology (GO) 简介

    为了查找某个研究领域的相关信息,生物学家往往要花费大量的时间,更糟糕的是,不同的生物学数据库可能会使用不同的术语,好比是一些方言一样,这让信息查找更加麻烦,尤其是使得机器查找无章可循.Gene Ont ...

  4. Gene Ontology 的GO注释的可视化

    Gene Ontology 的GO注释的可视化@TOC 利用goatools和PyGraphviz可视化 最近因为项目的原因,需要对GO terms的注释进行可视化,在此之前已经使用visio自己画了 ...

  5. GOA:Gene Ontology注释信息数据库

    欢迎关注"生信修炼手册"! GOA全称Gene Ontology Annotation, 是EMBL-EBI构建的一个GO注释信息的数据库.官网如下 https://www.ebi ...

  6. Gene Ontology overview 网页手动翻译

    日志: 玩了一年多了,有点无聊,该干活了- 用谷歌直接翻译网页真的好多错误还不通顺,也不符合原来的逻辑,关键词都翻译地不对,怎么能正确理解呢,强迫症就自己翻译一下,不太懂的就查查资料,准确率应该还可以 ...

  7. Gene Ontology(GO)简介与使用介绍

    1.GO怎么就出现了? 现今的生物学家们浪费了太多的时间和精力在搜寻生物信息上.这种情况归结为生物学上定义混乱的原因:不光是精确的计算机难以搜寻到这些随时间和人为多重因 素而随机改变的定义,即使是完全 ...

  8. 5Y叔的clusterProfiler-book阅读 Chapter 5 Gene Ontology Analysis

    计划在年前回家前完成此资料的学习,前几日耽搁的多了些,这两日还是得抽空把这个看完,然后继续学习机器学习相关的内容...... 5.1 Supported organisms GO分析(GroupGO( ...

  9. GSVA:pathway级别的差异分析

    GSVA其实就是pathway级别的差异分析 标准差异分析通常是不够的,定位到成百上千个有统计学显著变化的差异表达基因后,同样是有成百上千个生物学功能注释(GO功能和KEGG通路),普通的超几何分布检 ...

最新文章

  1. error C3646: “noexcept”: 未知重写说明符_三个世纪以来首次发现:大脑中还藏着一种未知的器官?...
  2. Sql Server 2005资源瓶颈监控(二)
  3. 神经网络的归一化(batch normalization)
  4. VC6.0建立新工程的步骤---解决win11使用不了VC6的方法以及自用版本VC6下载
  5. C语言找素数的几种方法
  6. 100名网工备考IE,最终能通过的,到底有几个?
  7. Unity3D关于VR的Demo(一)
  8. 15个提高编程技巧的 JavaScript工具
  9. 《决战大数据》读书笔记(一) 收集数据和使用数据要有关联
  10. The Security Database on the Server Does Not Have a Computer Account
  11. 显卡性能暴涨,2K高清+144hz显示器飞入寻常百姓家
  12. 做第一批35岁就退休的90后,需要几步?
  13. 总结XSS与CSRF两种跨站攻击
  14. 苏嵌//郑艳秋//2018.7.12
  15. viewpager左右循环滑动,自动滑动广告栏
  16. python matplotlib输出矢量图svg(可插入word,仍为高清)
  17. 在Android手机上搭建自己的的服务器——云盘实例
  18. 在vue中实现picker样式_用Vue实现timepicker功能
  19. 【技术分享】你想知道的网易云音乐推荐架构解析,都在这里!
  20. 怎么解决tekla节点中梁的对齐方式在节点内外有差异

热门文章

  1. 设置Google文档离线同步,更好的高效离线工作
  2. vue 高德地图 不同区域显示不同颜色_高德地图这样用成为你的图表神器
  3. c#:使用面向对象的编程思想和窗体实现计算器(二目运算)
  4. 坚果云和百度网盘的比较
  5. 一招教你不用任何软件就能知道谁动过你的电脑并做了哪些详细的操作,比查看Recent文件访问记录更厉害的方法开机自动运行PSR录制截取电脑操作
  6. 怎样用c语言编程解多元方程组,求用C#编程实现:求一个多元一次方程组解
  7. linux命令获取root权限,Linux命令学习:获取root权限
  8. 动感影集制作音乐相册,超简单实用的方法!风靡QQ空间、微信、抖音
  9. 阿里巴巴资深算法专家刘忠义:聚星台——客户运营核心大数据与算法技术
  10. Remove 以及dorp做实验验证MongoDB删除文档后索引是否会自动删除