一种蛋白质鉴定方法及系统与流程

文档序号:13802609阅读:514来源:国知局
一种蛋白质鉴定方法及系统与流程

本发明属于生物分析技术领域,具体涉及一种蛋白质鉴定方法及系统。



背景技术:

蛋白质序列鉴定是生物序列分析技术的一个重要分支,发展到如今,在众多的蛋白质识别算法中,以精准性著称的ms/ms技术是一个能处理较大规模数据的、快速、可靠性高的蛋白质鉴定技术。

基于蛋白质数据库查询的算法是肽序列鉴定算法中使用最为广泛和较为精确的技术之一,x!tandem软件采用的就是数据库查询算法。基于数据库查询方法的蛋白质肽序列识别过程的核心在于根据已知的蛋白质库生成理论谱,然后和待测蛋白质序列的二级质谱进行对比,完成相似性打分,即谱点积(spectrumdotproduct,sdp)过程。但是通过x!tandem软件实现蛋白质鉴定的过程耗时长,运行效率低。



技术实现要素:

本发明的目的是提供一种过程耗时短,运行效率高的蛋白质鉴定方法及系统。

本发明利用基于fpga的异构加速平台,与x!tandem软件结合,实现对蛋白质鉴定过程的加速,以提高蛋白质鉴定的效率。

本发明提供的蛋白质鉴定方法,具体步骤包括:

(1)确定蛋白酶;

(2)根据所述蛋白酶对待测蛋白质进行酶切操作,获得待测蛋白质序列酶切后的第一肽段集合;

(3)根据所述第一肽段集合利用蛋白质串联质谱技术,获得第一肽段集合中肽段的二级质谱;

(4)根据所述蛋白酶对蛋白质数据库中的蛋白质序列进行虚拟酶切操作,获得所述蛋白质数据库中所有蛋白质序列酶切后的第二肽段集合;

(5)提取所述第二肽段集合中的第一类肽段;所述第一类肽段为与第一肽段集合中肽段二级质谱的母离子质量相差在预先设定的阈值参数范围内的肽段序列;

(6)采用fpga进行加速,加速蛋白质鉴定过程,根据所述第一类肽段生成第一理论谱,所述第一理论谱包括所述第一类肽段中每一个肽段对应的第二理论谱;

(7)采用fpga进行加速,再将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分;

(8)将得分结果最高的第二理论谱对应的肽段序列确定为第一肽段集合中所述肽段的序列;

(9)依次确定第一肽段集合中的所有肽段的序列,得到蛋白质序列。

可选的,所述利用fpga进行加速,根据所述第一类肽段生成第一理论谱,具体包括:

对于第一类肽段的第i个肽段,分别获得生成子离子x离子对应的x子理论谱、子离子y离子对应的y子理论谱、子离子z离子对应的z子理论谱、子离子a离子对应的a子理论谱、子离子b离子对应的b子理论谱和子离子c离子对应的c子理论谱,得到所述第一类肽段中第i个肽段的第二理论谱,所述第二理论谱包括x子理论谱、y子理论谱、z子理论谱、a子理论谱、b子理论谱、c子理论谱;

依次获得所述第一类肽段中所有肽段的第二理论谱,得到所述第一理论谱。

可选的,所述对于第一类肽段的第i个肽段,分别获得生成子离子x离子对应的x子理论谱、子离子y离子对应的y子理论谱、子离子z离子对应的z子理论谱、子离子a离子对应的a子理论谱、子离子b离子对应的b子理论谱和子离子c离子对应的c子理论谱,具体包括:

对于第一类肽段中的第i个肽段,利用二叉树的方式并行累加计算所述第i个肽段中从始端开始前k个氨基酸的质量和,k为大于1且小于或等于n的整数,n为所述第i个肽段的氨基酸总数;

利用公式:

确定子离子t离子对应的t子理论谱的横坐标,其中valuet(k-1)表示t离子对应的t子理论谱的第k-1个横坐标,mt表示t离子的基本质量,mk表示从始端开始前k个氨基酸的质量和,zt表示t离子电荷数,width和err为程序配置的两个参数;

根据t离子的种类及所述第i个肽段的氨基酸序列,确定t离子对应的t子理论谱的第k-1个横坐标对应的纵坐标。

可选的,所述根据t离子的种类及所述第i个肽段的氨基酸序列,确定t离子对应的t子理论谱的第k-1个横坐标对应的纵坐标,具体包括:

对于x离子,利用公式px(k-1)=xk-1获得x离子对应的x子理论谱的第k-1个横坐标对应的纵坐标px(k-1),其中xk-1表示从始端开始第k-1个氨基酸的x系数;

对于y离子,利用公式py(k-1)=yk-1*bk获得y离子对应的y子理论谱的第k-1个横坐标对应的纵坐标py(k-1),其中yk-1表示从始端开始第k-1个氨基酸的y系数,bk表示从始端开始第k个氨基酸的b系数;

