西污染,使其的外表发生了改变,那么这些碎片上的字迹就会被污染物遮挡,在研究中,就会大大地增加寻找碎片重叠的难度。在这种情况之下,我们是很难将这些碎片从新拼接出来的,我们在生活中遇见的拼接问题事实上与上述问题相似,情况变幻莫测,所以,对于某件事物,我们都应该从多层次的角度去探析这一问题。
在最初研究序列拼接的算法时,其性质也只是为了开发一些具有启发式的算法,然后通过寻找,最终获得与当前序列的一段具有最大的重叠区域的测序片段来不断地延长基因中的当前序列。频繁使用,最终这种方法逐渐演变成一种基于图的算法,该算法主要包括以下两种,第一种被人们称为:“重叠一一排列一一共有序列”的方法,而另外一种方法则是基于 de Bruijn 图的方法。
对于这两种方法的使用,它们都各自拥有着自己的优缺点,在第二代测序数据未出现之前,主要为第一代测序数据,在第一代测序数据的拼接之中,第一种方法“重叠一一排列一一共有序列”获得了成功的应用。由此可见,第一种方法的主流意义是先计算出基因中的测序片段的两两之间的重叠区域,然后再将这些测序片段重新,继而使其排列成一个新的图。每一个测序片段都来自于基因组中,而基因组序列应该穿过每一个测序片段,所以在研究时,我们应该从图中获得一个测序片段的路,利用这个测序片段的路最终求取最后的基因组序的所有转录体的序列,在求取中,也要对转录组进行一定的拼接。
在测序研究的初期,人们对于转录拼接的研究并未引起重视,他们只是简单地按照基因组的一些传统方法去拼接RNA测序的数据,
11
不过却未得到理想的成果。追溯其原因,我们可以将其总结为:转录组的测序与拼接的本质都异于基因组。
虽然DNA测序的深度,在整个基因组上我们都可以将其看为相同,不过对RNA测序而言,它测序的深度并不相同,虽然RNA测序在不同的转录体之间或者在同一个转录体的不同位置都具有非常大的差异,在某些时候,其深度甚至相差了几个数量级。我们知道,基因组的拼接实质在于拼接出一个具有线性关系的基因组序列,不过基于转录组的拼接,又与基因组的拼接有着一定的差异。在转录组的拼接中,因为转录组中存在着可变剪接,所以每一个基因中,都有可能存在着很多个转录体,故而在转录组的拼接中就会形成数以万计的图,而这些图都能有效地刻画出一个基因的不同种剪接情况,此为两者不同的原因之一。又因为转录组的测序与基因组的测序有所差异,所以转录组的测序具有一定的链特异性。在拼接转录组时,我们就可以利用DNA中链的信息,从而拼接出具有重叠区域的转录体或者是具有重叠区域的反义转录体,而对于基因组拼接的算法,我们可以不用考虑其链中的特异性,也就没有几率获得转录体与反义转录体。由以上阐述,我们可以明确到转录组的拼接为基因组拼接拉开了挑战的序幕。
在逝去的几年时光内,对于这方面的知识,人们己经取得了不少的成果,且发明了许多转录组拼接算法。针对于这些转录组算法,我们可以根据它们是否需要一个参考基因组,将这些拼接算法分为如下两大类(如图1.1所示):
12
图1.1.基于参考基因组的转录组拼接和转录组从头拼接。 第一:基于参考基因组的拼接算法;第二:从头拼接算法。 首先,我们先来谈谈第一种算法,所谓的基于参考基因组的拼接算法,其步骤在于,先将需要测序的基因片段映射到基因组之上,这样不同的基因测序片段就会全部映射到基因组的不同位置,继而形成一个接着一个的测序片段簇,最终再通过一定的手段对这些测序片段簇进行拼接,这就是基于参考基因的拼接算法的大体步骤。而从头拼接算法的意义,从字面上我们已然知晓,从头拼接算法并不需要参考基因组,它是直接借助于RNA测序片段去拼接出最终我们所需的转录体,相对于参考基因的拼接算法,从头拼接算法的难度要大的多。
13
总体而言,基于参考基因组的拼接算法要比从头拼接算法简便,不过在简便的同时,基于参考基因组拼接却有一个较为明显的缺点,此缺点就是该算法必须依赖于一个参考基因组,而且对于参考基因组的质量要求也十分苛刻,换言之,基于参考基因拼接算法需要一个十分准确的参考基因组才能真正地获得最终转录体,不过在现实生活中,不是所有的物种都具有准确的参考基因,只有极少数物种的基因组达到这种要求,而绝大多数物种的基因组都是一个未知之谜,这给基于参考基因拼接算法带来了致命的打击。除此之外,有些物种就算存在高质量的参考基因组,这些参考基因组也不见得能使用于参考基因拼接算法中。
第二章 拼接算法的研究现状分析
在上节中,我们已经知道转录组的拼接与基因组的拼接有所差异,不过从算法上去研究该问题,两者之间又有着十分密切的关系。在本章节中,首先,我们先回顾基因组拼接中的常用算法。其次,再依次探究基于参考基因组的拼接算法与转录组从头拼接算法。最后,在前者的基础上,去总结并分析出当代生物学中关于转录组拼接研宄的现状与待解决的问题。
2.1基因组的拼接算法
14
对于基因组的拼接的概念,我们可以如此描述,从测序中所获取的短DNA序列片段出发,拼接出一个完整的基因组序列的过程就称之为基因组的拼接。在基因组拼接的问题刚刚萌芽之期,人们常常将其模型化处理,使其成为一个最短字符超串问题。而最短字符超串问题,其实质就是设定一个字符串集合为S,在集合S中找出一个最为短捷的字符串,使得集合中的字符串都是此字符串的子字符串,这便是最短字符超串问题。 以下,我们便举例说明该问题,下面是一个三个字符串和它对应的超串,如果将三个字符串中的每一个字符串都看成一个点,那么有重叠区域的两个字符串之间就会连成一条边,这样由点就可以构造出一个图。图构造出来之后,那么对于此问题,就可以将其演变成在一个图中寻找哈密尔顿路,所谓寻找哈密尔顿路,其实质是遍历图中的所有点,而且图中的每个点都只能遍历一次。在生物学上,哈密尔顿路的问题是一个及其富有挑战意味的问题,也没有一个相对而言的解法。不过,在后来人们受到物种杂交测序的影响,寻找出了一个稍微简单的解决方法,此方法就是在对物种的基因组拼接时,基因上的每一个测序片段被会被拆分成相互之间只有k-1个重叠核苷酸长度为k个的短序列,而且每一个长度为k的短序列都称为一个k-mer;下面是一个序列及其对应的一系列k-mer的例子: ATCGTCAGG ATCG TCGT CGTC
15