欢迎回到北京大学生物信息学:导论与方法网 上课程。
我是北京大学生物信息中心高歌。
在接下来的学期里,我将和我的同事魏丽萍老 师共同为大家讲授本门课程。
下面,让我们开始序列比对
首先,让我们来回顾一些基本的概念
生物信息学这门新兴的交叉学科在过去20年以来得到了飞速的发展。
许多方便易用的软件工具和数据库被开发出 来,
并通过互联网为广大生物学研究工作者提供服 务。
那么根据加拿大bioinformatics.ca网站的统计,
截至2013年七月中,
已经有超过1400个在线工具可供生物学家免 费使用。
这些工具中绝大部分都有漂亮、友好的图形界 面,
并且呢也有详尽的使用教程。
用户可以很方便的通过浏览器来访问,
并通过简单的点击来“傻瓜式”对自己的数据进行分析。
那么,我们为什么还要开这样一门讲“原理”、“方法”的课程,
而不是去开一门讲“使用方法”的课程呢?
毕竟,现在已经有这么多方便好用的工具了。
因为呢,计算机不是生物学家,
它并不理解——当然也不可能理解——你所要解决的生物学问题。
那么这些工具只是按照设定的流程,基于一定的假设(assumption)去对数据进行操作和处理。
那么所以如果你的输入数据、或者想要解决的问题,与这些工具最初的假设不符,
它们就难免会犯错误。
这是一篇《Science》杂志2006年的新闻。
他所说的是由于写程序的时候,两列数被弄反了,
导致呢相关的5篇论文——
其中有3篇发表在《Science》、1篇发表在《PNAS》和1篇发表在《Journal of Molecular Biology》——被撤稿。
听起来很不幸……不过呢,也许是这个工具用的人太少,可能有问题,但不太容易被发现。
那么是不是如果我们使用久经考验的、大家都在用的主流工具应该安全了吧?
毕竟呢,“群众的眼睛是雪亮的”!
那么,这是更早之前在《Genome Biology》被引用的一则报道。
提到了作者在1997年时,
通过BLAST,这个BLAST可能是生物信息领域最广泛应用的工具之一。
我们会在下节课具体进行介绍
(这篇文章)在植物中发现了adenylyl cyclase(腺苷酰环化酶),并且呢这个结果在1997年发表在《Nature》上
然后,过了一年发现了这个结果有问题,
又在一年后从《Nature》撤稿。
所以呢,在没有充分对相关原理进行理解的情况下,
盲目的使用工具,就会有成为被工具使用的“人标”的危险。
因此,我们希望通过这门课的讲授,为大家介绍目前生物信息学领域主流工具与方法背后的原理。
从而使大家可以更好的发挥这些计算工具强大的作用,同时尽量避免可能的风险。
或者,用西门子这张广告图片来说,就是说“知其道,用其妙”。
你知道它的道理,你才能更好地发挥它的妙处。
具体说来,对于每一类方法,我们会从以下几个方面来介绍:
首先,是Biology,
也就是这个方法要解决的生物学问题和背景是什么,或者说“为什么需要这个方法”。
其次,是Data,也就是说使用这个方法需要什么样的输入数据、以及哪些参数。
第三部分呢,我们会来介绍这个生物学问题是怎样被建模成为一个可以被计算机解决的计算问题,
也就是所谓的Model。
最后,我们会讨论具体来实现这个模型所需要使用的算法、其性能,以及其约束和限制。
好,那么我们接下来呢就正式进入本周的内容:序列比对(Sequence Alignment)。
首先,让我们来看看这里背后的生物学问题。
也就是说给定两个序列,我们如何判定它们之间有多像?
听起来呢好像就只是比比看,对吧,好像没有什么技术含量。
听起来也似乎没有太大用处
但实际上呢,在生物学的研究里面,序列比对呢是很有用的,为什么呢?
首先呢,因为生物学中通常会有个观念,认为相似的序列可能会有相似的结构,
从而有相似的功能。
所以这样子的话呢,序列之间的相似性就可以帮助我们推断这个未知新序列的可能的功能。
通过它已知的序列之间的相似性来进行这种推断。
其次,从演化的角度来看的话,
不同物种中相似的序列往往意味着其具有共同的祖先,也就是所谓的“同源”。
事实上,序列间的相似性是在演化分析中用来构建演化树的重要依据之一。
所以,从生物学的角度来说,序列比对的目的就是根据序列之间的功能或演化关系,来有效地检测序列之间的相似性。
好,我们下面呢来一个具体的实例看看。
为了方便起见呢,我们通过网页来做这件事。
因为现在已经有很多种....很方便的网上的工具。
好,现在这个网页已经打开了。
我们可以看到呢这个里面是Pairwise Sequence Alignment ,就是两条序列之间的比对。
下面列出了很多很多可以用的工具,我们呢就直接用了第一个。
好,我们点它一下。
好,现在我们看到这个工具的页面,
看起来很简洁,上面有两个大框。
那么这两个框干什么呢?你可以看到提示里面就是说要输入两条蛋白序列。
你可以看到提示里面就是说要输入你的蛋白序列。
那么我们把人类血红蛋白的α和β亚基的序列填进去。
好,我们已经填进去了。我们来看一下填好后的样子。
我们可以注意到呢,第一行是一个“>”开头的,后面是序列的名字,
比如说α亚基就是HBA_HUMAN,β亚基就是HBB_HUMAN。
那么再往下的话呢就是这个蛋白质序列,由20种氨基酸构成,看着很简单,对吧?
好,我们把序列填进去了,填进去之后呢,第二条我们暂时不管它。
因为它已经说了,这个默认的参数呢绝大部分就是可以满足你的要求,所以我们假定就是默认参数。
好,我们现在呢就直接进入第三步,来按一下这个Submit按钮!
好,结果出来了!让我们来看一下吧。
那么结果看起来稍稍有点复杂,所以我们分块来看。
首先我们先来看下半部分,就是这个红框框起来这个部分。
那么,在这个部分里面的话呢,我们可以看到呢除了我们之前两条输入序列之外,我们还多出了这么一行。
那么这一行呢就是用来描述比对情况的一行,我们通常称为“标记行”,或者所谓的“比对串”。
那么我们大体看一下这一行里面有什么内容。
我们可以发现这一行呢,首先我们看一下这一行都由什么东西组成。
我们看一下是由竖线、冒号、点和空格(组成的)。
那么其中这个竖线的意思最简单,我们可以看出来这个竖线表示什么意思,表示什么呢?
表示相同的残基,比如说这个M和M,V和V,L和L,对吧,看起来很简单。
那么这个冒号和点又代表什么意思呢?
大家可以猜一下它表示什么意思,因为我们可以知道它一定不表示什么意思,它一定不表示一个相同的残基。
因为他们不是竖线,当然 其次你也看到两边的残基是不一样的。
那么我们先来看一下这个第一个":",是这个S和T。
那么实际上呢,他们表示的是一个替代或者替换,substitution。
那么这个":"和"."它们都是表示这个替换前后这个序列的相似程度,或者残基之间相似程度。
其中":"表示比较相似,而"."则表示不太相似。
具体来说,它们是根据一个给定的substitution matrix,或者所谓的替换矩阵,来衡量的。
就是我们上面这根蓝线标出来的,这个右上角的这个矩阵——BLOSUM62这个替换矩阵来看。
我们可以看到呢,S到T(的替换)对应的分数为1分,而第一个".",这个A和E,从A到E的替换,它的分数为-1分。
那么1分呢,它大于0,所以是个":",-1分小于0,所以是个"."。
所以,这个":"和"."就是这样子一个个排下来的。
看起来很简单,对吧?
那么我们...呃,当然这的确也不难,但让我们再来仔细的看一下,因为这里面稍微有点有趣的事情。
那么我们看一下第一个,从S到T的替换。
这个替换和后面一点的T到S的替换,就是这个蓝色的框,它们都是冒号。
事实上如果你查这个替代矩阵的话,你可以发现这个替代矩阵本身就是一个三角阵。
也就是说它是沿对角线对称的。
换句话说,就是从S到T,和从T到S,它们的分数是一样的。
也就是说,这个替换的方向,对这个分数是没有影响的。
它是一个对称的(矩阵)。
那么进一步呢,不同地方的替换S,它们得到的分数是一样的。
也就是说呢,这个替换所对应的分数,与而且只与两个残基是什么有关。
换句话说,它们是上下文无关的。
你可以看到第一个T到S,它的上游是K,第二个T到S的替换,它的上游是L,
但是它们对应分数都是一样的。
最后显示出来,它们都是一个":"。
那么就是说,在目前的比对中,各个残基之间是相互独立的。
那么这一点呢看起来好像很自然而且很平凡,大家好像觉得很直观,但是呢大家可以先记一下这个事情。
因为我们在后面慢慢会发现,这两点实际上不是看起来的那么地平凡。
那么我们最后让我们来看看空位,也就是所谓的gap。
从演化的角度来看的话呢,我们认为一个空位对应于序列中发生的片段的插入或删除,也就是indel。
它是一个缩写,叫做insertion/deletion。也就是说,在一条序列上的插入,就是另一条序列上的删除。
因为indel通常会对序列的功能产生影响,所以空位在比对过程中总是对应于一个负分,也就是所谓的空位罚分(Gap penalty)。
由于我们一次插入和删除往往涉及到多个残基,这个与替换是不一样的,所以一个空位的长度常会大于1。
所以说空位罚分也就会采取一种所谓线性组合的模式。
也就是说,它呢会把产生一个gap,一个gap open和gap extending区分开来,分别给予不同的罚分。
比如说呢,在这个结果里面,我们来看第二个空位。它要罚的分数是多少呢?
因为它open了一个新的gap,所以是10分。但是第二个gap,我们从右下角公式看,我们就只罚0.5分。
所以总共罚10.5分。
而最后一个空位,它呢,罚的分数,你可以看到,它一共是,1,2,3,4,5,一共乘以5,但它罚的分数是多少呢?
是10+0.5*4,也就是10+0.5 * (5-1),对吧?是12分。
我们有了这两部分分数之后呢,我们就可以把它们加起来,来得到最后的分数。
也就是呢,刚才这个图里面,就是下面画着红线的这一条,就是292.5分。
那么现在我想同学们已经想到为什么会有0.5分,为什么?
因为刚刚呢,那个第二个空位它会罚一个0.5分。
好,那么以上我们通过一个简单的实例,为同学们演示了比较简单的,或者是最简单的双序列比对中涉及到的一些基本观念。
那么,这里有几个问题,有兴趣的同学可以想一想,我们也不会把它作为一个作业。
我们也不要求你必须要去做这个东西。
但是如果你有兴趣的话呢,希望你想一下这个事情,并且呢把思考的结果通过论坛进行交流和讨论。
那么,我们第一单元就到此为止。
那么在接下来的第二单元里,我们会来讲我们如何用算法做这个比对。
谢谢,我们下一单元见!