gene Ontology (基因本体论)
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有哪种功能的分类。
(方式大致如上,写的比较赶,之后会再详细修改)
gene Ontology (基因本体论)的更多相关文章
- KEGG and Gene Ontology Mapping in Bioinformatic Method
使用KOBAS进行KEGG pathway和Gene Ontology分析 Article from Blog of Alfred-Feng http://blog.sina.com.cn/u/170 ...
- Gene Ontology (GO) 注释
Gene Ontology (GO) 注释 Posted on 2017-06-11 | In 生信 相似的基因在不同物种中,其功能往往保守的.显然,需要一个统一的术语用于描述这些跨物种的同源基因 ...
- Ontology Relations
Overview The following page documents the relations used in the filtered GO ontology. For informatio ...
- 基因探针富集分析(GSEA)& GO & pathway
http://blog.sina.com.cn/s/blog_4c1f21000100utyx.html GO是Gene Ontology的简称,是生物学家为了衡量基因的功能而而发起的一个项目,从分子 ...
- (转)基因芯片数据GO和KEGG功能分析
随着人类基因组计划(Human Genome Project)即全部核苷酸测序的即将完成,人类基因组研究的重心逐渐进入后基因组时代(Postgenome Era),向基因的功能及基因的多样性倾斜.通过 ...
- GO注释
1.GO资源简介 由于生物系统的惊人复杂性和需要分析的数据集的不断增加,生物医学研究越来越依赖于以可计算的形式存储的知识.基因本体论(GO)项目为基因功能和基因产物的可计算知识提供了目前最全面的资源. ...
- DAVID 进行 GO/KEGG 功能富集分析
何为功能富集分析? 功能富集分析是将基因或者蛋白列表分成多个部分,即将一堆基因进行分类,而这里的分类标准往往是按照基因的功能来限定的.换句话说,就是把一个基因列表中,具有相似功能的基因放到一起,并和生 ...
- Bioinformatics Glossary
原文:http://homepages.ulb.ac.be/~dgonze/TEACHING/bioinfo_glossary.html Affine gap costs: A scoring sys ...
- 生物信息大数据&数据库(NCBI、EBI、UCSC、TCGA)
想系统的学习生信数据库可以先看一下北大的公开课,有一章专门讲的数据库与软件: -生物信息学:导论与方法 北大\ 生物信息数据库及软件资源 一个优秀的生信开发者能够解决如下问题: 如何鉴定一个重要的且没 ...
随机推荐
- linux strncpy()和strcat使用总结
strcat原型:char *strcat(char *dest,const char *src); 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.src和de ...
- JavaWeb开发如何用Tomcat部署发布
一.如何安装TomCat 1.1安装包下载地址:https://tomcat.apache.org/download-70.cgi 1.2 安装exe文件,下一步直到安装成功.并启动Tomcat服务 ...
- java 集合(一)ArrayList的继承树
这是ArrayList的继承树,它继承了AbstractCollection抽象类,AbstractCollection类实现了Collection接口,Collection接口继承Iterable接 ...
- h5 中的 section 标签
转自 http://www.studyofnet.com/news/331.html 本文导读:<section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中 ...
- 010-ThreadGroup线程组
线程组ThreadGroup表示一组线程的集合,一旦一个线程归属到一个线程组之中后,就不能再更换其所在的线程组.那么为什么要使用线程组呢?个人认为有以下的好处:方便统一管理,线程组可以进行复制,快速定 ...
- 香港低价linux虚拟主机,
https://www.sugarhosts.com/zh-cn/hosting/shared-web-hosting Shared Baby 36 个月 ¥ 26.99 19 99 · / 月 续费 ...
- 爬虫mm131明星照片
''' 1. 爬取以下站点中各个明星图片,分别单独建文件夹存放. 起始URL地址:http://www.mm131.com/mingxing ''' import os import logging ...
- 对Python源码加密及反编译前后对比
关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...
- ftp工具类
package com.ytd.zjdlbb.service.zjdlbb; import java.io.File;import java.io.FileInputStream;import jav ...
- 手机端 https://doc.vux.li/zh-CN/components/badge.html
https://doc.vux.li/zh-CN/components/badge.html 手机端前端框架