对于z离子,利用公式pz(k-1)=yk-1*bk获得z离子对应的z子理论谱的第k-1个横坐标对应的纵坐标pz(k-1),其中yk-1表示从始端开始第k-1个氨基酸的y系数,bk表示从始端开始第k个氨基酸的b系数;

对于a离子,利用公式pa(k-1)=ak-1获得a离子对应的a子理论谱的第k-1个横坐标对应的纵坐标pa(k-1),其中ak-1表示从始端开始第k-1个氨基酸的a系数;

对于b离子,利用公式pb(k-1)=bk-1*yk获得b离子对应的b子理论谱的第k-1个横坐标对应的纵坐标pb(k-1),其中bk-1表示从始端开始第k-1个氨基酸的b系数,yk表示从始端开始第k个氨基酸的y系数;

对于c离子,利用公式pc(k-1)=bk-1*yk获得c离子对应的c子理论谱的第k-1个横坐标对应的纵坐标pc(k-1),其中bk-1表示从始端开始第k-1个氨基酸的b系数,yk表示从始端开始第k个氨基酸的y系数。

可选的,所述利用fpga进行加速,将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分,具体包括:

提取所述第一肽段集合中肽段的二级质谱中前q个横坐标值,依次为s1,s2,s3,……,sq,其中s1<s2<s3<…<sq;

对于所述第一理论谱中的第j个第二理论谱,提取前q个横坐标值,依次为p1,p2,p3,……,pq,其中p1<p2<p3<…<pq;

判断s1是否大于pq,得到第一判断结果;

当第一判断结果表示s1大于pq时,提取第一肽段集合中肽段的二级质谱中第q+1至2q个横坐标值,依次为sq+1,sq+2,sq+3,……,s2q,其中sq+1<sq+2<sq+3<…<s2q;与第j个第二理论谱的前q个横坐标值,进行对比,获得匹配点对,所述匹配点对为横坐标相同的两个点;

当第一判断结果表示s1不大于pq时,判断sq是否小于p1,得到第二判断结果;

当第二判断结果表示sq小于p1时,提取所述第j个第二理论谱中第q+1至2q个横坐标值,依次为pq+1,pq+2,pq+3,……,p2q,其中pq+1<pq+2<pq+3<…<p2q;与第一肽段集合中肽段的二级质谱中前q个横坐标值进行对比,获得匹配点对;

当第二判断结果表示sq不小于p1时,将s1,s2,s3,……,sq中每一个横坐标值与p1,p2,p3,……,pq中每一个横纵标值一一对比,获得匹配点对;

判断sq是否小于pq,得到第三判断结果;

当第三判断结果表示sq小于pq时,提取第一肽段集合中肽段的二级质谱中第q+1至2q个横坐标值,依次为sq+1,sq+2,sq+3,……,s2q,其中sq+1<sq+2<sq+3<…<s2q;与第j个第二理论谱的前q个横坐标值,进行对比,获得匹配点对;

当第三判断结果表示sq不小于pq时,判断sq是否大于pq,得到第四判断结果;

当第四判断结果表示sq大于pq时,提取所述第j个第二理论谱中第q+1至2q个横坐标值,依次为pq+1,pq+2,pq+3,……,p2q,其中pq+1<pq+2<pq+3<…<p2q;与第一肽段集合中肽段的二级质谱中前q个横坐标值进行对比,获得匹配点对;

当第四判断结果表示sq不大于pq时,提取所述第j个第二理论谱中第q+1至2q个横坐标值,依次为pq+1,pq+2,pq+3,……,p2q,其中pq+1<pq+2<pq+3<…<p2q;同时提取第一肽段集合中肽段的二级质谱中第q+1至2q个横坐标值,依次为sq+1,sq+2,sq+3,……,s2q,其中sq+1<sq+2<sq+3<…<s2q;进行两组横坐标的对比过程,获得匹配点对;

依次获得所述第一理论谱中的第j个第二理论谱与第一肽段集合中肽段二级质谱的所有匹配点对;

将所有匹配点对中每个匹配点对的两个点的纵坐标相乘,然后将所有的匹配点对的纵坐标乘积相加,得到第j个第二理论谱的卷积打分;

依次获得所述第一理论谱中所有的第二理论谱的卷积打分。

对应于上述的蛋白质鉴定方法,本发明还提供一种蛋白质鉴定系统,所述系统包括:

(1)蛋白酶确定模块,用于确定蛋白酶;

(2)酶切模块,用于根据所述蛋白酶对待测蛋白质进行酶切操作,获得待测蛋白质序列酶切后的第一肽段集合;

(3)二级质谱生成模块,用于根据所述第一肽段集合利用蛋白质串联质谱技术获得第一肽段集合中肽段的二级质谱;

