一种基于GPU加速的宏基因组物种定丰方法技术

技术编号:36804398 阅读:62 留言:0更新日期:2023-03-09 00:05
本发明专利技术公开了一种基于GPU加速的宏基因组物种定丰方法,首先分析用户输入的需求,根据用户的输入参数,确定计算的方式;随后进行初始化,检查文件的完整性和版本,以此来确保本发明专利技术的稳定运行;确保完稳定性后,进行数据准备,为后续的GPU计算做准备,将所有的数据都存储在numpy格式的数组中;当前期的数据准备完成后,会通过python的numba包调用GPU,先将数据传输给GPU,然后进行两次GPU调用计算,前者作为中间结果,后者输出最终的每一个clade的相对丰度;最后本发明专利技术会根据用户输出的参数选择输出的文件格式,并保存在用户输入的保存文件中。本发明专利技术极大地提高了宏基因组分析的整体效率,准确性也在同类型的宏基因组分析软件中表现良好,具有很强的现实意义。具有很强的现实意义。具有很强的现实意义。

【技术实现步骤摘要】
一种基于GPU加速的宏基因组物种定丰方法


[0001]本专利技术属于计算机
,具体涉及一种宏基因组物种定丰方法。

技术介绍

[0002]图形处理器(Graphics Processing Unit)又称显示核心、显卡、视觉处理器、显示芯片或绘图芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备上执行绘图运算工作的微处理器。GPU通常具有数百或数千个内核,经过优化,可并行运行大量计算。虽然GPU在游戏中以3D渲染而闻名,但它们对运行分析、深度学习和机器学习算法尤其有用,GPU允许某些计算比传统CPU上运行相同的计算速度快10倍至100倍。
[0003]GPU的三个核心思想:
[0004]1.电路精简:GPU上处理的运算整体似一个流式过程,没有很多的分支条件和复杂依赖关系,因此可以直接去掉相关电路,只保留“取指令”、“指令译码”、“ALU”及执行计算所需的寄存器和缓存即可。
[0005]2.多核并行和SIMT:由于GPU的运算是天然并行的,因此不需要像CPU那样去通过多线程来实现并行计算,只需在同一个GPU中集成很多组并行的GPU电路即可。
[0006]3.GPU中的超线程:GPU发展为一个通用计算架构后,它需要支持分支运算,但是分支预测相关的电路却被精简了,因此也会遇到类似“流水线停顿”的问题,GPU通过类似“超线程”的技术来解决这个问题,就是为不同的任务提供更多的执行上下文,因此一个core里面执行上下文数量多于ALU。
[0007]通过以上三方面优化的GPU更擅长暴力运算,作为一个通用计算框架,通过编程可以支持不同的算法。对于那些没有那么多复杂逻辑和条件分支的任务,非常适合GPU去运算。
[0008]宏基因组(Metagenome),又称群落基因组,是指特定环境中全部微生物遗传物质的总和。宏基因组学(metagenmomics)是指,直接应用基因组学技术对环境中的微生物群落进行研究,且不需要对单一菌株进行分离培养的学科。目前宏基因组学随着时代的发展,数据量越来越大,动辄数十上百G,导致宏基因组的物种定丰也越来越复杂,计算时间越来越长,严重影响了生信领域的效率。而且现有的宏基因组测序数据分析方法难以在保证鉴定结果准确性的基础上,大幅度加快分析速度,缩短分析时间。所以生信领域急需一种提高计算效率并且不影响分析结果准确性的方法,由于GPU可以将大量的运算分解成多个小运算,凭借大量线程的并行运算提高计算效率,所以本专利技术采用了GPU并行化方式来加速宏基因组的物种相对丰度分析。

技术实现思路

[0009]为了克服现有技术的不足,本专利技术提供了一种基于GPU加速的宏基因组物种定丰方法,首先分析用户输入的需求,根据用户的输入参数,确定计算的方式;随后进行初始化,检查文件的完整性和版本,以此来确保本专利技术的稳定运行;确保完稳定性后,进行数据准
备,为后续的GPU计算做准备,将所有的数据都存储在numpy格式的数组中;当前期的数据准备完成后,会通过python的numba包调用GPU,先将数据传输给GPU,然后进行两次GPU调用计算,前者作为中间结果,后者输出最终的每一个clade的相对丰度;最后本专利技术会根据用户输出的参数选择输出的文件格式,并保存在用户输入的保存文件中。本专利技术极大地提高了宏基因组分析的整体效率,准确性也在同类型的宏基因组分析软件中表现良好,具有很强的现实意义。
[0010]本专利技术解决其技术问题所采用的技术方案包括如下步骤:
[0011]步骤1:初始化;
[0012]读取用户输入;检查bowtie2的数据库和metaphlan的数据库是否安装,如果没有安装,或者数据库版本不是最新的,则自动安装;并且检查bowtie2是否是可执行的,如果没有安装bowtie2,则提醒用户安装;
[0013]读取用户输入的文件类型,如果input_type是fasta或fastq类型,则调用bowtie2进行处理,将其转换为bowtie2out类型;在调用bowtie2之前,检查bowtie2的文件完整性、数据完整性;
[0014]步骤2:数据准备;
[0015]步骤2

