一种短序列组装中构建图的方法及系统的制作方法

文档序号:6470431阅读:200来源:国知局
专利名称:一种短序列组装中构建图的方法及系统的制作方法
技术领域
本发明属于基因工程技术领域,尤其涉及一种短序列组装中构建图的方法 及系统。
背景技术
新测序技术产生的短序列有两个特点
1. 序列长度短;
2. 数据量大。
长序列组装常用的phrap等软件均基于序列间的交叠(overlap)来拼接, 在短序列上的运算量太大,没有实际应用价值。新兴的短序列组装软件中成功 处理短序列的,例如velvet等,基于deBruijn图。但是,由于受内存、时间等 的限制,现有短序列组装软件只能组装较小的原核生物基因组,对于大基因组, 例如真核生物基因组,特别是哺乳动物基因组数据,均不能组装。

发明内容
本发明实施例的目的在于提供一种短序列组装中构建图的方法,旨在解决 现有短序列组装软件不能组装大基因组的问题。
本发明实施例是这样实现的, 一种短序列组装中构建图的方法,所述方法 包括下述步骤
接收测序序列;
分别将接收到的测序序列逐个碱基滑动切割得到固定-咸基长度的短串,并 得到所述短串的左、右连接关系;
将得到的各所述短串的序列值,左、右连接关系及其连接数量存储为de
4Bruijn图的一个节点。
本发明实施例的另一目的在于提供一种短序列组装中构建图的系统,所述 系统包括
接收单元,用于接收测序序列;
序列切割单元,用于分别将接收到的测序序列逐个/5成基滑动切割得到固定 碱基长度的短串,并得到所述短串的左、右连接关系;以及
构图单元,用于将得到的各所述短串的序列值,左、右连接关系及其连接 数量存储为de Bruijn图的一个节点。
在本发明实施例中,通过分别将接收到的测序序列逐个》威基滑动切割得到 固定碱基长度的短串,并得到短串的左、右连接关系,将得到的各短串的序列 值,左、右连接关系及其连接数量存储为de Bruijn图的一个节点,实现了一种 短序列组装中构建图的方法,能对大基因组进行组装,占用内存小、速度快。