(4)虚拟酶切模块,用于根据所述蛋白酶对蛋白质数据库中的蛋白质序列进行虚拟酶切操作,获得所述蛋白质数据库中所有蛋白质序列酶切后的第二肽段集合;

(5)肽段提取模块,用于提取所述第二肽段集合中的第一类肽段;所述第一类肽段为与第一肽段集合中肽段二级质谱的母离子质量相差在设定阈值范围内的肽段序列;

(6)fpga加速模块,用于加速蛋白质鉴定的打分过程,即根据所述第一类肽段生成第一理论谱,所述第一理论谱包括所述第一类肽段中每一个肽段的第二理论谱;将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分;

(7)肽段序列确定模块,用于将得分结果最高的第二理论谱对应的肽段序列确定为第一肽段集合中肽段的序列;

(8)蛋白质序列确定模块,用于依次确定第一肽段集合中的所有肽段序列,得到蛋白质序列。

上述8个模块的具体内容,分别对应于蛋白质鉴定方法的9个步骤的操作内容(其中,fpga加速模块,对应于蛋白质鉴定方法中的步骤(6)、(7)的内容)。

本发明中,所述fpga加速模块,用于加速蛋白质鉴定过程,所述fpga加速模块包括:双倍速率同步动态随机存储器、块随机存储器、子离子生成模块、打分模块;其中:

所述双倍速率同步动态随机存储器,用于存储蛋白质数据库,还用于存储待测蛋白质序列经过蛋白酶酶切后利用蛋白质串联质谱技术获得的二级质谱数据,还用于存储所述蛋白质数据库中的第一类肽段;所述第一类肽段为所述蛋白质数据库中的蛋白质序列进行虚拟酶切操作后获得所有蛋白质序列酶切后的肽段集合中,与第一肽段集合中肽段二级质谱的母离子质量相差在设定阈值范围内的肽段序列;

所述子离子生成模块,用于根据所述第一类肽段生成子离子,获得第一理论谱,所述第一理论谱包括所述第一类肽段中每一个肽段对应的第二理论谱;

所述打分模块,用于将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分。

可选的,所述子离子生成模块,具体包括:

加法器,用于根据所述第一类肽段生成子离子获得第一理论谱时,利用二叉树的方式并行累加所述第i个肽段中的n个氨基酸的质量和,得到n-1个质量和结果;其中第k-1个质量和结果表示从始端开始前k个氨基酸的质量和,n为大于1的整数,i为大于1的整数,k为大于1且小于或等于n的整数;

寄存器组,用于在加法器之后保存计算的中间值。

可选的,所述打分模块采用多组数据并行比较的方式将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分。

根据本发明提供的具体实施例,本发明的技术效果为:

在fpga加速模块上实施的子离子生成过程和相似性打分过程,从而将x!tandem软件中运行时间占比约70%的谱点积(sdp-spectrumdotproduct,sdp)过程及子离子生成过程均在fpga上进行了加速,整个打分过程加速约为25倍左右,加速效果良好;可以将fpga的计算结果通过pcie-dma接口控制器返还给cpu进行数据后处理过程,从而可以提供程序最终的输出文件,使流程变完整。

附图说明

图1为本发明蛋白质鉴定方法的流程图。

图2为本发明蛋白质鉴定方法中利用fpga加速生成理论谱时累加原理图。

图3为本发明蛋白质鉴定方法中利用fpga加速对第一肽段集合中肽段的二级质谱与理论谱进行对比时的原理图。

图4为本发明蛋白质鉴定系统的结构图。

图5为本发明fpga加速模块结构图。

图6为本发明fpga加速模块中子离子生成模块中累加单元的结构图。

图7为本发明fpga加速模块中打分模块的结构图。

图8为本发明fpga加速模块中打分模块所用参数的存储方式示意图。

图9为本发明fpga加速模块的搭建示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明的技术方案作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明蛋白质鉴定方法的流程图。如图1所示,所述方法包括:

步骤101:确定蛋白酶。不同的蛋白酶进行酶切操作时的酶切规则不同,例如,胰蛋白酶会分割k/r肽链,按照k/r位点对蛋白质肽链进行分割。因此,首先要确定实验所用的蛋白酶。在后期进行待测蛋白质酶切操作和蛋白质数据库中的虚拟酶切操作均采用此步骤确定的蛋白酶。

步骤102:获得待测蛋白质酶切后的肽段集合。根据步骤101确定的蛋白酶对待测蛋白质进行酶切操作,获得待测蛋白质序列酶切后的肽段集合,定义为第一肽段集合。

