一种基于多线程计算的生物序列比对方法及系统
申请人信息
- 申请人:山东大学
- 申请人地址:250000 山东省济南市历城区山大南路27号
- 发明人: 山东大学
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于多线程计算的生物序列比对方法及系统 |
| 专利类型 | 发明授权 |
| 申请号 | CN202311676549.8 |
| 申请日 | 2023/12/8 |
| 公告号 | CN117373538B |
| 公开日 | 2024/3/19 |
| IPC主分类号 | G16B30/10 |
| 权利人 | 山东大学 |
| 发明人 | 殷泽坤; 陈冉; 闫立峰; 刘卫国 |
| 地址 | 山东省济南市历下区经十路17923号 |
摘要文本
本发明属于生物序列比对技术领域,提供了一种基于多线程计算的生物序列比对方法及系统,其技术方案为:基于原有OrderMinHash算法,通过优化编译参数、调用RabbitFx库快速解析FASTA文件、交换算法循环顺序优化访存、转换数据类型使用按位函数、优先队列等优化计算、使用AVX512指令集充分利用SIMD向量处理单元提升计算效率等优化单线程模型,并设计多线程计算模型,允许控制线程数,且通过负载均衡等方式保证加速比与线程数基本成正比,完成算法在通用多核计算平台上的优化。解决了传统方法序列对比效率低的问题。
专利主权项内容
1.一种基于多线程计算的生物序列比对方法,其特征在于,包括如下步骤:读取FASTA文件;引入RabbitFX库,利用RabbitFX库中以生产者-消费者为核心的多线程I/O模型框架,对FASTA文件进行解析,在读取、解析FASTA文件时获取序列的名称,同时添加构造该序列的sketch任务,通过多线程同时构造多条序列的sketch,将获取的序列的名称与序列的sketch共同构成该序列的OMH结构体;所述引入RabbitFX库,利用RabbitFX库中以生产者-消费者为核心的多线程I/O模型框架,对FASTA文件进行解析,包括:生产者从输入FASTA文件中读取数据,从数据池中获取空间,并将数据格式化为数据块;每个数据块被推送到数据队列中;使用者从数据队列接收数据块,并使用用户定义的函数处理数据块,处理完后释放数据块所占有的空间进行循环利用;构造序列的sketch时,具体包括:采用按位函数代替分支语句,转换序列的数据类型;采用优先队列选取kmer集合元素每个哈希函数的最小L值,在求kmer集合元素每个哈希函数的最小L值时,通过交换循环顺序的方式对循环进行优化,外层循环遍历kmer集合元素,内层循环遍历哈希函数集;读取序列的OMH结构体,将得到的序列的名称和序列的sketch进行相似度度量,得到序列的比对结果。