1:读取pkl数据;
[0016]读取metaphlan的数据库中的pkl文件,pkl文件中包含了宏基因组中marker和clade基因的对应关系,并在读取之后进行存储;
[0017]步骤2:初始化npy文件;
[0018]在首次运行宏基因组物种定丰过程时,初始化生成npy文件,具体为:
[0019]将宏基因组物种定丰过程中的数据全部转为numpy格式,再将numpy格式的数据列表保存为npy文件;
[0020]步骤3:前期数据准备;
[0021]将所有在GPU上计算的数据全部存储在numpy数组中,包括:创建marker与reads之间的对应关系,每一个marker可以对应多个read,但每个read只会对应唯一的一个marker;创建每一个clade对应的父子关系,clade分为界门纲目科属种七类,以此来建立父子关系,使用numpy数组来保存父节点,以及父节点对应的所有子节点;最后准备输出文件需要的内容;
[0022]步骤3:GPU加速计算;
[0023]将步骤2的numpy数组传输到GPU上,随后通过numba包调用GPU进行计算;GPU计算分为两个部分,第一部分先分配GPU,然后计算每个clade所对应的marker的removed,然后根据removed计算rat_nreads,并按照nreads的大小排序,最后计算出rat和loc_ab,作为第二部分的数据输入;第二部分会重新分配GPU,并根据前一部分的输出数据计算每个clade的丰度;最后再将数据传回CPU,在CPU上进行整合;
[0024]步骤4:输出;
[0025]根据用户的输入参数决定最后的输出文件格式;在输出前,对宏基因组进行分析计算,最后输出的文件将存储在用户输入的路径中。
[0026]优选地,所述最后的输出文件格式为CAMI或BOIM格式。
[0027]优选地,所述步骤4中对宏基因组进行分析计算的方法有两种:第一种为rel_ab,
从相对丰度的角度分析宏基因组;第二种为rel_ab_w_read_stats,根据相对丰度分析一个宏基因组,并估计来自每个分支的读取数。
[0028]本专利技术的有益效果如下:
[0029]本专利技术能通过调用GPU进行多线程计算来极大的提高宏基因组种群分析和定丰的效率,比传统的宏基因计算丰度软件效率提高了2

3倍,其中计算丰度方面效率提高了6

7倍,达到了相当大的突破,极大地提高了宏基因组分析的整体效率。除此之外,经过测试,本专利技术的准确性也在同类型的宏基因组分析软件中表现良好,具有很强的现实意义。
附图说明
[0030]图1为本专利技术方法总体流程图。
具体实施方式
[0031]下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GPU加速的宏基因组物种定丰方法,其特征在于,包括如下步骤:步骤1:初始化;读取用户输入;检查bowtie2的数据库和metaphlan的数据库是否安装,如果没有安装,或者数据库版本不是最新的,则自动安装;并且检查bowtie2是否是可执行的,如果没有安装bowtie2,则提醒用户安装;读取用户输入的文件类型,如果input_type是fasta或fastq类型,则调用bowtie2进行处理,将其转换为bowtie2out类型;在调用bowtie2之前,检查bowtie2的文件完整性、数据完整性;步骤2:数据准备;步骤2

1:读取pkl数据;读取metaphlan的数据库中的pkl文件,pkl文件中包含了宏基因组中marker和clade基因的对应关系,并在读取之后进行存储;步骤2:初始化npy文件;在首次运行宏基因组物种定丰过程时,初始化生成npy文件,具体为:将宏基因组物种定丰过程中的数据全部转为numpy格式,再将numpy格式的数据列表保存为npy文件;步骤3:前期数据准备;将所有在GPU上计算的数据全部存储在numpy数组中,包括:创建marker与reads之间的对应关系,每一个marker可以对应多个read,但每个read只会对应唯一的一个marker;创建每一个clade对应的父子关系...

【专利技术属性】
技术研发人员:徐韬王璇苏萌张译伊浩圆
申请(专利权)人:西北工业大学
类型:发明
国别省市:

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

1