步骤103:获得第一肽段集合中肽段的二级质谱。根据第一肽段集合利用蛋白质串联质谱技术获得第一肽段集合中每一肽段的二级质谱。串联质谱技术(tandemmassspectrometry),又被称为ms/ms或ms2,涉及多个步骤的质谱选择,并且在各个步骤之间会有一些不同形式的碎片(fragmentation)存在。串联质谱法是20世纪70年代初发明的质谱技术,它从复杂的一级质谱中选择一个或几个特定的母离子进行二次分裂,对产生的子离子碎片进行检测得到二级质谱图,二级质谱图比一级质谱图要简单得多,最大程度地排除了基体干扰,提高了选择性和灵敏度。二级质谱的横坐标为质荷比(m/z),纵坐标为相对丰度(可理解为浓度经过模数转换成的数值)。二级质谱排除了其他母离子的干扰,是待测肽(待测母离子)的质谱,每一条竖线都对应着一个子离子。

步骤104:获得蛋白质数据库中蛋白质虚拟酶切后的肽段集合。根据所述蛋白酶对蛋白质数据库中的蛋白质序列进行虚拟酶切操作,获得蛋白质数据库中所有蛋白质序列酶切后的肽段集合,定义为第二肽段集合。虚拟酶切操作与蛋白酶进行酶切后的效果相同。

步骤105:从虚拟酶切后的肽段集合中筛选符合要求的肽段。提取第二肽段集合中符合要求的肽段,定义为第一类肽段;第一类肽段为与第一肽段集合中肽段二级质谱的母离子质量相差在设定阈值范围内的肽段序列,也就是与第一肽段集合中肽段二级质谱的母离子质量相近的肽段序列。第一类肽段可能有一个也可能有多个肽段,根据实际情况不同筛选的结果也不同。

步骤106:利用fpga进行加速,根据筛选的肽段生成理论谱。利用fpga进行加速,根据第一类肽段生成第一理论谱,第一理论谱包括所述第一类肽段中每一个肽段对应生成子离子的第二理论谱。由于第一类肽段大多时候包括多个肽段,每一肽段会对应生成一个理论谱,此处定义为第二理论谱,因此,第一类肽段生成的理论谱会对应多个第二理论谱,此处将第一类肽段生成的所有的理论谱定义为第一理论谱,即第一理论谱表示第二理论谱的集合。

此步骤为利用fpga进行加速来加速x!tandem软件的子离子生成过程,前述步骤由x!tandem软件完成,此步骤由fpga加速模块的硬件来实现加速。具体生成理论谱(子离子生成)的过程为:

对于第一类肽段的第i个肽段,分别获得生成子离子x离子对应的x子理论谱、子离子y离子对应的y子理论谱、子离子z离子对应的z子理论谱、子离子a离子对应的a子理论谱、子离子b离子对应的b子理论谱和子离子c离子对应的c子理论谱,得到所述第一类肽段中第i个肽段的第二理论谱,所述第二理论谱包括x子理论谱、y子理论谱、z子理论谱、a子理论谱、b子理论谱、c子理论谱;由于每个肽段最多会产生x离子、y离子、z离子、a离子、b离子、c离子六种离子,因此,第二理论谱包括每种离子生成的子理论谱;

依次获得所述第一类肽段中所有肽段的第二理论谱,便得到所述第一理论谱。

子理论谱的生成过程为:

对于第一类肽段中的第i个肽段,利用二叉树的方式并行累加计算所述第i个肽段中从始端开始前k个氨基酸的质量和,k为大于1且小于或等于n的整数,n为所述第i个肽段的氨基酸总数;这样会依次得到n-1个质量和结果;其中第k-1个质量和结果表示从始端开始前k个氨基酸的质量和;

利用公式:

确定子离子t离子对应的t子理论谱的横坐标,其中valuet(k-1)表示t离子对应的t子理论谱的第k-1个横坐标,mt表示t离子的基本质量,mk表示从始端开始前k个氨基酸的质量和,zt表示t离子电荷数,width和err为程序配置的两个参数;对于x离子、y离子、z离子、a离子、b离子、c离子均采用上式计算对应的横坐标;

根据t离子的种类及所述第i个肽段的氨基酸序列,确定t离子对应的t子理论谱的第k-1个横坐标对应的纵坐标。

通常,不同的子离子的纵坐标会有不同的计算规则:

对于x离子,利用公式px(k-1)=xk-1获得x离子对应的x子理论谱的第k-1个横坐标对应的纵坐标px(k-1),其中xk-1表示从始端开始第k-1个氨基酸的x系数;

对于y离子,利用公式py(k-1)=yk-1*bk获得y离子对应的y子理论谱的第k-1个横坐标对应的纵坐标py(k-1),其中yk-1表示从始端开始第k-1个氨基酸的y系数,bk表示从始端开始第k个氨基酸的b系数;

对于z离子,利用公式pz(k-1)=yk-1*bk获得z离子对应的z子理论谱的第k-1个横坐标对应的纵坐标pz(k-1),其中yk-1表示从始端开始第k-1个氨基酸的y系数,bk表示从始端开始第k个氨基酸的b系数;

对于a离子,利用公式pa(k-1)=ak-1获得a离子对应的a子理论谱的第k-1个横坐标对应的纵坐标pa(k-1),其中ak-1表示从始端开始第k-1个氨基酸的a系数;

