当前位置: 首页 > 专利查询>复旦大学专利>正文

一种蛋白质鉴定并行加速算法制造技术

技术编号:20799082 阅读:32 留言:0更新日期:2019-04-06 12:46
本发明专利技术属于并行处理技术领域,具体为一种蛋白质鉴定并行加速算法。本发明专利技术首先采用细粒度切分蛋白质库,通过设置低竞争缓冲区实现细粒度batch分配机制,然后通过数据结构的优化和内存分配器的优化实现对动态内存的优化,利用主线程和工作线程完成对蛋白质库的理论水解、匹配、打分和保存分数;最后通过调整计分流程,完成并行计分。本发明专利技术相较于传统蛋白质鉴定软件X!Tandem串行性能有20.5倍的性能提升。

A Parallel Acceleration Algorithms for Protein Identification

The invention belongs to the technical field of parallel processing, in particular to a parallel acceleration algorithm for protein identification. The invention firstly adopts fine-grained segmentation protein library, realizes fine-grained batch allocation mechanism by setting low-competition buffer, then optimizes dynamic memory by optimizing data structure and memory allocator, completes theoretical hydrolysis, matching, scoring and storage score of protein library by using main thread and working thread, and finally adjusts the calculation shunt process. Scoring in parallel. Compared with the traditional protein identification software X! Tandem serial performance has a 20.5-fold performance improvement.

