[发明专利]基于GPU的序列比对算法的比对结果处理方法有效
申请号: | 201210060480.1 | 申请日: | 2012-03-08 |
公开(公告)号: | CN102663270A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 金海;郑然;冯晓文;梁添 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F19/22 | 分类号: | G06F19/22;G06F17/30 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 gpu 序列 算法 结果 处理 方法 | ||
技术领域
本发明涉及一种序列比对结果的处理方法,具体涉及一种基于GPU的Smith-Waterman序列比对算法的比对结果处理方法。
背景技术
Smith-Waterman算法是生物信息学研究中序列比对的核心算法之一。算法由打分和回溯两部分组成,打分是为了获取序列之间的相似程度,回溯是为了寻找序列之间的最佳匹配片段。如果序列间具有足够的相似性,就推测序列间可能有共同的进化祖先。但相似性高并不一定来自同一进化祖先,因此需辨别序列之间的同源性,寻找序列间的匹配片段。
随着生物序列数据库规模的迅速增长,序列比对研究对计算能力的需求越来越高,使用传统的CPU进行序列比对已不能满足需要,于是图形处理器(GPU)、现场可编程门阵列(FPGA)等各种加速器被应用到序列比对研究当中。
近年来,国内外学者在基于GPU加速Smith-Waterman算法方面做了大量研究工作,主要集中在打分部分,即Smith-Waterman算法被简单地用作序列筛选的工具,而忽略了其用于获取最佳匹配片段的价值。如图1所示,其主要包括以下步骤:CPU读取用户输入的待查询序列Q、子矩阵S、数据库序列D;CPU将Q传输到GPU的常数内存,并将S和D传输到GPU的纹理内存;GPU并行实现Smith-Waterman算法;GPU传回分值数组score[]给CPU。
打分部分为了节省存储空间,通常不写回比对结果(即分值矩阵),以容纳更多的序列进行比对。而回溯部分是基于比对结果进行的,因受限于GPU显存容量、存取开销,也缺乏一种高效的比对结果处理方法;因此,现有的研究工作中都没有在GPU中实现大规模、快速的比对结果回溯。CPU执行回溯部分的效率又明显不如GPU,从而使回溯的执行时间成为整个算法的瓶颈。
发明内容
本发明的目的在于提供一种基于GPU的序列比对算法的比对结果处理方法,该方法能实现Smith-Waterman算法快速打分,且能高效直观地写回比对结果,从而为回溯部分获取最佳匹配片段提供分值矩阵。
本发明是通过以下技术方案实现的:
一种基于GPU的序列比对算法的比对结果处理方法,包括以下步骤:初始化GPU的块大小为Bs,并确定线程数量为N,用户输入的待查询序列Q的长度为qlen,GPU在共享内存中建立分值缓冲区score[Bs]和比对结果缓冲区val[Bs*17][2],GPU初始化线程号为tid,score[]为零,val[][]为零,缓冲器标记p=1,段计数器s=0,线程号tid小于线程数量N的所有线程在纹理内存中查找相应的数据库序列,并将数据库序列的序列号sid设置为线程号tid,设置计数器i=0,每个线程分别取出相应数据库序列中的第i个字符,设置计数器j=s,每个线程分别取出待查询序列Q中的第j个字符,每个线程根据Smith-Waterman算法对相应数据库序列中的第i个字符和待查询序列Q中的第j个字符进行计算,以得到val[][p],每个线程分别求score[tid]和val[][p]两者的最大值,并用最大值替换score[tid],判断j是否大于或等于s+15或qlen,如果j大于或等于s+15或qlen,则设置计数器m=0,线程数量N中的每16个线程将val[m*16][p]到val[m*16+15][p]的16个元素联合写回GPU显存,完成一次联合写回,判断m是否大于或等于15,如果m大于或等于15,则每个线程分别判断相应数据库序列是否已没有字符,如果线程相应数据库序列已没有字符,则判断qlen是否小于或等于16,如果qlen小于或等于16,则每个线程分别将score[tid]写回GPU显存。
本发明的比对结果处理方法还包括步骤:如果j不大于或等于s+15或qlen,则j=j+1,每个线程分别取出待查询序列Q中的第j个字符。
本发明的比对结果处理方法还包括步骤:如果m不大于或等于15,则m=m+1,线程数量N中的每16个线程将val[m*16][p]到val[m*16+15][p]的16个元素联合写回GPU显存,完成一次联合写回。
本发明的比对结果处理方法还包括步骤:如果线程相应数据库序列还有字符,则p=1-p,i=i+1,每个线程分别取出相应数据库序列中的第i个字符。
本发明的比对结果处理方法还包括步骤:如果qlen不小于或等于16,则qlen=qlen-16,s=s+16,重新初始化val[][0]的所有元素为零,p=1,每个线程初始化val[sid*17][1]为GPU显存中相应的值,设置计数器i=0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210060480.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:向列型液晶组合物及使用其的液晶显示元件
- 下一篇:压敏粘合剂组合物
- 同类专利
- 专利分类
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用