对于b离子,利用公式pb(k-1)=bk-1*yk获得b离子对应的b子理论谱的第k-1个横坐标对应的纵坐标pb(k-1),其中bk-1表示从始端开始第k-1个氨基酸的b系数,yk表示从始端开始第k个氨基酸的y系数;

对于c离子,利用公式pc(k-1)=bk-1*yk获得c离子对应的c子理论谱的第k-1个横坐标对应的纵坐标pc(k-1),其中bk-1表示从始端开始第k-1个氨基酸的b系数,yk表示从始端开始第k个氨基酸的y系数。

x系数是由软件生成的预测值,表征x子离子出现的概率大小,同样的,y系数、z系数、a系数、b系数、c系数也是表征离子出现的概率大小。

此外,需要注意的是,不同的子离子生成过程中对应的始端不同,a子离子、b子离子、c子离子的生成,从肽序列的n端开始,即n端为始端;x子离子、y子离子、z子离子的生成,从肽序列的c端开始,即c端为始端。

步骤107:利用fpga加速实现二级质谱与理论谱对比打分。利用fpga加速实现将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分,此过程为谱点积打分(spectrumdotproduct,sdp)过程。本发明中将sdp过程也在fpga加速模块上实现,实现了6中类型子离子类型的并行计算,提高了加速比。

在进行相似性打分时,需要将第一肽段集合中肽段的二级质谱(实验谱)的横坐标与理论谱中每一条肽段对应的理论谱的横坐标一一对比,找到横坐标相同的两个点,称为匹配点对,然后将匹配点对中两个点的纵坐标相乘,最后累加,得到卷积打分,即得到此肽段与第一肽段集合中肽段的相似性得分。本发明中采用分组对比的方式,提高对比的速度,具体对比过程为:

提取第一肽段集合中肽段的二级质谱中前q个横坐标值,依次为s1,s2,s3,……,sq,其中s1<s2<s3<…<sq;

对于所述第一理论谱中的第j个第二理论谱,提取前q个横坐标值,依次为p1,p2,p3,……,pq,其中p1<p2<p3<…<pq;

判断s1是否大于pq,得到第一判断结果;

当第一判断结果表示s1大于pq时,提取第一肽段集合中肽段的二级质谱中第q+1至2q个横坐标值,依次为sq+1,sq+2,sq+3,……,s2q,其中sq+1<sq+2<sq+3<…<s2q;与第j个第二理论谱的前q个横坐标值,进行对比,获得匹配点对,所述匹配点对为横坐标相同的两个点;

当第一判断结果表示s1不大于pq时,判断sq是否小于p1,得到第二判断结果;

当第二判断结果表示sq小于p1时,提取所述第j个第二理论谱中第q+1至2q个横坐标值,依次为pq+1,pq+2,pq+3,……,p2q,其中pq+1<pq+2<pq+3<…<p2q;与第一肽段集合中肽段的二级质谱中前q个横坐标值进行对比,获得匹配点对;

当第二判断结果表示sq不小于p1时,将s1,s2,s3,……,sq中每一个横坐标值与p1,p2,p3,……,pq中每一个横纵标值一一对比,获得匹配点对;

判断sq是否小于pq,得到第三判断结果;

当第三判断结果表示sq小于pq时,提取第一肽段集合中肽段的二级质谱中第q+1至2q个横坐标值,依次为sq+1,sq+2,sq+3,……,s2q,其中sq+1<sq+2<sq+3<…<s2q;与第j个第二理论谱的前q个横坐标值,进行对比,获得匹配点对;

当第三判断结果表示sq不小于pq时,判断sq是否大于pq,得到第四判断结果;

当第四判断结果表示sq大于pq时,提取所述第j个第二理论谱中第q+1至2q个横坐标值,依次为pq+1,pq+2,pq+3,……,p2q,其中pq+1<pq+2<pq+3<…<p2q;与第一肽段集合中肽段的二级质谱中前q个横坐标值进行对比,获得匹配点对;

当第四判断结果表示sq不大于pq时,提取所述第j个第二理论谱中第q+1至2q个横坐标值,依次为pq+1,pq+2,pq+3,……,p2q,其中pq+1<pq+2<pq+3<…<p2q;同时提取第一肽段集合中肽段的二级质谱中第q+1至2q个横坐标值,依次为sq+1,sq+2,sq+3,……,s2q,其中sq+1<sq+2<sq+3<…<s2q;进行两组横坐标的对比过程,获得匹配点对;

依次获得所述第一理论谱中的第j个第二理论谱与第一肽段集合中肽段二级质谱的所有匹配点对;

将所有匹配点对中每个匹配点对的两个点的纵坐标相乘,然后将所有的匹配点对的纵坐标乘积相加,得到第j个第二理论谱的卷积打分;

依次获得所述第一理论谱中所有的第二理论谱的卷积打分。

