我们热爱生命科学!-生物行
当前位置: 主页 > 生物技术 > 分子生物学

Blast工具的介绍和并行优化(2)

时间:2005-05-12 12:43来源:本站原创 作者:bioguider 点击: 2182次

第二步,对数据库中的每一个记录序列数据定义同样的窗口,在匹配时顺序计算其窗口值,如果数据库序列数据的某一窗口值与匹配序列的窗口值列表中的某一项相等,则比较序列数据的前后部分,如果前后都相等,则找出了一个符合条件的子串,否则窗口在数据库序列数据中后移16bits,再顺序计算其窗口值。假定数据库的一个记录序列数据(核酸序列数据)如下:
    >Database Sequence
    ACTTTCAATAATAAAATAGGGCGTGCAACT
则对应的核酸基因序列编码(Encodebase)如下:
    00 01 11 11 11 01 00 00 11 00 00 11 00 00 00 00
    11 00 10 10 10 01 10 11 10 01 00 00 01 00 00 01
       定义如同匹配串的窗口(windowbase),开始计算窗口在位置8时的窗口值为2036,没有一个匹配串的窗口值与之相等;windowbase窗口下移16bits,再计算位置为16的窗口值为12480,他和匹配串窗口位置9的窗口值相等,这时比较前后剩下的序列数据发现该数据库序列数据包含一个与待匹配序列完全相同的序列片段。如此类推直到找出所有满足条件的记录。

4.    Blast检索速度的优化

随着生物学的发展,blast数据库的规模也越来越大,数据库的更新速度也越来越快,越来越多的人希望使用blast数据库。但是Blast系统由于数据库的庞大具有三个最大的弱点:
      1)、检索速度慢;
      2)、对系统的I/O的要求高;
      3)、程序消耗内存大

       由于blast数据库大,检索时需要进行匹配的序列数据多,检索速度不可避免会慢,并且随着数据库的进一步膨胀,Blast的速度将会使用户不可忍受。同时,每一种生物的基因序列数据都是一个极其庞大的数据,必须将它分解成几个基因序列数据库。一般典型的基因序列数据库大小在100MB~500MB之间,Blast需要将数据库序列数据映象到内存中,这将会消耗大量的时间用于数据库数据的I/O操作,并且在运行中消耗大量的内存资源。而现在人们对生物学进行研究时,对生物基因序列数据却越来越依赖。随着Blast数据库的增大,Blast的检索速度会越来越慢,所以必须对Blast进行改进。

    现在,在模式匹配算法上进行性能改进的空间不大,即使有改进,它所需要的时间及改进所取得的效果不可能满足blast数据库膨胀对Blast系统的要求。Blast是一个对数据库进行检索的工具,这种检索程序一般在时间和空间上的数据相关性是比较小的,对于Blast性能问题可以采用并行机制对其进行改进。

4.1.  Blast串行程序的性能

Blast的检索程序是一个结构非常简单明了的串行程序,其大致执行流程如图-1。

在实验中我们采用了三个核酸序列数据库,Fun、Htg和Ecoil。Fun数据库的基因序列数据为13.7MB,Htg数据库的大小为67.4MB,Ecoil数据库的大小为287.6MB。采用串行Blast对这三个数据库进行检索,其时间结果如下:

(责任编辑:泉水)

数据库

次数

步骤1消耗时间

步骤2消耗时间

步骤3消耗时间

 

FUN

13.7MB

1

17.7

3756.0

575.2

2

13.9

3937.9

顶一下
(6)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
特别推荐
推荐内容