一种针对测序数据的多标记序列并行识别的加速器装置
技术领域
本发明涉及生物信息学领域,更具体涉及一种针对测序数据的多标记序列并行识别的加速器装置。
背景技术
序列比对是运用某种特定的数学模型或算法,找出两个或多个序列之间的最大匹配碱基或残基数,比对的结果反映了算法在多大程度上提供序列之间的相似性关系及生物学特征,其作为一种基本、重要的操作在生物信息学和计算生物学领域中有着广泛的应用。
在处理生物样本的过程中,经常需要在样本序列中添加标记序列以区分不同的样本。由于在扩增和测序过程中引入的插入、删节和替代错误会导致标记序列发生变化,因此需要通过序列识别技术获得正确的标记序列,从而实现对样本的分类。然而,由于样本序列和标记序列数目的规模庞大,导致大量的数据需要被计算处理,因此需要高速有效的处理方法实现标记的识别。
硬件实现平台现场可编程门阵列(Field Programmable Gate Arrays,FPGA)拥有大量的可编程逻辑资源,适合并行计算,并且集成了FPGA芯片的开发板外围设备齐全,尤其是存储外设。因此,FPGA更适合作为序列比对算法的硬件加速平台。
序列比对算法是一项计算密集型操作,通过该算法可以得到标记序列相对于参考序列的比对结果,可用于发现两者之间的相似性。通过对序列之间的距离进行计算,获得的得分用以衡量两条序列的相似度,此距离可理解为由一个序列转换成另一个所需要的最小编辑操作次数(包括插入、删节及替换)。
根据参加比对的序列数目,序列比对可以分为双序列比对和多序列比对。其中双序列比对是多序列比对的基础,是最为基本的一项操作,其通过一定算法将两个核苷酸序列或蛋白质序列按照一定规律排列起来,逐对比较其字符的异同,判断它们之间的相似性和同源性,从而推测它们的结构、功能和进化上的联系。双序列比对的实现方法包括点阵法、动态规划算法、启发式算法等,其中启发式算法在获得效率和性能的同时,其灵敏度有所降低,基于动态规划的序列比对算法,例如Smith-Waterman算法,能够保证找到最优的比对结果,因此这类算法因其高灵敏度而受到广泛应用。用于生物序列比对的动态规划算法主要分为两种:全局序列比对和局部序列比对,其中,全局序列比对不限定两条序列的长度关系,但在比对结果中各序列长度必须一致。局部比对是序列的全部碱基参加比较,最后只将各序列中的分值高的片段中的碱基进行排列与计分。二者的主要区别在于回溯阶段不同。在局部比对中,最佳比对结果并不需要一定包含整条序列,序列中的任何一个位置都有可能是最佳路径的起始回溯点,并且任意一个位置都有可能是最佳路径的终止回溯点。在全局序列比对算法中,最佳路径的终点位于矩阵最后一行的最后一列的单元格所在位置,起点位于矩阵第一行的第一列的单元格所在位置。当两个序列的长度相当时,全局比对比较有参考意义,本发明使用基于动态规划的全局序列比对算法。
全局序列比对算法用于发现两条序列的全局水平上的相似性。算法的执行过程分为两个步骤:首先构建一个二维动态规划相似度矩阵,使用迭代方法计算出两个序列的相似分值并存于矩阵中。然后根据计算获得的相似度矩阵,从最佳路径的终点开始向3种反向方向进行回溯,从该单元格开始判断分值是由何种方向计算得到,并标记回溯方向,回溯得到前一个单元格后,再依照此方法不断向前回溯,直至回溯到矩阵第一行的第一列的单元格为止。利用回溯法寻找得到的路径就是一条最优路径,该路径代表了两条序列的最优比对结果。在矩阵中,最优路径朝向左上方表示两个字符为匹配或替代关系,最优路径朝向左方表示标记序列相应位置插入一个空位,最优路径朝向上方表示标记序列相应位置删节一个字符。在矩阵计算过程中,首先对矩阵进行初始化,完成矩阵第一行与第一列的分值计算,然后计算矩阵中的其他单元格,从位于矩阵第二行的第二列的单元格开始计算,可以逐行计算也可以逐列计算,直至位于矩阵最后一行的最后一列的单元格被计算完成。序列比对所占用的时间大部分用于矩阵计算阶段,因此对该步骤进行加速是加快整个序列比对算法执行速度的关键。
全局序列比对算法的特征在于:(1)任意两组序列比对之间不存在数据依赖关系,可以并行执行。(2)在一组序列比对任务中,存在着统一的数据依赖关系,即相似度矩阵中每个单元格的值仅依赖于其同行、同列以及对角线上前一个单元格的值。(3)位于矩阵同一条反对角线上的单元格之间不存在数据依赖关系。
基于动态规划的序列比对算法具有较高的时间和空间复杂度,因此算法的优化和加速实现变得至关重要。将算法并行化处理可以在保持相同的空间复杂度的同时,有效减小时间复杂度,以便于硬件实现。波前技术是获得最佳时间的有效技术,该技术的特征在于矩阵中每个单元格的值仅依赖于其相邻的左上、左和上方单元格的值,因此,可以同时计算位于矩阵反对角线上的单元。陈观君等人进一步对算法进行了优化,提出矩阵删减与分块方案,参见文献《陈观君.Smith-Waterman算法硬件加速的研究与实现[D].成都:电子科技大学,2017》,通过执行大量序列比对任务,发现回溯路径主要在对角线附近波动,无需对矩阵中所有单元格进行计算,故引入带宽(WIDTH)的概念。该方案以矩阵主对角线所在直线作为主轴基准,通过向上平行移动WIDTH个元素单位,得到矩阵有效计算区域的上边界,通过向下平行移动WIDTH个元素单位,得到矩阵有效计算区域的下边界。上边界覆盖的单元格在计算时所需要的来自上方的数值被指定为0,下边界覆盖的单元格在计算时所需要的来自左方的数值被指定为0。通过对矩阵进行删减可以有效减小计算压力。此外,针对并行化的序列比对算法,最常见及最有效的硬件架构都是将算法映射到由多个相同的处理单元组成的脉动阵列,该架构将矩阵的计算时间从二次复杂度降低到线性复杂度。文献《Fei X,DanZ,Lina L,Xin M.FPGASW:accelerating large-scale Smith-Waterman sequencealignment application with backtracking on FPGA linear systolic array[J].Interdisciplinary Sciences Computational Life Sciences2018,10:176–188.》提出了一系列消除数据依赖、降低存储需求、重叠内存访问延迟的优化策略,并在FPGA平台上实现了基于回溯的并行计算结构。综上,对矩阵计算阶段进行加速从而加快整个序列比对算法执行速度是行业研究热门问题。
发明内容
本发明所要解决的技术问题在于如何对矩阵计算阶段进行加速从而加快整个序列比对算法执行速度。
本发明通过以下技术手段实现解决上述技术问题的:一种针对测序数据的多标记序列并行识别的加速器装置,包括待比对序列整理单元、处理单元阵列、回溯方向存储器、写地址生成器、读地址生成器、回溯单元、选择单元和结果整理单元,所述待比对序列整理单元内部存储若干不同的参考字符并将输入的待分类标记序列整理为标记字符进行存储,一个参考字符与标记字符组成一对字符对,字符对作为输入信息输入至所述处理单元阵列,所述回溯方向存储器接收所述处理单元阵列输出的回溯信息序列、写地址生成器输出的写地址和写使能以及读地址生成器输出的读地址和读使能,所述回溯单元接收所述回溯方向存储器输出的回溯信息序列,所述选择单元接收所有处理单元阵列输出的最小比对得分,输出控制读地址起始位置的使能信号以及读使能至所述读地址生成器,并输出与待分类标记序列相似度最高的参考序列,所述结果整理单元接收所述回溯单元输出的回溯方向,并输出待分类标记序列与所识别出的参考序列的比对结果;
所述待分类标记序列长度取值在预设范围之内,根据待分类标记序列在预设范围内所有可能的长度,对待分类标记序列进行截取,通过比对所截取的不同长度的截取序列的比对得分,得分最小的截取序列的长度为最匹配的截取序列长度,并通过比较由不同处理单元阵列计算得到的最小得分,确定与待分类标记序列相似度最高的参考序列;回溯方向存储器用于对每个处理单元阵列根据长度最大的待分类标记序列计算得到的回溯信息进行存储和读取;当每个处理单元阵列得到的最匹配的截取序列的长度为不同值时,回溯方向存储器的读地址的起始位置不同,且回溯方向存储器的当前比对任务的写、读地址分别按照地址递增、递减的顺序生成,当前比对任务的相邻比对任务的写、读地址分别按照地址递减、递增的顺序生成,当前比对任务开始回溯后,当前比对任务的下一个比对任务开始进行矩阵计算。
本发明待分类标记序列的长度在预设范围之内,为非固定值,根据标记序列可能的长度对待分类标记序列进行截取,通过比对所截取的不同长度的标记序列的比对得分,确定最匹配的截取标记序列的长度,并且每个待分类标记序列需要与多个参考字符进行比对,从中筛选出匹配度最高的参考序列,此外,对于一个串行计算的序列比对加速器,通常当上一个比对任务完成回溯时,下一个比对任务才可以启动,故在上一个任务的回溯阶段,脉动阵列处于空闲状态。因此为了缩短相邻两个比对任务之间的时间,本发明仅利用一个回溯方向存储器控制相邻比对任务的读、写地址按照递增递减的顺序交替生成,当前比对任务开始回溯后,当前比对任务的下一个比对任务开始进行矩阵计算,有效减少了相邻比对任务之间的空闲时间,对矩阵计算阶段进行加速从而加快整个序列比对算法执行速度,实现占用较少的硬件资源且具有明显的加速效果。
进一步地,所述待比对序列整理单元包括:第一移位寄存器、第一计数器、控制单元、第一RAM存储器、k个ROM存储器及一个序列准备单元;
所述待比对序列整理单元在加速器工作使能信号置高电平后开始工作,所述第一移位寄存器的位宽为3×nmax比特,其中nmax为待分类标记序列允许包含字符的最大个数,每个字符用3比特表示,每个时钟周期向左移动3比特,并输出由所述第一移位寄存器中数据的[3×nmax-1:3×nmax-3]比特组成的标记字符,所述第一计数器对标记字符的个数进行统计,第一计数器的计数值为0-nmax,根据第一计数器的计数值生成读使能和写使能,所述第一RAM存储器在读使能和写使能的指示下,完成对标记字符的存储与读取,第一RAM存储器的输入数据位宽和输出数据位宽均为3比特,深度为nmax,k个所述ROM存储器分别存储k个不同的参考字符,其输出数据位宽为3比特,深度为m,m为参考字符所包含的字符的个数,所述ROM存储器在读使能的指示下,完成对参考字符的读取;所述控制单元控制标记字符和参考字符输入至所述序列准备单元,所述序列准备单元存储处理单元阵列所需要的待比对的标记字符和参考字符。
更进一步地,所述控制单元包括一个第二计数器、一个第三计数器及五个顺序编号的第一选择器至第k+1选择器;序列准备单元包括顺序编号的第一寄存器组至第k寄存器组;
所述第二计数器的计数值为0-(m+nmax-1),所述第二计数器与第k选择器控制所述第kROM存储器输出参考字符至所述序列准备单元中的第k寄存器组中,所述第三计数器的计数值为0-q,其中q为处理单元阵列中处理单元的个数,所述第二计数器、第k+1计数器和第k+1选择器控制所述第k+1ROM存储器输出的标记字符输入至所述序列准备单元中的k+1个寄存器组中。
更进一步地,所述第一寄存器组存储由待比对的标记字符与第一参考字符组成的第一待比对字符对,所述第二寄存器组存储由待比对的标记字符与第二参考字符组成的第二待比对字符对,所述第三寄存器组存储由待比对的标记字符与第三参考字符组成的第三待比对字符对,所述第k寄存器组存储由待比对的标记字符与第k参考字符组成的第k待比对字符对,每个寄存器组中包含q个寄存器,每个寄存器的位宽为6比特,由标记字符和参考字符拼接而成,所述第k寄存器组中的q个寄存器中的数据分别输入对应的所述第k处理单元阵列中的q个处理单元。
再进一步地,所述处理单元阵列有k个,每个处理单元阵列包括q个处理单元;k个所述处理单元阵列并行地对所述待比对序列整理单元输出的k个待比对字符对进行序列比对,第a个处理单元的引脚L_o连接到第(a+1)个处理单元的引脚L以及第a个处理单元的引脚U,第a个处理单元的引脚H_o连接到第(a+1)个处理单元的引脚H,其中1≤a≤q-1,第(q-w+b)个处理单元的引脚L_o连接到第b个处理单元的引脚U_back,其中1≤b≤w,第(q-w+b-1)个处理单元的引脚H_o连接到第b个处理单元的引脚H_back,第(q-w+b-1)个处理单元的引脚L_o连接到第b个处理单元的引脚L_back,其中w为设置的带宽的长度,即标记序列允许插入或删节字符的最大个数。
再进一步地,所述处理单元包括第一比较器、第二比较器、顺序编号的加法器M1至加法器M4及顺序编号的第k+2选择器至第k+6选择器;
引脚S_i和引脚L_i作为所述第一比较器的输入引脚输入一对待比对字符对,所述第一比较器输出的数据及引脚H是所述加法器M1的输入,所述第一比较器输出的数据及引脚H_back是所述加法器M2的输入,所述加法器M1和加法器M2的输出连接至所述第k+2选择器的输入端,引脚L_back及引脚U_back是所述第k+3选择器的输入,引脚L及引脚H_o_1是所述第k+4选择器的输入,所述第k+3选择器输出的数据及信号gap_penalty是所述加法器M3的输入,所述第k+4选择器输出的数据及信号gap_penalty是所述加法器M4的输入,所述加法器M3和加法器M4的输出连接所述第k+5选择器的输入,所述第k+5选择器和第k+2选择器的输出连接所述第k+6选择器及第二比较器的输入,所述第二比较器输出回溯方向。
进一步地,所述读地址生成器和写地址生成器均包括五个计数器,用于生成读、写地址和读、写使能。
进一步地,所述回溯方向存储器包括第k+7选择器、第二RAM存储器;
所述第k+7选择器接收所述处理单元阵列输出的回溯方向,并将2w+1个回溯方向拼接成一个回溯信息序列,回溯信息序列在所述写地址生成器输出的写使能以及写地址的控制下,被输入至所述第二RAM存储器,所述第二RAM存储器在读地址生成器输出的读使能以及读地址的控制下,输出回溯信息序列,所述第二RAM存储器的输入数据位宽和输出数据位宽为3×(2w+1)比特,深度为m。
更进一步地,所述回溯单元包括第二移位寄存器及顺序编号的第四计数器至第七计数器;
所述回溯方向存储器中第二RAM存储器输出的数据输出给与之连接的回溯单元的第二移位寄存器,所述第二移位寄存器输出回溯方向,当所述第二移位寄存器输出的回溯方向代表删节,所述第四计数器进行计数,当所述第二移位寄存器输出的回溯方向代表插入,所述第五计数器进行计数,所述第四计数器和第五计数器的计数值均为0-3w,所述第二移位寄存器通过所述第四计数器和第五计数器控制移动的方向和位宽,当所述第二移位寄存器输出的回溯方向代表删节或插入,所述第六计数器进行计数,当所述第二移位寄存器输出的回溯方向代表删节或插入或替代,所述第七计数器进行计数,所述第六计数器和第七计数器的计数值均为0-(m+nmax-1)。
再进一步地,回溯方向存储器采用的回溯优化方法为:
针对待分类标记序列长度取值在[r,s]范围之内的序列比对,根据待分类标记序列在[r,s]内最大的长度,对待分类标记序列进行截取,待分类标记序列在[r,s]内最大的长度为最匹配的截取序列长度,通过比较由不同处理单元阵列计算得到的最小得分,确定与待分类标记序列相似度最高的参考序列;设计一个回溯方向存储器用于对每个单元阵列根据所截取长度最大的标记序列计算得到的回溯信息的存储和读取;当每个处理单元阵列得到的最匹配的截取序列的长度为不同值时,回溯方向存储器的读地址的起始位置是不同的;设计一个读地址生成器用于控制回溯方向存储器的读地址,第一个比对任务的写、读地址分别按照地址递增、递减的顺序生成,下一个比对任务的写、读地址分别按照地址递减、递增的顺序生成,即控制相邻两个比对任务中读、写地址按照递增、递减的顺序交替生成,当上一个比对任务开始回溯后,下一个比对任务开始进行矩阵计算。
再进一步地,针对待分类标记序列长度取值在[18,22]范围之内的序列比对,设计一个回溯方向存储器也即第二RAM存储器,用于对根据所截取长度最大的标记序列计算得到的回溯信息的存储和读取,根据选取的最匹配的截取标记序列的长度,确定第二RAM存储器读地址的起始位置。
再进一步地,所述选择单元包括:第三比较器、第二数据选择器以及第三数据选择器;所述第三比较器接收所述第一处理单元阵列至第k处理单元阵列输出的最小比对得分,输出对应k个读地址生成器的读使能信号,所述第二数据选择器接收所述第三比较器输出的k个使能信号,输出匹配程度最高的参考序列,所述第三数据选择器接收每个处理单元阵列输出的五个标志最匹配的截取标记序列的长度的使能信号,并输出对应k个读地址生成器的起始位置的使能信号。
进一步地,所述结果整理单元包括:顺序编号的第八计数器至第十一计数器、第四数据选择器以及第五数据选择器;
所述第四数据选择器接收与之对应的回溯单元输出的回溯方向,当回溯方向代表匹配时,第四数据选择器的使能信号置为高电平,所述第八计数器进行计数,当回溯方向代表替代时,第四数据选择器的使能信号为高电平,所述第九计数器进行计数,当回溯方向代表删节时,第四数据选择器的使能信号为高电平,所述第十计数器进行计数,当回溯方向代表插入时,第四数据选择器的使能信号为高电平,所述第十一计数器进行计数,四个计数器的计数值均为0-m,所述第五数据选择器接收所述回溯单元输出的回溯方向,并生成四个使能信号分别控制输出第八计数器至第十一计数器的数值。
本发明的优点在于:本发明待分类标记序列的长度在预设范围之内,为非固定值,根据标记序列可能的长度对待分类标记序列进行截取,通过比对所截取的不同长度的标记序列的比对得分,确定最匹配的截取序列的长度,并且每个待分类标记序列需要与多个参考字符进行比对,从中筛选出匹配度最高的参考序列,此外,对于一个串行计算的序列比对加速器,通常当上一个比对任务完成回溯时,下一个比对任务才可以启动,故在上一个任务的回溯阶段,脉动阵列处于空闲状态。因此为了缩短相邻两个比对任务之间的时间,本发明仅利用一个回溯方向存储器控制相邻比对任务的读、写地址按照递增递减的顺序交替生成,当前比对任务开始回溯后,当前比对任务的下一个比对任务开始进行矩阵计算,有效减少了相邻比对任务之间的空闲时间,对矩阵计算阶段进行加速从而加快整个序列比对算法执行速度,实现占用较少的硬件资源且具有明显的加速效果。
附图说明
图1为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置的结构示意图;
图2为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置中待比对序列整理单元的结构示意图;
图3为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置中序列准备单元的结构示意图;
图4为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置中处理单元级联方式的示意图;
图5为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置中处理单元的结构示意图;
图6为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置中回溯单元的结构示意图;
图7为本发明实施例所公开的一种针对测序数据的多标记序列并行识别的加速器装置中回溯优化方案示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种针对测序数据的多标记序列并行识别的加速器装置,采用现场可编程门阵列或超大规模集成(Very Large Sacle Integration,VLSI)电路实现,包括待比对序列整理单元1、处理单元阵列2、回溯方向存储器4、写地址生成器3、读地址生成器5、回溯单元6、选择单元7和结果整理单元8,所述待比对序列整理单元1内部存储若干不同的参考字符并将输入的待分类标记序列整理为标记字符进行存储,一个参考字符与标记字符组成一对字符对,字符对作为输入信息输入至所述处理单元阵列2,所述回溯方向存储器4接收所述处理单元阵列2输出的回溯信息序列、写地址生成器3输出的写地址和写使能以及读地址生成器5输出的读地址和读使能,所述回溯单元6接收所述回溯方向存储器4输出的回溯信息序列,所述选择单元7接收四个所述处理单元阵列2输出的最小比对得分,输出控制所述回溯方向存储器4的读使能以及控制所述读地址生成器5读地址起始位置的使能信号,并输出与待分类标记序列相似度最高的参考序列,所述结果整理单元8接收所述回溯单元6输出的回溯方向,并输出待分类标记序列与所识别出的参考序列的比对结果;
如图2所示,所述待比对序列整理单元1包括:第一移位寄存器11、第一计数器、控制单元12、第一RAM存储器17、4个ROM存储器分别为第一ROM存储器13、第二ROM存储器14、第三ROM存储器15、第四ROM存储器16及一个序列准备单元18;
所述待比对序列整理单元1在加速器工作使能信号置高电平后开始工作,所述第一移位寄存器11的位宽为3×22比特,其中22为待分类标记序列允许包含字符的最大个数,每个字符用3比特表示,每个时钟周期向左移动3比特,并输出由所述第一移位寄存器11中数据的[65:63]比特组成的标记字符,所述第一计数器对标记字符的个数进行统计,第一计数器的计数值为0-22,根据第一计数器的计数值生成读使能和写使能,所述第一RAM存储器17在读使能和写使能的指示下,完成对标记字符的存储与读取,第一RAM存储器17的输入数据位宽和输出数据位宽均为3比特,深度为22,4个所述ROM存储器分别存储4个不同的参考字符,其输出数据位宽为3比特,深度为20,20为参考字符所包含的字符的个数,所述ROM存储器在读使能的指示下,完成对参考字符的读取;所述控制单元12控制标记字符和参考字符输入至所述序列准备单元18,所述序列准备单元18存储处理单元阵列2所需要的待比对的标记字符和参考字符。
所述控制单元12包括一个第二计数器、一个第三计数器及五个顺序编号的第一选择器至第五选择器;如图3所示,序列准备单元18包括顺序编号的第一寄存器组至第k寄存器组,本发明实施例中k取4,故序列准备单元18包括第一寄存器组181、第二寄存器组182、第三寄存器组183和第四寄存器组184。所述第二计数器的计数值为0-41,所述第二计数器与第一选择器控制所述第一ROM存储器13输出参考字符至所述序列准备单元18中的第一寄存器组181中,所述第二计数器与第二选择器控制所述第二ROM存储器14输出参考字符至所述序列准备单元18中的第二寄存器组182中,所述第二计数器与第三选择器控制所述第三ROM存储器15输出参考字符至所述序列准备单元18中的第三寄存器组183中,所述第二计数器与第四选择器控制所述第四ROM存储器16输出参考字符至所述序列准备单元18中的第四寄存器组184中,所述第三计数器的计数值为0-q,其中q为处理单元阵列2中处理单元的个数,本实施例中q为8,所述第二计数器、第三计数器和第五选择器控制所述第一RAM存储器17输出的标记字符输入至所述序列准备单元18中的4个寄存器组中。
所述第一寄存器组181存储由待比对的标记字符与第一参考字符组成的第一待比对字符对,每个寄存器组包括8个寄存器,因此每个寄存器存放8对相同的待比对字符对,第一寄存器组181存放8对第一待比对字符对,所述第二寄存器组182存储由待比对的标记字符与第二参考字符组成的第二待比对字符对,所述第三寄存器组183存储由待比对的标记字符与第三参考字符组成的第三待比对字符对,所述第四寄存器组184存储由待比对的标记字符与第四参考字符组成的第四待比对字符对,每个寄存器组中包含8个寄存器,每个寄存器的位宽为6比特,由标记字符和参考字符拼接而成,所述第k寄存器组中的q个寄存器中的数据分别输入对应的第k个处理单元阵列2中的q个处理单元,寄存器组的个数与处理单元阵列2的个数相同,如第一寄存器组181中的8个寄存器中的数据分别输入对应的第一个处理单元阵列2中的8个处理单元。
如图4所示,所述处理单元阵列2有4个,每个处理单元阵列2包括8个处理单元分别为第一处理单元21至第八处理单元28;4个所述处理单元阵列2并行地对所述待比对序列整理单元1输出的4个待比对字符对进行序列比对,第a个处理单元的引脚L_o连接到第(a+1)个处理单元的引脚L以及第a个处理单元的引脚U,第a个处理单元的引脚H_o连接到第(a+1)个处理单元的引脚H,其中1≤a≤q-1,第(q-w+b)个处理单元的引脚L_o连接到第b个处理单元的引脚U_back,其中1≤b≤w,第(q-w+b-1)个处理单元的引脚H_o连接到第b个处理单元的引脚H_back,第(q-w+b-1)个处理单元的引脚L_o连接到第b个处理单元的引脚L_back,其中w为设置的带宽的长度,即标记序列允许插入或删节字符的最大个数,本实施例中w取4。
如图5所示,所述处理单元的结构相同,以第一处理单元21为例,第一处理单元21包括第一比较器211、第二比较器212、顺序编号的加法器M1至加法器M4及顺序编号的第k+2选择器至第k+6选择器,本实施例中k取4,因此处理单元包括顺序编号的第六选择器213至第十选择器217;
引脚S_i和引脚L_i作为所述第一比较器211的输入引脚输入一对待比对字符对,所述第一比较器211输出的数据及引脚H是所述加法器M1的输入,所述第一比较器211输出的数据及引脚H_back是所述加法器M2的输入,所述加法器M1和加法器M2的输出连接至所述第六选择器213的输入端,引脚L_back及引脚U_back是所述第七选择器214的输入,引脚L及引脚H_o_1是所述第八选择器215的输入,所述第七选择器214输出的数据及信号gap_penalty是所述加法器M3的输入,所述第八选择器215输出的数据及信号gap_penalty是所述加法器M4的输入,所述加法器M3和加法器M4的输出连接所述第九选择器216的输入,所述第十选择器217和第六选择器213的输出连接所述第十选择器217及第二比较器212的输入,所述第二比较器212输出回溯方向。
如图6,所述读地址生成器5和写地址生成器3均包括五个计数器,用于生成读地址和读使能。所述前两个计数器的计数值范围分别为0-(m+nmax-1)和0-m,分别生成写使能和写地址。后三个计数器的计数值范围分别为0-3m、0-3m、0-m,用于生成读地址和读使能。
所述回溯方向存储器4包括第k+7选择器以及第二RAM存储器,本实施例中即第十一选择器、第二RAM存储器,每个RAM存储器即为一个回溯方向存储器;
所述第十一选择器接收所述处理单元阵列2输出的回溯方向,并将9个回溯方向拼接成一个回溯信息序列,回溯信息序列在所述写地址生成器3输出的写使能以及写地址的控制下,被输入至所述第二RAM存储器,所述第二RAM存储器分别在读地址生成器5输出的读使能以及读地址的控制下,输出回溯信息序列,所述第二RAM存储器的输入数据位宽和输出数据位宽为27比特,深度为20。
如图6所示,所述回溯单元6包括包括第二移位寄存器65及顺序编号的第四计数器61至第七计数器64;
所述回溯方向存储器4中第二RAM存储器输出的数据输出给与之连接的回溯单元的第二移位寄存器65,所述第二移位寄存器65输出回溯方向,当所述第二移位寄存器65输出的回溯方向代表删节,所述第四计数器61进行计数,当所述第二移位寄存器65输出的回溯方向代表插入,所述第五计数器62进行计数,所述第四计数器61和第五计数器62的计数值均为0-3w,所述第二移位寄存器65通过所述第四计数器61和第五计数器62控制移动的方向和位宽,当所述第二移位寄存器65输出的回溯方向代表删节或插入,所述第六计数器63进行计数,当所述第二移位寄存器65输出的回溯方向代表删节或插入或替代,所述第七计数器64进行计数,所述第六计数器63和第七计数器64的计数值均为0-(m+nmax-1),本实施例中为0-41。
回溯方向存储器4采用的回溯优化方法为:
如图7所示,针对待分类标记序列长度取值在[r,s]范围之内的序列比对,设计一个回溯方向存储器用于对根据所截取长度最大的标记序列计算得到的回溯信息的存储和读取;当最匹配的截取标记序列的长度为不同值时,回溯方向存储器的读地址的起始位置是不同的;设计一个读地址生成器5用于控制回溯方向存储器的读地址,第一个比对任务的写、读地址分别按照地址递增、递减的顺序生成,下一个比对任务的写、读地址分别按照地址递减、递增的顺序生成,即控制相邻两个比对任务中读、写地址按照递增、递减的顺序交替生成,当上一个比对任务开始回溯后,下一个比对任务开始进行矩阵计算。本实施例中,针对待分类标记序列长度取值在[18,22]范围之内的序列比对,设计一个回溯方向存储器也即第二RAM存储器,用于对根据所截取长度最大的标记序列计算得到的回溯信息的存储和读取,通过比对截取不同长度的标记序列的比对得分,得分最小的序列所对应的长度即为最匹配的截取序列的长度,并根据该长度确定存储器读地址的起始位置。
所述选择单元7包括:第三比较器、第二数据选择器以及第三数据选择器;
所述第三比较器接收所述第一处理单元阵列至第四处理单元阵列输出的最小比对得分,输出对应四个读地址生成器的读使能信号,所述第二数据选择器接收所述第三比较器输出的四个使能信号,输出匹配程度最高的参考序列,所述第三数据选择器接收每个处理单元阵列输出的五个标志最匹配的截取标记序列的长度的使能信号,并输出对应四个读地址生成器的起始位置的使能信号。
所述结果整理单元8包括:顺序编号的第八计数器至第十一计数器、第四数据选择器以及第五数据选择器;
所述第四数据选择器接收与之对应的回溯单元输出的回溯方向,当回溯方向代表匹配时,第四数据选择器的使能信号置为高电平,所述第八计数器进行计数,当回溯方向代表替代时,第四数据选择器的使能信号为高电平,所述第九计数器进行计数,当回溯方向代表删节时,第四数据选择器的使能信号为高电平,所述第十计数器进行计数,当回溯方向代表插入时,第四数据选择器的使能信号为高电平,所述第十一计数器进行计数,四个计数器的计数值均为0-20,所述第五数据选择器接收所述回溯单元6输出的回溯方向,并生成四个使能信号分别控制输出第八计数器至第十一计数器的数值。
本发明提出的加速器装置可采用现场可编程门阵列实现。说明书附图2、6中的回溯方向存储器可采用FPGA芯片中集成的RAM模块实现。附图2中的第一ROM存储器13、第二ROM存储器14、第三ROM存储器15、第四ROM存储器16可采用FPGA芯片内部集成的只读存储器(Read-Only Memory,ROM)实现。本发明以长度为18-22个字符的待分类的标记序列和长度为20个字符的参考序列为特例,介绍本发明设计的针对测序数据的多标记序列并行识别的加速器装置的实施效果。
首先使用MATLAB生成66位的信息位(由随机的0与1组合而成)作为长度为22个字符的非固定长度的待分类标记序列(每个字符用3位信息位表示),存放在s.txt文件中,标记序列如下表1所示,同时生成4个60位的信息位作为长度为20个字符的参考序列集合,存放在l.txt文件中,参考序列如下表2所示。然后使用ISE软件编写testbench文件将s.txt文件读入到加速器中,将l.txt文件存入加速器的序列整理单元的ROM存储器中,将加速器的工作使能置为高电平,使加速器开始工作。
表1待分类的标记序列信息s.txt
表2参考序列信息l.txt
加速器首先对输入待分类的标记序列进行缓存,待比对序列整理单元1中RAM存储器的深度为22,数据位宽为3比特,4个ROM存储器的深度为20,数据位宽为3比特。控制ROM存储器和RAM存储器地址的产生,读取待比对的字符对,字符对在处理单元阵列2完成序列比对,并输出20个长度为27比特的回溯信息序列至回溯方向存储器4。回溯方向存储器的读、写数据位宽均为27比特,深度为20,根据不同长度的标记序列确定回溯的起始位置,当标记序列长度为18个字符时,回溯的起始位置为位于第20个地址的序列的第7个回溯方向。经过回溯阶段,对截取不同长度标记序列的比对得分以及最优比对结果中匹配、插入、删节、替代的个数及顺序进行计算与记录,并根据该结果筛选与待分类的标记序列相似度最高的参考序列,具体参见表3至表5。
表3与待分类的标记序列相似度最高的参考序列
表4待分类的标记序列长度的确定
表5比对结果
本实施例设计的针对测序数据的多标记序列并行识别的加速器装置所采用的器件为Virtex-6系列XC6VLX240T,设计在不违反硬件的建立时间和保持时间的约束下所能达到的最大频率181.653MHz,综合器为Xilinx公司的XST。本发明所设计的加速器的综合资源使用情况如表6所示。
表6编码器综合资源使用情况
通过以上技术方案,本发明待分类标记序列的长度在预设范围之内,为非固定值,根据标记序列可能的长度对待分类标记序列进行截取,通过比对所截取的不同长度的标记序列的比对得分,确定最匹配的截取标记序列的长度,并且每个待分类标记序列需要与多个参考字符进行比对,从中筛选出匹配度最高的参考序列,此外,对于一个串行计算的序列比对加速器,通常当上一个比对任务完成回溯时,下一个比对任务才可以启动,故在上一个任务的回溯阶段,脉动阵列处于空闲状态。因此为了缩短相邻两个比对任务之间的时间,本发明仅利用一个回溯方向存储器控制相邻比对任务的读、写地址按照递增递减的顺序交替生成,当前比对任务开始回溯后,当前比对任务的下一个比对任务开始进行矩阵计算,有效减少了相邻比对任务之间的空闲时间,对矩阵计算阶段进行加速从而加快整个序列比对算法执行速度,实现占用较少的硬件资源且具有明显的加速效果。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。