【技术实现步骤摘要】
一种蛋白质鉴定并行加速算法
本专利技术属于并行处理
,具体涉及到一种蛋白质鉴定并行加速算法。
技术介绍
随着人类基因组计划的完成,生命科学开始进入到蛋白质研究时代。蛋白质由氨基酸组成,通过基因指导氨基酸对蛋白质的合成,蛋白质进一步承担生命活动。蛋白质是生命活动的直接参与者,蛋白质的研究对人类进一步揭示生命本质有着重要的意义,蛋白质鉴定是蛋白质研究的基础,对生物、医药研究、临床诊断至关重要。氨基酸序列是表示蛋白质身份唯一标识,蛋白质鉴定的目的是鉴定出蛋白质的氨基酸序列。当前主流蛋白质鉴定的方法是通过串联质谱方法进行鉴定,具体是通过将生物样品转化为串联质谱,对串联质谱进行分析得出样品中蛋白质的氨基酸序列。蛋白质鉴定领域最实用的蛋白质鉴定算法是数据库搜索法。基本鉴定原理是将蛋白质库中蛋白质序列转换为理论质谱,与实验质谱打分,得到与实验质谱最相似的蛋白质序列。生物大数据时代的到来使得蛋白质库越来越大,从生物样品中获取的串联质谱也越来越多。而蛋白质鉴定过程本就是复杂和困难的,并且生物大数据时代的到来,使蛋白质鉴定面临更大的挑战。基于蛋白质库搜索法蛋白质鉴定过程是由理论水解、匹配、打分、计分和生成报告这五个模块组成。对蛋白序列逐条进行理论水解,理论水解得到肽段。肽段再与输入的实验质谱进行匹配,匹配得到与此肽段母离子质量,肽段母离子质量就是肽段中所有分子的质量,可用于衡量肽段与实验质谱的相似性。然后肽段与匹配的实验质谱进行打分,打分过程是把肽段转化为理论质谱,再将理论质谱与实验质谱进行比较打分。计分过程是将肽段与实验质谱的分数记录到实验质谱的对应数据结构中。当完成对整个蛋白质库的理论水解、匹配、打分和计分之后,再对实验质谱中记录的分数进行统计得出整体得分最高的蛋白质序列,因此蛋白质库的快速增长会使鉴定的复杂度快速增长,导致鉴定效率降低。最近这些年,随着半导体技术的发展和多核技术的普及,多核处理器丰富的计算资源给蛋白质鉴定算法加速提供了有效的途径,而当前基于多核处理器的蛋白质并行鉴定算法存在性能问题[1][2]。当前蛋白质并行鉴定算法是通过将质谱均分给各核,每个核需要从整个库中找到与实验质谱匹配的蛋白质序列,这需要对蛋白质库中的每一条蛋白质序列进行理论水解、匹配等操作,这就导致了每个核遍历整个蛋白质库。当蛋白质库中蛋白质序列条目非常多的时候,会导致每个核在理论水解、匹配操作上花费大量的时间,并且这些操作结果对各个核是重复的。因此在处理较大的蛋白质库时由于每个核重复执行理论水解、匹配等操作,这会导致并行性能很低。
技术实现思路
针对当前蛋白质鉴定多核并行性能低下存在的问题,本专利技术的目的在于提供一种新的蛋白质鉴定并行加速算法,该算法基于分割蛋白质数据库的思想,通过细粒度任务分配、内存性能和计分流程优化等手段,可以有效的提高蛋白质鉴定的并行性能。本专利技术首先采用细粒度切分蛋白质库,通过设置低竞争缓冲区实现细粒度batch分配机制,然后通过数据结构的优化和内存分配器的优化实现对动态内存的优化,利用主线程和工作线程完成对蛋白质库的理论水解、匹配、打分和保存分数;最后通过调整计分流程,完成并行计分。本专利技术的技术方案具体介绍如下。一种蛋白质鉴定并行加速算法,具体步骤如下:(1)读取蛋白质库,通过每次读取的蛋白质序列数量来控制batch粒度,将蛋白质数据库划分为蛋白质序列条目数较少的batch,实现细粒度切分蛋白质库,并通过设置低竞争缓冲区将细粒度batch分配给工作线程,实现细粒度batch分配机制;其中:所述低竞争缓冲区的具体数据结构是环形数组,数组的每个元素由batch编号、互斥锁、状态位组成,并且每个元素进行了缓存行填充;(2)当蛋白库读取完成并且低竞争缓冲区中已经没有可读batch时,主线程和工作线程完成对蛋白质库的理论水解、匹配、打分和保存分数,该过程中,通过数据结构的优化和内存分配器的优化对动态内存进行优化;(3)当各个线程完成对蛋白质库的理论水解、匹配、打分和保存分数后,主线程先完成对母离子质量大于3000的实验质谱的记分,然后主线程从保存的分数数据中读取细粒度batch,并将batch编号插入到缓冲区中,然后工作线程从缓冲区中获取batch编号,工作线程对batch中的分数计入到相应的实验质谱中,最后完成并行计分。细粒度batch分配机制如下:主线程从蛋白质数据库中获取细粒度batch,将batch编号插入到环形数组中,插入过程中从头遍历数组,根据每个元素的状态位来确定是否可以插入,当状态是可以插入时就插入到此位置,如果状态位为不可插入则遍历到下一个元素并判断其状态;工作线程通过获取batch编号来获取batch,通过遍历环形数组的每个元素,互斥地访问每个元素的状态,当元素状态是可读的时候则返回当前元素的编号即batch编号,互斥访问每个元素状态时是通过尝试加锁方式,当加锁失败后就尝试下一个元素。本专利技术中,数据结构的优化是指将保存分数的数据结构设置为一条蛋白质序列的分数数据;本专利技术中,对动态内存进行优化包括使用动态数组保存大块内存的指针一级使用并行内存分配器进行多线程的内存分配。和现有技术相比,本专利技术的有益效果在于:(1)本专利技术基于分库的思想,解决了当前蛋白质并行鉴定算法重复模拟水解蛋白质库的性能问题。本专利技术进一步通过线程负载均衡、提高内存存储性能和计分流程优化等方法设计了基于细粒度的均衡并行鉴定算法。该算法通过设计了低竞争缓冲区以及细粒度任务分配提高了各线程负载均衡以及任务分配的并行性;通过优化数据结构和提高线程的动态内存性能来提高并行算法的内存性能;通过调整计分流程,在保证计分顺序要求情况下,又提高了计分的并行性。因此本专利技术的蛋白质并行鉴定性能非常优秀。本专利技术相较于传统蛋白质鉴定软件X!Tandem串行性能有20.5倍的性能提升。(2)本专利技术采用细粒度batch分配机制中通过尝试加锁方式互斥方法能避免多个线程对元素的锁争抢导致的线程阻塞问题,可以有效的减少上下文切换开销。(3)本专利技术中主线程和工作线程完成对蛋白质库的理论水解、匹配、打分和保存分数时,通过使用动态数组保存大块内存的指针来减少动态数组扩展时拷贝大块内存的开销。通过使用并行内存分配器来提高多线程的内存分配效率。(4)本专利技术通过系统绑定设置,将工作线程绑定在运算核上,可提高CPU亲和性,使得工作线程在运行时不会被调度,可以减少线程间切换带来的开销,提高缓存命中率。附图说明图1为本专利技术的蛋白质鉴定并行框架图。图2为本专利技术的并行性能与X!Tandem的加速比对比的柱形图。具体实施方式下面结合附图说明本专利技术在蛋白质鉴定并行算法设计的具体实施方法。本专利技术主要利用了细粒度任务、内存性能优化和计分流程优化来提高蛋白质鉴定性能,充分利用多核计算资源。图1为本专利技术的蛋白质鉴定并行框架图。本专利技术首先实现细粒度切分蛋白质库,实现细粒度batch分配机制。细粒度的batch是指将蛋白质数据库划分为蛋白质序列条目数较少的batch,而分配机制则是将细粒度batch分配给工作线程。细粒度的控制是通过读取蛋白质库,每次读取的蛋白质序列数量来控制batch粒度。细粒度任务的分配机制是通过设计了低竞争缓冲区来实现的。低竞争缓冲区具体数据结构是环形数组,数组的每个元素由bat本文档来自技高网
...

