一种BAM文件并行读取方法、系统及介质与流程

文档序号:33526897发布日期:2023-03-22 07:22阅读:57来源:国知局
一种BAM文件并行读取方法、系统及介质与流程
一种bam文件并行读取方法、系统及介质
技术领域
1.本发明涉及生物信息领域,具体涉及一种bam文件并行读取方法、系统及介质,用于实现bam文件的读取。


背景技术:

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


技术实现要素:

12.本发明要解决的技术问题:针对现有技术的上述问题,提供一种bam文件并行读取方法、系统及介质,本发明更好地将bam文件读取过程并行,提高bam文件读取效率。
13.为了解决上述技术问题,本发明采用的技术方案为:
14.一种bam文件并行读取方法,实施步骤包括:
15.1)从待解析bam文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;
16.2)多个读取线程以分组压缩块为单位,并行从待解压队列中获取数据;
17.3)读取线程对获取的分组压缩块进行解压,并解析对应的bam数据,直到将整个分组压缩块的数据解析完成生成对应的解析数据块;
18.4)合并解析数据块,完成bam文件的读取。
19.可选地,步骤1)所述预设规则为设定所述压缩数据块的个数。
20.可选地,步骤1)所述预设规则为预设分组压缩块的大小,将所述压缩数据块填入分组压缩块进行分组。
21.可选地,所述预设分组压缩块的大小根据处理设备的性能动态调整。
22.本发明还提供一种bam文件并行读取系统,包括计算机设备,该计算机设备被编程或配置以执行上述bam文件并行读取方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行上述bam文件并行读取方法的计算机程序。
23.本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行上述bam文件并行读取方法的计算机程序。
24.和现有技术相比,本发明具有下述优点:本发明通过将数据解压和数据解析处理放在同一个读取线程,由多个线程同时处理分组后的数据块的解压和解析工作,提升了整个bam文件读取的效率。同时本发明通过将读取的压缩数据块按照预设规则分组,合理地调整了解压队列中数据的大小,降低了线程调度时间占比,提升了读取线程的并行效率。
附图说明
25.图1为现有技术中bam文件读取的流程示意图。
26.图2为发明实施例中的bam文件并行读取的流程示意图。
具体实施方式
27.如图2所示,本实施例bam文件并行读取方法的实施步骤包括:
28.1)从待解析bam文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;
29.2)多个读取线程以分组压缩块为单位,并行从待解压队列中获取数据;
30.3)读取线程对获取的分组压缩块进行解压,并解析对应的bam数据,直到将整个分组压缩块的数据解析完成生成对应的解析数据块;
31.4)合并解析数据块,完成bam文件的读取。
32.本实施例通过将数据解压和数据解析处理放在同一个读取线程,由多个线程同时处理分组后的数据块的解压和解析工作,提升了整个bam文件读取的效率。同时本实施例通过将读取的压缩数据块按照预设规则分组,合理地调整了解压队列中数据的大小,降低了线程调度时间占比,提升了读取线程的并行效率。
33.本实施例中步骤1)所述预设规则可以为根据所述压缩数据块的个数进行分组,如将压缩数据块按照每100个分为一组。
34.本实施例中步骤1)所述预设规则也可以为预设分组压缩块的大小,将所述压缩数据块填入分组压缩块进行分组,如预设分组压缩块大小为200mb。
35.本实施例中步骤1)所述预设分组压缩块的大小根据处理设备的性能动态调整,如可以根据cpu性能调整分组压缩块的大小。
36.此外,本实施例还提供一种bam文件并行读取系统,包括计算机设备,该计算机设备被编程或配置以执行上述bam文件并行读取方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行上述bam文件并行读取方法的计算机程序。
37.此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行上述bam文件并行读取方法的计算机程序。
38.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


技术特征:
1.一种bam文件并行读取方法,其特征在于,实施步骤包括:1)从待解析bam文件中顺序读取压缩数据块,将上述压缩数据块按照预设规则进行分组,生成由分组压缩块组成的待解压队列;2)多个读取线程以分组压缩块为单位,并行从待解压队列中获取数据;3)读取线程对获取的分组压缩块进行解压,并解析对应的bam数据,直到将整个分组压缩块的数据解析完成生成对应的解析数据块;4)合并解析数据块,完成bam文件的读取。2.根据权利要求1所述的一种bam文件并行读取方法,其特征在于,步骤1)所述预设规则为设定所述压缩数据块的个数。3.根据权利要求1所述的一种bam文件并行读取方法,其特征在于,步骤1)所述预设规则为预设分组压缩块的大小,将所述压缩数据块填入分组压缩块进行分组。4.根据权利要求3所述的一种bam文件并行读取方法,其特征在于,所述预设分组压缩块的大小根据处理设备的性能动态调整。5.一种bam文件并行读取系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~4中任意一项所述bam文件并行读取方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行权利要求1~4中任意一项所述bam文件并行读取方法的计算机程序。6.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~4中任意一项所述bam文件并行读取方法的计算机程序。

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


技术研发人员:黄立磊 康佳琪 冯博伦 杨仁武 万斌 谢金武 王振国
受保护的技术使用者:人和未来生物科技(长沙)有限公司
技术研发日:2022.11.16
技术公布日:2023/3/21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1