一种BAM文件并行读取方法、系统及介质技术方案

技术编号:36950641 阅读:26 留言:0更新日期:2023-03-22 19:11
本发明专利技术公开了一种BAM文件并行读取方法、系统及介质,本发明专利技术从待解析BAM文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;读取线程以分组压缩块为单位,并行从待解压队列中获取数据;读取线程对分组压缩块进行解压,并解析对应的BAM数据,直到将整个分组压缩块的数据解析完成生成解析数据块;合并解析数据块,完成BAM文件的读取,本发明专利技术通过多个线程同时处理分组后的数据块的解压和解析工作,提升了整个BAM文件读取的效率,同时将读取的压缩数据块按照预设规则分组,调整了解压队列中数据的大小,降低了线程调度时间占比,提升了并行效率。了并行效率。了并行效率。

【技术实现步骤摘要】
一种BAM文件并行读取方法、系统及介质


[0001]本专利技术涉及生物信息领域,具体涉及一种BAM文件并行读取方法、系统及介质,用于实现BAM文件的读取。

技术介绍

[0002]在生物信息学中尤其是测序数据分析中,SAM(Sequence Alignment/Map)格式是常用的,用来记录短片段序列与参考序列的比对(mapping)结果的数据格式,SAM格式的文件大小通常在100G以上,非常不便于存储,因此与之对应的BAM(Binary SAM)格式应运而生,BAM格式是SAM格式的二进制压缩格式,它在保留了与SAM格式完全相同内容信息的同时,在文件大小上通常会缩小4倍以上。BAM格式在一定程度上改善了SAM格式的存储问题,但是BAM文件大小依然较大,BAM文件的读取效率依然是基因测序工作中非常重要的一个环节。
[0003]目前业界普遍采用htslib或者samtools库进行BAM文件的读取,实现流程如图1所示,包括以下步骤:
[0004]步骤A:从BAM文件中读取压缩数据块,并传递到解压队列;
[0005]步骤B:由多个解压线程并行从解压队列中获取压缩数据快进行解压,并将解压数据块传递到解压数据队列;
[0006]步骤C:顺序获取解压数据队列中的解压数据块,并进行解析。
[0007]上述现有技术中对于BAM文件读取过程存在以下问题:
[0008]1.目前只有数据的解压为并行处理,数据的读取和数据的解析都是顺序执行,导致效率很低;
[0009]2.标准的BAM文件中,数据块的大小为65KB左右,每次读取的压缩数据块太小,使解压线程调度时间过多,虽是并行处理,但并行效率降低;
[0010]3.从解压队列中读取数据块并解析的操作是顺序执行的,由于解析完数据后还需要进行大量其他任务,如压缩、计算加速等,后续任务会卡壳在解析数据步骤。
[0011]综上所述,在数据量巨大的生物信息领域,现有的BAM文件读取方法的效率有待提高。

技术实现思路

[0012]本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种BAM文件并行读取方法、系统及介质,本专利技术更好地将BAM文件读取过程并行,提高BAM文件读取效率。
[0013]为了解决上述技术问题,本专利技术采用的技术方案为:
[0014]一种BAM文件并行读取方法,实施步骤包括:
[0015]1)从待解析BAM文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;
[0016]2)多个读取线程以分组压缩块为单位,并行从待解压队列中获取数据;
[0017]3)读取线程对获取的分组压缩块进行解压,并解析对应的BAM数据,直到将整个分组压缩块的数据解析完成生成对应的解析数据块;
[0018]4)合并解析数据块,完成BAM文件的读取。
[0019]可选地,步骤1)所述预设规则为设定所述压缩数据块的个数。
[0020]可选地,步骤1)所述预设规则为预设分组压缩块的大小,将所述压缩数据块填入分组压缩块进行分组。
[0021]可选地,所述预设分组压缩块的大小根据处理设备的性能动态调整。
[0022]本专利技术还提供一种BAM文件并行读取系统,包括计算机设备,该计算机设备被编程或配置以执行上述BAM文件并行读取方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行上述BAM文件并行读取方法的计算机程序。
[0023]本专利技术还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行上述BAM文件并行读取方法的计算机程序。
[0024]和现有技术相比,本专利技术具有下述优点:本专利技术通过将数据解压和数据解析处理放在同一个读取线程,由多个线程同时处理分组后的数据块的解压和解析工作,提升了整个BAM文件读取的效率。同时本专利技术通过将读取的压缩数据块按照预设规则分组,合理地调整了解压队列中数据的大小,降低了线程调度时间占比,提升了读取线程的并行效率。
附图说明
[0025]图1为现有技术中BAM文件读取的流程示意图。
[0026]图2为专利技术实施例中的BAM文件并行读取的流程示意图。
具体实施方式
[0027]如图2所示,本实施例BAM文件并行读取方法的实施步骤包括:
[0028]1)从待解析BAM文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;
[0029]2)多个读取线程以分组压缩块为单位,并行从待解压队列中获取数据;
[0030]3)读取线程对获取的分组压缩块进行解压,并解析对应的BAM数据,直到将整个分组压缩块的数据解析完成生成对应的解析数据块;
[0031]4)合并解析数据块,完成BAM文件的读取。
[0032]本实施例通过将数据解压和数据解析处理放在同一个读取线程,由多个线程同时处理分组后的数据块的解压和解析工作,提升了整个BAM文件读取的效率。同时本实施例通过将读取的压缩数据块按照预设规则分组,合理地调整了解压队列中数据的大小,降低了线程调度时间占比,提升了读取线程的并行效率。
[0033]本实施例中步骤1)所述预设规则可以为根据所述压缩数据块的个数进行分组,如将压缩数据块按照每100个分为一组。
[0034]本实施例中步骤1)所述预设规则也可以为预设分组压缩块的大小,将所述压缩数据块填入分组压缩块进行分组,如预设分组压缩块大小为200MB。
[0035]本实施例中步骤1)所述预设分组压缩块的大小根据处理设备的性能动态调整,如可以根据CPU性能调整分组压缩块的大小。
[0036]此外,本实施例还提供一种BAM文件并行读取系统,包括计算机设备,该计算机设备被编程或配置以执行上述BAM文件并行读取方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行上述BAM文件并行读取方法的计算机程序。
[0037]此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行上述BAM文件并行读取方法的计算机程序。
[0038]以上所述仅是本专利技术的优选实施方式,本专利技术的保护范围并不仅局限于上述实施例,凡属于本专利技术思路下的技术方案均属于本专利技术的保护范围。应当指出,对于本
的普通技术人员来说,在不脱离本专利技术原理前提下的若干改进和润饰,这些改进和润饰也应视为本专利技术的保护范围。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种BAM文件并行读取方法,其特征在于,实施步骤包括:1)从待解析BAM文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;2)多个读取线程以分组压缩块为单位,并行从待解压队列中获取数据;3)读取线程对获取的分组压缩块进行解压,并解析对应的BAM数据,直到将整个分组压缩块的数据解析完成生成对应的解析数据块;4)合并解析数据块,完成BAM文件的读取。2.根据权利要求1所述的一种BAM文件并行读取方法,其特征在于,步骤1)所述预设规则为设定所述压缩数据块的个数。3.根据权利要求1所述的一种BAM文件并行读取方法,其特征在于,步骤1)所述预设规则为预...

【专利技术属性】
技术研发人员:黄立磊康佳琪冯博伦杨仁武万斌谢金武王振国
申请(专利权)人:人和未来生物科技长沙有限公司
类型:发明
国别省市:

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

1