步骤108:将得分最高的理论谱对应的肽段确定为第一肽段集合中肽段的肽段序列。

步骤109:确定蛋白质序列。依次确定第一肽段集合中的每一个肽段的序列,进而得到蛋白质的序列。

图2为本发明蛋白质鉴定方法中利用fpga加速模块生成理论谱时累加原理图。对于理论谱的纵坐标,由于每次计算只涉及到当前氨基酸和肽序列的下一位氨基酸,所以在时序上实现起来比较容易。但是对于横坐标来说,其生成过程是一个累加的过程,极端得来说,肽序列中最后一位氨基酸所对应的横坐标依赖于排在它之前的所有氨基酸的质量。因此,对于横坐标中氨基酸质量和采用如图2所示的计算过程,以16个氨基酸为例,可以较快计算完16个氨基酸的子离子的横坐标。图中输入的第一行圆圈m/zi表示第i个氨基酸所索引的质量参数,第二行、第三行、第四行、第五行圆圈的值表示前面两个分支圆圈值之和,第六行圆圈vi表示前i个氨基酸的质量和。如图2所示,以二叉树的方式并行累加质量值,每一行的圆圈中的值都是同时计算得到的。例如第二行的圆圈中的值vij,是根据第一行的圆圈m/zj和m/zi中的值,采用加法器进行相加操作,同时得到;第三行的圆圈中的值,是根据第二行的圆圈中的值,进行一些相加操作,同时得到;依次类推。

图3为本发明蛋白质鉴定方法中利用fpga加速模块对第一肽段集合中肽段二级质谱与理论谱进行对比时的原理图。点积打分的核心是将实验谱的每一对值(mz,i)的质荷比与酶切肽段的理论谱(mz,p)质荷比进行对比,质荷比相等的算作一个匹配点。最初的实现方法中,实验谱从cpu传来,理论谱是子离子模块生成的,都存放在bram中。根据前面理论谱生成的规则,可知子离子横坐标的生成是一个累加的过程,所以生成的序列中,mz值是按照从小到大排序的;实验谱是第一肽段集合中肽段序列的二级质谱,它的横坐标也是升序排列的,所以可以采用图中所示的方法进行对比。从bram的存储地址起始端开始,每次读取一组谱值(读取的数量由所设定bram读端口的数据宽度确定,在这里假设是32个谱值的宽度),然后顺序遍历两组谱值,并根据相关判断条件,来判断是否需要将点积值累加到点积打分结果上,然而,若上述方法实现点积打分过程,则运行时间是o(n)的,占用时间随着理论谱和实验谱的长度的增加呈线性增加趋势。实验显示按照这种方法,点积打分过程的加速比仅能达到10左右,考虑到数据通路的开销,这个加速值的优势不大。点积打分的核心过程是双序列对比,数值的比较是基本过程,所以若可以同时完成多组数据的比较,则将大大缩减点积打分过程的延时。如图3所示方法,在每个时钟周期完成64次(以步长为8为例)比较过程,则可以有效地降低点积打分的时间。其基本算法过程是:

a)按顺序,从实验谱和理论谱中各取出前8个横坐标值,分别是集合s1~s8,和p1~p8,这里将这个过程成为更新操作。根据前面介绍,可知这两组数都是递增的。

b)若s1>p8,说明理论谱的8个值都小于当前8个实验谱的值,即不可能存在匹配点,此时摒弃p1~p8这组值,再依次获取下一组理论谱的8个值,以更新当前理论谱。反之,若s8<p1,则需要更新当前实验谱值。

c)若b)中的两个条件都不满足,则表明当前实验谱和当前理论谱中的值可能存在匹配点,此时将两组值同时进行两两对比,即同时对比64次。所以在同一时钟周期内,就可以获取两组值的匹配情况。

在c)过程执行的同时,判断s8和p8的大小情况。若s8<p8,则在c)过程结束后更新一组当前实验谱值,因为当前理论谱中的值可能和下一组实验谱中的值匹配;同理,若p8<s8,则更新一组当前理论谱值。若p8=s8,则同时更新当前理论谱值和当前实验谱值。

采用这种方法可以有效提升点积打分的速度,其缺点是占用的运算资源将会大大提升。采用的步长数受限于硬件逻辑资源,即实际操作过程中可以在资源满足的限度内,尽量增大步长数,以达到最大限度的加速比。

图4为本发明蛋白质鉴定系统的结构图。如图4所示,所述系统包括:

蛋白酶确定模块401,用于确定蛋白酶;

酶切模块402,用于根据所述蛋白酶对第一肽段集合中肽段进行酶切操作,获得第一肽段集合中肽段序列酶切后的第一肽段集合;

二级质谱生成模块403,用于根据所述第一肽段集合利用蛋白质串联质谱技术获得第一肽段集合中肽段的二级质谱;

