← 返回列表

一种基于多线程计算的生物序列比对方法及系统

申请号: CN202311676549.8
申请人: 山东大学
更新日期: 2026-03-09

专利详细信息

项目 内容
专利名称 一种基于多线程计算的生物序列比对方法及系统
专利类型 发明授权
申请号 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进行相似度度量,得到序列的比对结果。