今天我们来继续我们的生物信息学导论与方法课程 这一周我给大家讲一个和前边几周不太一样的内容,但是非常重要的一个概念,这就是ontology本体论和分子通路 鉴定的相关的概念和方法 第一节我们首先来看一些本体论和Gene Ontology:基因的本体论 大家可能还记得第一周我给大家讲过 生物信息学作为一个交叉学科,他的Bio主要是指他研究的生物医学问题 而informatics是指所开发和应用的信息技术 前面的这些周里一直在讲述相关的算法,软件和相关的工具 所有的工具都是用来分析生物学数据的,所以这里边很多的工具都要基于已有的训练集才能被开发出来 这些数据是海量的并且指数增长的,所以它们的存储是一个非常重要的生物信息学问题 所以这就是我们今天的主要的话题,先举一个例子 有一些我们人看起来很明显的事情,如果我们不告诉电脑,电脑是不知道的 请仔细想一想,生物学家把事情搞得对计算机来讲非常的复杂 我们看一下大家都非常熟悉的WNT1这个基因,很多时候,会在中间加一个“-”,变成WNT-1 我们肉眼一看,大家都知道WNT1和WNT-1是同一个基因 但是对于计算机来讲,如果不告诉它,它是不能直接就假设这两个基因是一件事情的 WNT1在以前的时候是被称为INT1,生物学家尤其是研究WNT通路的一看他是知道的,但是其他的不是研究这个通路的人 即使肉眼看,可能也不知道这两个是指的同一个基因 WNT的全称是WINGLESS-TYPE MMTV INTEGRATION SITE FAMLIY,MEMBER 1 完整的基因名和它的简写是一个基因的 WNT1又是WNT FAMILY 里边的一员 这在跨物种的注释里其实是更严重的一个问题,研究果蝇尤其是果蝇遗传的人 非常喜欢把基因用突变的表型来命名,所以果蝇里基因的名字都非常有趣 比如说WNT1在果蝇里的同源基因就被称为wingless,因为果蝇的翅膀发育有严重的缺陷 那这个基因也被简称为wg 像这些电脑怎么知道他们讲的是同一个基因呢? 另外一个例子是这样的,非常重要的delta DNA polymerase 这个基因,他在cerevisiae里被称作CDC2 最近又被改成POL3,在Drosophila里被叫做DNApol-delta,在小鼠里叫做pold1 在原来的时候大家都是在研究自己关注的物种,并不是一个很大的问题,但在上个世纪90年代末 大家可能还记得,那个时候有若干个模式生物的完整基因组开始被测序出来了 包括的比较早的酵母的基因组,线虫,到后面果蝇和人和小鼠基因组的草图在上个世纪末也逐渐地 看到快要被完成,这个时候大家就发现很多的基因在不同物种之间是高度地保守的 第二他们发现这些保守的基因在不同的物种里会被叫作不同的名字,这就给全基因组注释带来了很多麻烦 酵母基因组,小鼠基因组和果蝇基因组各自测序的团队发现各自测出来的基因组 注释之后,同源基因都对不上 在这样的一个前提下,这几个组织坐到一起说我们需要一个unified的language for biology 我们要怎么样定义一套共同的语言 需要定义的是什么呢? 如果是同源基因,你希望它的名字,简写,同义词还有一些特征都有明确的定义,这样不管你研究那个物种,你一看就能明白 而且你定义之后,电脑就可以做很多推算 另外, 像刚才讲到,WNT1是WNT FAMILY的一员,像这种家族的信息也需要定义,这就是relationship的一个定义 这样定义出来的,既是一套词库,就是一个vocabulary 它不是普通的vocabulary,而是一个controled vocabulary,就是说一旦定义好了这个词库,在今后的 对于这些基因的注释里,就不能随心所欲的用自己想要的词,而是要从这个词库里 来选择已经定好的固定的词。 再有,它是一个common vocabulary 就是说这几个组织研究不同的物种同意来定义一些生物学的共同的概念,common controlled vocabulary 再一个很重要的概念是hierarchical,就是有结构的 这个结构是通过定义的家族的从属关系,比如说complex subunit的从属关系就是通过这些来实现的 这样的一个东西,如果要做得非常非常规范的时候, 他就可以被称为一个ontology,中文称为本体论 本体论叫 A specification of conceptualization。 就是说针对你所研究的这个领域,你要定义一系列的概念,这些概念有一个共同的词库。 这个词库定义了两件事情,一个是领域中所有的entity的名称,类型和特征 同时你要定义概念之间的关系 Ontology这个概念最初并非计算机领域的概念,虽然我们提到它在计算机尤其是人工智能里应用地比较广,但是最早Ontology是一个哲学的概念 它定义的是研究存在和现实,the nature of being ,becoming,existence or reality,它的主要类别和它们之间的关系 虽然在计算机里是借助了这样一个哲学的概念使它变成一个可操作的概念 那为什么ontology很重要?为什么我们专门拿一节课来讲?它能够做什么呢? 一个是它能够辅助不同生物学家和不同人之间的交流,另一个是能够注释基因组的时候有一套共同的语言 另外对于生物信息学十分重要的是使我们能够做计算,因为如果数据存在电脑里,如果都是free-text 也就是完全的自由文本文件的话,很多的统计分析是没有办法做的,但如果你的数据定义, 底层有一套严格的ontology的话,那就可以用各种统计方法做很多计算。 所以,ontology enables computation. 第三,ontology的结构是非常重要的,它可以让我们用电脑自动地找到一些超越单个基因之上的大的模式。 如果有了这样的ontology定义之后,任何一组基因都可以看有没有一些大的功能类别或者是pathway。它等于是给了你一个所谓bird eyeview 就是一个全局的观念 那在生物学里,有若干个用的比较多ontology,包括Gene Ontology ,Anatomical Entity Ontology Disease Ontology ,Sequence Ontology, System Biology Ontology.这里用的最多,大家最应该知道的就是Gene Ontology Gene Ontology在最开始做果蝇基因组,酵母基因组测序,小鼠基因组测序这三个比较大的项目时, Geneome Centre决定建立起来的,它在1998年时开始启动 就是在不同物种之间有一定同源性的这些基因和基因产物,包括蛋白,也包括一些非编码RNA 描述他们的这一套structured, hierarched common controlled vocabulary 到今天参与Gene Ontology的机构从最开始的三家发展到了将近20家,可以看到已经涵括了很多个物种 像Arbidopsis,Worm ,Zebra fish 等等 Gene Ontology 为了描述基因和基因产物 它定义了三个大的类别,因为大家也知道任何一个基因都可以是从分子功能,所参与的生物过程,处的亚细胞的定位几个方面来分别地定义 分子功能定义的是基因产物它所行使的任务,比如carbohydrate binding和ATPase activity Biological Process是更广一点所参与的生物过程,比如说mitosis ,purine metabolism Cellular Component 就是它的亚细胞定位,它的聚合体等等 GO的hierarchical structure如果画出来就是这个样子,最根部是三颗树,就是这三大类 比如Biological process这棵树又会分为很多枝,每一枝又再细分,如果我们看得再仔细一点,比如说pigmentation during development 就是一个生物学过程,这个过程是pigmentation的一类,这个“I"代表is a,就代表了两个之间的关系,就定义了一个relationship 它的所有的边都是有方向的,所以是一个 Directed Ontology,就是有方向的 比如说pigmentation during development 是一种pigmentation,倒过来是不成立的 另外它的方向都是指向一个大的方向 所以是一个有向,无环图 像刚才看的一个有向无环图,在计算机里是如何存储起来呢?你可以想象一下在计算机是怎么样的 它主要有几种存储模式,一种就是OBO文件格式 OBO是把里面的每一个概念定义为一个Term,每一个Term有一系列的特征,包括 unique ID,名字,namespace 它的definition,还有synonym 也就是同义词,还有 is a也就是从属的关系 如果在电脑里打开OBO文件,看见的就是这样的一个文件,每一个Term开始就是一个概念 首先是GO的ID,然后是name,然后是从属那个类别 它的定义,它的同义词和简称,从属哪个更大的类别,这个看到每个概念可以从属两个不同的类别 你可以想象所有的Gene Ontology都是这样的一个格式,只要格式统一了 就可以写一个parser(解析器),就可以把所有的concept 给parse 出来 如果是free-text,是一个自由文本的话,对于电脑是很难处理的 然后在每两个Term之间有一个空格的分隔,这样规范的格式写一个程序就很容易处理 另一个格式就是XML格式,XML格式有点像大家熟悉的HTML格式 它也是把每个概念定义为一个TERM,每个TERM 也有一个accession number ,有它的名字,同义词还要定义 另外还有如果这个基因在别的数据存在,也有链接存储在里面,所以XML文件在电脑里 是这样的一个格式,每个TERM以一个go:term标签开始和结尾,这就和HTML格式比较相似 然后里面每一项都是以go:accession开始,go:accession结束,中间 框起来的是accession号,然后还有名字,同义词,定义,从属关系 对于下面的TERM,就可以看到被链接到了一个InterPro的数据库 链接到了009446的一个entry 下面我们稍微花点时间看来relationship,这些relationship给了我们一个结构 "B is a A"是指B is a subtype of A.比如说mitochondrion inhertance is an organelle heritance pigmentation during development is a pigmentation. 它是定义这样的从属关系 在Graph里就是这样一个很简单的表示。还有一种是relationship 叫part of, "B part of A"的意思是 B is a part of A 这主要是定义一种subunit和unit的关系,比如说ribosomal large subunit assembly is part of ribosomal assembly pigment metabolic process during pigmentation is part of pigementation.这和”is a"是很不一样的,"is a" 有一种家族的关系 而part of 是一个部分,part of 以一个P在图里显示 另外一类很重要的relationship是regulates,这又细分为两个subrelationship,一个是positive regulates,另一个是negative regulates 比如说所显示的,比如只是regulate就是一个R显示的,positive 是绿色的R ,negative是红色的R 在电脑存储仍然是用OBO和XML文件 有了这些关系,就可以来做很多很多的推断 比如说A is a B , B is a C,那么就可以推断A is a C。如果A is a B, B is part of C,那么A is part of C,所有的逻辑关系都可以在计算机里定义 一旦定义了,不管是什么基因,就可以做这些推断。A part of B ,B is a C ,那么 A 就是part of C A is a B ,B regulates C ,那么 A regulates C A regulates B , B is a C ,那么 A regulates C A regulates B , B part of C ,那么 A regulates C 另外 A is a B ,B positively regulates C ,那么 A positively regulates C。以下也是类似的,有这样的规则,我们就可以来应用它 Gene Ontology有一个Website,就是这个URL所显示的,目前来看,Gene Ontology 里面 一共定义了将近四万的概念,一共涉及到了2000多个物种 这里面一共注释57万多基因,定义的关系包括7万5千多条关系 最多的是“is a"这种关系,有6万多,其他的还有part of , regulates 等等,加起来大概有1万多 Gene Ontology的分支有长有短 ,最长的一支有12级 搜索Gene ontology 或者浏览它,在GO里面专门有一个工具叫AmiGO来辅助你浏览 你就可以在网上非常方便地一级一级地展开,就可以看到Gene ontology整个的结构 同时你可以来搜索GO的概念或者你的基因 另外一类非常有用的概念就是分子通路,下一节我们以KEGG分子通路数据为例,看一下分子通路数据如何存储, 能够让我们在后期做什么样的运算。