虚拟酶切模块404,用于根据所述蛋白酶对蛋白质数据库中的蛋白质序列进行虚拟酶切操作,获得所述蛋白质数据库中所有蛋白质序列酶切后的第二肽段集合;

肽段提取模块405,用于提取所述第二肽段集合中符合要求的第一类肽段;所述第一类肽段为与第一肽段集合中肽段二级质谱的母离子质量相差在设定阈值范围内的肽段序列;

fpga加速模块406,用于根据所述第一类肽段生成第一理论谱,所述第一理论谱包括所述第一类肽段中每一个肽段对应生成子离子的第二理论谱;还用于将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分;

肽段序列确定模块407,用于将得分结果最高的第二理论谱对应的肽段序列确定为第一肽段集合中肽段的肽段序列;

蛋白质序列确定模块408,用于依次确定蛋白质的所有肽段序列,确定蛋白质序列。

图5为本发明fpga加速模块结构图。如图5所示,所述fpga加速模块包括:双倍速率同步动态随机存储器501、块随机存储器502、子离子生成模块503、打分模块504;

所述双倍速率同步动态随机存储器501用于存储蛋白质数据库,还用于存储第一肽段集合中肽段序列经过蛋白酶酶切后利用蛋白质串联质谱技术获得的二级质谱数据,还用于存储所述蛋白质数据库中符合要求的第一类肽段;所述第一类肽段为所述蛋白质数据库中的蛋白质序列进行虚拟酶切操作后获得所有蛋白质序列酶切后的肽段集合中,与第一肽段集合中肽段二级质谱的母离子质量相差在设定阈值范围内的肽段序列;

所述块随机存储器502用于存储子离子生成模块计算过程所用的计算参数;

所述子离子生成模块503用于根据所述第一类肽段生成子离子,获得第一理论谱,所述第一理论谱包括所述第一类肽段中每一个肽段对应生成子离子的第二理论谱。具体生成第二理论谱的过程参见图1中的步骤106。

所述打分模块504用于将第一肽段集合中肽段的二级质谱与所述第一理论谱中的所有第二理论谱对比,进行相似性打分。具体打分过程参见图1中步骤107。

图6为本发明fpga加速模块中子离子生成模块中累加单元的结构图。子离子生成过程中涉及计算理论谱横坐标与纵坐标的过程,横坐标的核心是加法,纵坐标的核心是乘法,基本过程都是首先根据氨基酸种类索引对应的参数(或者系数),然后进行参数运算,最终得到理论谱的横坐标(或者纵坐标)。涉及到的参数列表至少有三个,分别是full_mod(全修饰质量)、pormpt(激励修饰质量)和seqence_mod(序列修饰质量),是各氨基酸对应的不同种类的修饰质量,由软件控制程序在初始化时以配置寄存器的方式设置。对于理论谱的纵坐标,由于每次计算只涉及到当前氨基酸和肽序列的下一位氨基酸,所以在时序上实现起来比较容易。但是对于横坐标来说,其生成过程是一个累加的过程,极端得来说,肽序列中最后一位氨基酸所对应的横坐标依赖于排在它之前的所有氨基酸的质量的。

如图6中所示,累加单元601包括:加法器6011和寄存器组6012。采用的累加方式如图2中所说明,此处结合图2,仍以图2所示意的16个氨基酸为例,每一行的加法运算对应一个加法器6011,假设一个时钟只能运算完成一个32位的加法运算,如果依次计算16个氨基酸的质量累加值,至少需要16个时钟周期;但是按照图2中所示得方法,按照最长路径计算,也只需要4个时钟周期。由于图2中每个数值在软件中都是浮点数的,按照q(20)的格式进行定点化,所以在实现过程中每个加法器都是32位的。保守采用100mhz时钟,在一个时钟周期内可充分运行完三个32位的加法运算。所以,在图6所示的在加法器6011的基础上插入两层寄存器组6012即可满足时序要求,此处寄存器组6012具有16个寄存器,用于保存当前计算的中间值。由于m/zi的索引需要时间,所以在第一层加法器6011进行加法计算完成后插入第一个寄存器组,第二个寄存器组在第一个寄存器组后三个加法器结束的地方。考虑到第二个寄存器组后的逻辑运算较为简单,时序上较为宽松,为了充分利用时间,达到更快的加速比,所以可以将两个16位的累加单元按照级联的方法连接起来,这样在三个周期内就可以得到32个氨基酸的质量的累加值。按照这种级联方法,就可以根据实际情况考虑实际的时钟大小和资源分配,以16位累加单元为基本单元,增大或减小计算量。

图7为本发明fpga加速模块中打分模块的结构图。如图7所示,描述了一个支持6种子离子类型的打分模块,具体运行哪几种子离子类型可以由软件程序配置寄存器来控制,6种类型的计算可以并行实现,所以所需计算类型种类越多,加速比越大。子离子生成后,即获得了相应的理论谱,之后将理论谱的横坐标value值与实验谱的横坐标m/z值进行匹配,只匹配图谱峰值,两者相等时,则将各自对应的纵坐标相乘,并累加得到卷积打分。实验谱和理论谱中没有匹配的峰值,都不会在计算中使用。