图1是本发明实施例提供的短序列组装中构建图的方法的实现流程图2是本发明实施例提供的节点存储内容的示意图3本发明实施例提供的短序列組装中构建图的系统的结构图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过分别将接收到的测序序列逐个碱基滑动切割得到 固定碱基长度的短串,并得到短串的左、右连接关系,将得到的各短串的序列 值,左、右连接关系及其连接数量存储为de Bruijn图的一个节点。
图1示出了本发明实施例提供的短序列组装中构建图的方法的实现流程,详述如下
在步骤S101中,接收测序序列;
在步骤S102中,分别将接收到的测序序列逐个碱基滑动切割得到固定碱基 长度的短串(kmer),并得到短串的左、右连接关系;
在步骤S103中,将得到的各短串的序列值,左、右连接关系及其连接数量 存储为de Bruijn图的一个节点。
在本发明实施例中,测序序列的碱基长度为25 -75,切割成固定碱基长度 为21-31的短串。当然,切割得到的短串的长度小于测序序列的长度,其长度 可以根据测序序列的长度和实际情况设定。de Bruijn图中每个节点使用相应位 存储其序列值、存在左连接的各碱基的连接数量和存在右连接的各碱基的连接 数量。这里,用16字节存储deBruijn图上的各节点,其存储格式如下;
其中,seq存储短串的序列值,序列值的计算方法是使用2位存储一个核 苷序列,A用00表示,G用01表示,C用10表示,T用ll表示,顺序编码 下去生成一个占64位的整数值,并且,考虑到对于偶数长度的短串,其互补短 串可能为它自己,例如短串GATC的互补短串为GATC自己。为了防止这种混 淆,短串的长度均为奇数,由于本发明实施例中数据结构的限制,短串的长度 不大于31; left—links用24位存储其左连接关系及数量,将24位分割成4个6 位,即A: 6, T: 6, G: 6, C: 6,分别用6位存储与该短串存在左连接的石咸 基A、 T、 G或C的连接数量,每种连接数量的取值范围为[O, 63]; right—links 用24位存储其右连接关系及数量,将24位分割成4个6位,即A: 6, T: 6, G: 6, C: 6,分別用6位存储与该短串存在右连接的磁羞A、 T、 G或C的连 接数量,每种连接数量的取值范围为[O, 63];其后面的8位可以用于存储其他 值,例如,可以存储删除标记closed,以标识该短串是否被删除;也可以存储 使用标记in—use,以标识该短串是否被使用过,还可以存储其他标识。这样, 根据节点中存储的短串序列值、存在左连接的各碱基的连接数量和存在右连接的各碱基的连接数量即可构建de Bruijn图中各节点的连接关系。
例如,短串甲为AAAAAAAA存在右连接的碱基T的连接数量为19,与
其右连接碱基T的短串乙为AAAAAAAT,等于短串曱左移一个^咸基并加上与
其连接的碱基T,并且与短串甲连接的短串乙有19个,节点中存储右连接碱基
T的连接数量的存储内容如图2所示。 上述步骤S103具体为
步骤l.根据得到的短串的序列值在已存储的节点中查询是否已存有相应节
点',
步骤2.如果没有查询到相应节点,则添加节点; 步骤3.如杲查询到相应节点,则更新该相应节点的连接关系。 在本发明实施例中,使用哈希表存储deBruijn图的各节点,哈希键为序列 值,值为节点。例如取一短串为AAAAAAAA,其序列值为0x0000 ,将其序 列值0x0000作为4定在哈希表中查询是否已存有相应节点,如果没有查询到相应 节点,则添加节点存储到哈希表中,其值中的seq为该短串的序列值0x0000, 并根据该短串相邻的短串将该节点中相应左、右相连石威基的连接数量置为1; 如果查询到已存有相应节点,则更新相应节点的连接关系,即才艮据与该短串相 邻的短串更新该节点中相应左、右相连碱基的连接数量,将与该短串有连接的 碱基的相应连接数量加l。完成后,执行步骤l,查找下一个短串,直至完成全 部短串的查找。
在本发明实施例中,使用哈希表可以在O(l)的时间内完成查找节点、插 入节点(即存储节点)和更新节点连接关系。更新节点连接关系等同于查找节
点,并更新查找到的节点的左、右相连碱基的连接数量,所以时间复杂度依然 为0 (1)。
为了降低存储deBraijn图中节点所需的空间,作为本发明的一个优选实施 例,只用deBruijn图中的一个节点存储互补的两短串,节点的序列值取互补的 两短串中较小的序列值。如果一个的短串的序列值小于其互补短串的序列值,则de Bruijn图中的节点存储该短串的序列值,seq存储该短串的序列值,与其 左连接碱基的相应连接数量更新到leftjinks,与其右连接碱基的相应连接数量 更新到right—links;如果一个的短串的序列值大于其互补短串的序列值,则de Bruijn图中的节点存储其互补短串的序列值,seq存储其互补短串的序列值,与 其右连接碱基的相应连接数量更新到left—links,与其左连接碱基的相应连接数 量更新到rightjinks。操作图时,可以在程序中使用一个附加的变量来标记我 们使用的是互补的两短串的哪一个。并且,在沿图遍历时,只需要程序维持一 个这样的变量,就可以正确地得到路径中所有节点的正方向。当然,de Bmijn 图中节点的序列值也可以存储互补的两短串中较大的序列值。
为了加快构建图的速度,作为本发明的另一个优选实施例,使用多个哈希 表唯一存储de Bruijn图中的不同节点,并采用不同线程访问不同的哈希表。
在本发明实施例中,建立8个哈希表,读入一定数目的原始序列,采用8 个线程对读入的原始测序列进行多线程切割、短串求互补,在数据收集完毕后, 采用8个线程进行插入更新节点,其中每个线程只处理固定前缀的序列值。每 个哈希表存储指定前缀的序列值,并且一个哈希表只有一个线程访问,以保证 节点存储的唯一性。
采用上述本发明实施例提供的压缩的数据结构,可以将节点信息(即序列 值)和节点的连接信息(即边)组合在一起,从一个节点的值可以得到该节点 上的短串、与该短串相邻的短串的序列值及其数量。
当然,也可以用其他结构来存储de Bruijn图的各节点,例如可以用数结构 来存储,使用哈希表存储各节点在内存和使用上与用树状结构存储近似,但是 使用哈希表存储各节点在访问和修改速度上都明显优于树的存储结构。
选取非洲人基因组重测序数据,经纠错处理后,序列数据量254G碱基, 切割成25碱基长度的定长短串后,短串的总数目(包括正反向序列)为7G条, 采用本发明实施例提供的方法构建de Bruijn图,内存最大使用值为110G,共 消耗23 CPU小时,其中,CPU的参数为Quad-Core AMD Opteron(tm) Processor本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机 可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等,该程序 用来执行如下步骤
1. 接收测序序列;
2. 分别将接收到的测序序列逐个碱基滑动切割得到固定碱基长度的短串, 并得到短串的左、右连接关系;
3. 将得到的各短串的序列值,左、右连接关系及其连接数量存储为de Bruijn图的一个节点。
图3示出了本发明实施例提供的短序列组装中构建图的系统的结构,为了 便于说明仅示出了与本发明实施例相关的部分。 该系统可以用于短序列组装中,其中 接收单元301 ,接收测序序列。
序列切割单元302,分别将接收到的测序序列逐个碱基滑动切割得到固定 碱基长度的短串,并得到短串的左、右连接关系,其实现方式如上所述,不再 赘述。
构图单元303,将得到的各短串的序列值,左、右连接关系及其连接数量 存储为deBruijn图的一个节点。在本发明实施例中,构图单元303在deBruijn 图的节点中使用相应位存储其序列值、存在左连接的各碱基的连接数量和存在 右连接的各碱基的连接数量,采用哈希表存储de Bruijn图的节点,其中哈希键 为序列值,值为节点。
其中,构图单元303包括
查询模块3031 ,根据得到的短串的序列值在已存储的节点中查询是否已存 有相应节点。
节点添加一莫块3032,在查询^t块3031没有查询到相应节点时,添加节点,其实现方式如上所述,不再赘述。
连接更新模块3033,在查询模块3031查询到相应节点时,更新该相应节 点的连4妄关系,其实现方式如上所述,不再赘述。
为了降低存储de Bruijn图中节点所需空间,作为本发明的一个优选实施例, 构图单元303使用deBmijn图中的一个节点存储互补的两短串,节点的序列值 取互补的两短串中较小的序列值,其实现方式如上所述,不再赘述。
为了加快构建图的速度,作为本发明的另一个优选实施例,构图单元303 采用多个哈希表唯一存储de Bruijn图中的不同节点,并采用不同线程访问不同 的哈希表。
在本发明实施例中,通过分别将接收到的测序序列逐个石威基滑动切割得到 固定碱基长度的短串,并得到短串的左、右连接关系,将得到的各短串的序列 值,左、右连接关系及其连接数量存储为deBruijn图的一个节点,实现了一种 短序列组装中构建图的方法,能对大基因組进行組装,占用内存小、速度快。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
10
权利要求
1、一种短序列组装中构建图的方法,其特征在于,所述方法包括下述步骤接收测序序列;分别将接收到的测序序列逐个碱基滑动切割得到固定碱基长度的短串,并得到所述短串的左、右连接关系;将得到的各所述短串的序列值,左、右连接关系及其连接数量存储为deBruijn图的一个节点。
2、 如权利要求1所述的方法,其特征在于,所述de Bruijn图的节点使用 相应位存储所述短串的序列值、存在左连接的各^咸基的连接数量和存在右连接 的各碱基的连接数量。
3、 如权利要求1所述的方法,其特征在于,所述将得到的各短串的序列值, 左、右连接关系及其连接数量存储为deBmijn图的一个节点的步骤具体为根据得到的短串的序列值在已存储的节点中查询是否已存有相应节点; 如果没有查询到相应节点,则添加节点; 如果查询到相应节点,则更新所述相应节点的连接关系。
4、 如权利要求l所述的方法,其特征在于,所述de Bruijn图的一个节点 中存储互补的两短串。
5、 如权利要求l所述的方法,其特征在于,采用哈希表存储所述deBruijn 图的各节点,其中哈希键为所述序列值,值为所述节点。
6、 如权利要求5所述的方法,其特征在于,采用多个哈希表唯一存储所述 de Bmijn图的不同节点,并采用不同线程访问不同的哈希表。
7、 一种短序列组装中构建图的系统,其特征在于,所述系统包括 接收单元,用于接收测序序列;序列切割单元,用于分别将接收到的测序序列逐个石成基滑动切割得到固定 碱基长度的短串,并得到所述短串的左、右连接关系;以及构图单元,用于将得到的各所述短串的序列值,左、右连接关系及其连接数量存储为de Bruijn图的一个节点。
8、 如权剎要求7所述的系统,其特征在于,所述构图单元在de Bruijn图 的节点中使用相应位存储所述短串的序列值、存在左连接的各碱基的连接数量 和存在右连接的各;成基的连接数量。
9、 如权利要求8所述的系统,其特征在于,所述构图单元包括 查询模块,用于根据得到的短串的序列值在已存储的节点中查询是否已存有相应节点;节点添加模块,用于在所述查询模块没有查询到相应节点时,添加节点; 连接更新才莫块,用于在所述查询模块查询到相应节点时,更新所述相应节 点的连接关系。
10、 如权利要求7所述的系统,其特征在于,所述构图单元釆用哈希表存 储所述de Bmijn图中的不同节点,其中哈希键为所述序列值,值为所述节点。
全文摘要
本发明适用于基因工程技术领域,提供了一种短序列组装中构建图的方法及系统,所述方法包括下述步骤接收测序序列;分别将接收到的测序序列逐个碱基滑动切割得到固定碱基长度的短串,并得到所述短串的左、右连接关系;将得到的各所述短串的序列值,左、右连接关系及其连接数量存储为de Bruijn图的一个节点。在本发明中,通过分别将接收到的测序序列逐个碱基滑动切割得到固定碱基长度的短串及短串的左、右连接关系,将得到的各短串的序列值,左、右连接关系及其连接数量存储为de Bruijn图的一个节点,实现了一种短序列组装中构建图的方法,能对大基因组进行组装,占用内存小、速度快。
文档编号G06F19/22GK101430742SQ200810218338
公开日2009年5月13日 申请日期2008年12月12日 优先权日2008年12月12日
发明者朱红梅, 李松岗, 李瑞强, 杨焕明, 建 汪, 俊 王, 珏 阮 申请人:深圳华大基因研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1