【技术保护点】
1.一种蛋白质鉴定并行加速算法,其特征在于,具体步骤如下:(1)读取蛋白质库,通过每次读取的蛋白质序列数量来控制batch粒度,将蛋白质数据库划分为蛋白质序列条目数较少的batch,实现细粒度切分蛋白质库,并通过设置低竞争缓冲区将细粒度batch分配给工作线程,实现细粒度batch分配机制;其中:所述低竞争缓冲区的具体数据结构是环形数组,数组的每个元素由batch编号、互斥锁和状态位组成,并且每个元素进行了缓存行填充;(2)当蛋白库读取完成并且低竞争缓冲区中已经没有可读batch时,主线程和工作线程完成对蛋白质库的理论水解、匹配、打分和保存分数,该过程中,通过数据结构的优化和内存分配器的优化对动态内存进行优化;(3)当各个线程完成对蛋白质库的理论水解、匹配、打分和保存分数后,主线程先完成对母离子质量大于3000的实验质谱的记分,然后主线程从保存的分数数据中读取细粒度batch,并将batch编号插入到低竞争缓冲区中,然后工作线程从低竞争缓冲区中获取batch编号,工作线程对batch中的分数计入到相应的实验质谱中,最后完成并行计分。

【技术特征摘要】
1.一种蛋白质鉴定并行加速算法,其特征在于,具体步骤如下:(1)读取蛋白质库,通过每次读取的蛋白质序列数量来控制batch粒度,将蛋白质数据库划分为蛋白质序列条目数较少的batch,实现细粒度切分蛋白质库,并通过设置低竞争缓冲区将细粒度batch分配给工作线程,实现细粒度batch分配机制;其中:所述低竞争缓冲区的具体数据结构是环形数组,数组的每个元素由batch编号、互斥锁和状态位组成,并且每个元素进行了缓存行填充;(2)当蛋白库读取完成并且低竞争缓冲区中已经没有可读batch时,主线程和工作线程完成对蛋白质库的理论水解、匹配、打分和保存分数,该过程中,通过数据结构的优化和内存分配器的优化对动态内存进行优化;(3)当各个线程完成对蛋白质库的理论水解、匹配、打分和保存分数后,主线程先完成对母离子质量大于3000的实验质谱的记分,然后主线程从保存的分数数据中读取细粒度batch,并将batch编号插入到低竞争缓冲区中,然后工作线程从低竞争缓冲区中获取batch编号,工...

【专利技术属性】
技术研发人员:张为华鲁云萍蒋金虎孙廷杰
申请(专利权)人:复旦大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1