综上所述,x!tandem的初步得分是实验谱和理论谱的点积和,称为卷积打分。将所有相似峰处的i(实验谱中纵坐标)乘以相应的p(理论谱中纵坐标)再相加,即得卷积打分,公式如下所示:

图8为本发明fpga加速模块中打分模块所用参数的存储方式示意图。如图8所示,根据打分算法的特点,硬件实现时,将打分过程中所用到的所有参数分为两种方式进行存储:寄存器存储和bram存储。采用哪种方式进行存储,取决于参数被访问的频率,虽然采用寄存器存储的参数访问非常灵活,但是因为对寄存器的随机访问是由大量的lut堆积起来的,会消耗大量的lut资源;所以,对于访问频率大的参数,选择使用bram进行存储,而访问频率小的采用寄存器存储。访问频率少的寄存器多是一些控制型参数,数量少;访问频繁的参数主要是计算参数,例如子离子计算过程中需要用到氨基酸的质量参数。氨基酸的质量参数一共有4组(分别是mod(修饰质量)、full_mod(全修饰质量)、prompt(激励修饰质量)和seqence_mod(序列修饰质量)),每组都有26个参数(对应a~z),所以共104个参数。在计算酶切肽序列母离子横坐标时,需要根据氨基酸种类对这些参数进行索引,如果采用寄存器的方式进行存储,仅这一部分就会消耗掉fpga板40%左右的lut,这种开销是不能设计所不能接受的;而采用bram进行存储后,bram仅多占用了8%,在资源利用率上非常有优势。但是采用bram存储参数同样也存在缺点,它会使在读取参数多消耗至少一个时钟周期的时间,但这是可以通过设计进行弥补的。所以整个参数列表的设计实现方法如上图所示。

本发明提出了保存大量计算参数的存储结构。由于子离子生成过程运用到很多需要被反复查询的计算参数,将这些计算参数存储到硬件结构的bram存储器结构中,而不是在寄存器中,从而使lut占用资源减少40%左右,同时bram资源只增加了8%,从而使得单片fpga中可以安放更多sdp生成模块;

图9为本发明fpga加速模块的搭建示意图。如图9所示,本发明首先对sdp过程及子离子生成过程实现基于fpga的加速,完整的硬件模块设计如图9所示,整个异构加速体系从大的方面来看由三个部分组成,host主机、fpga硬件加速模块以及pcie-dma接口控制器。host主机上运行更改过的x!tandem程序(去除打分过程的程序),程序运行到打分过程时,将相关数据(蛋白质库和酶切规则)和参数传递给fpga上搭载的打分过程的ip,fpga计算完毕后会将打分结果通过dma上传给x!tandem软件做后续处理,完成整个程序的运行。整个fpga部分硬件模块构成如上图所示,程序运行过程从左到右依次执行:首先是用一片ddr存储host发送的蛋白质数据库,同时host还会发送实验谱数据和肽数据包给硬件;接下来是根据酶切位点从ddr蛋白质存储中提取相关的酶切蛋白质肽链,并且解析实验谱数据包得到实验谱;然后将肽链和实验谱数据传入核心打分模块,经过计算后得到打分结果;最后将打分结果打包发送给host主机。

整个程序的软硬件划分、数据流以及实现的部件大致如上文所述,是一个典型的利用fpga实现的异构加速系统。在实际的实现方案中,若按照上图中的设计,fpga的资源占用率还比较低,所以为了能在一定范围内充分利用fpga的计算资源(例如lut、bram和dsp等),选择将打分模块例化多个,实现多个打分过程同时运行,从而提升计算速度。本发明采用的fpga开发板是xilinx的virtex-7vc709,按照实际的资源利用来看,可并行6~12个scoregeneration模块,具有非常好的可扩展性。

本发明在fpga上实施的子离子生成模块负责子离子生成过程,sdp生成模块则负责sdp过程,从而将x!tandem软件中运行时间占比约70%的sdp过程及子离子生成过程均在fpga上进行了加速;其次,基于fpga的异构加速方案,可以将fpga的计算结果通过pcie-dma接口控制器返还给cpu进行数据后处理过程,从而可以提供程序最终的输出文件,使流程变完整;再次,测试平台搭采用的fpga开发板的是xilinx的virtex-7系列的xc7vx690t,主机采用的处理器型号是是3.1ghz的inteli5-2400,内存大小为4gb;打分模块运行的时钟频率为100mhz,dma相关模块运行频率为200mhz。程序基本上实现x!tandem程序中打分过程的硬件加速,整个打分过程加速约为25倍左右,加速效果良好。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

上述对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,均属本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1