SAM及BAM文件CIGAR域的压缩及解压还原方法、系统和介质技术方案

技术编号:23152716 阅读:28 留言:0更新日期:2020-01-18 14:50
本发明专利技术公开了一种SAM及BAM文件CIGAR域的压缩及解压还原方法、系统和介质,本发明专利技术从压缩前的预处理出发,将一个操作符的CIGAR域数据编码为第一指定内容,跳转执行步骤A6);将两个操作符的CIGAR域数据编码为只包含其中一个操作符及其数字部分的第二指定内容,将三个及以上操作符的CIGAR域数据编码省略第一个操作符M及其数字部分“\d+M”、最后一个操作符的操作符M得到第三指定内容,结合CIGAR域的特性进行预处理,从而可将CIGAR域的内容按照一定规则预处理以实现CIGAR域的高倍压缩,具有预处理高效快速、压缩比高、压缩效果好的优点,本发明专利技术可适用于SAM文件、BAM文件两种格式,具有应用范围广的优点。

Methods, systems and media of compressing, decompressing and restoring Sam and bam files in cigar domain

【技术实现步骤摘要】
SAM及BAM文件CIGAR域的压缩及解压还原方法、系统和介质
本专利技术涉及生物信息领域的SAM及BAM数据的压缩与还原技术,具体涉及一种SAM及BAM文件CIGAR域的压缩及解压还原方法、系统和介质。
技术介绍
在生物信息学中尤其是高通量测序数据分析中,大部分的操作都是在实现短片段序列与参考序列的比对(mapping),比如bwa、bowtie等,所以需要使用一个统一的格式来表示这种mapping结果的问题。SAM(SequenceAlignmentMap)文件格式就是来解决这个问题的,它是用来存储测序reads与参考序列比对结果信息的一种文件格式,以TAB为分割符,支持不同平台的短读段及长读段(最长为128Mbp)。不过由于SAM文件大小通常较大,所以实际使用时会转换为BAM文件(BinarysequenceAlignmentMap),BAM文件是SAM文件的二进制版,在SAM的基础上运用二进制编码,又极大的压缩了SAM文件的体积。BAM相对SAM节约很大的存储空间,且保留了与SAM完全相同内容信息。目前在BAM文件格式的基础上,继续衍生了CRAM文件格式,相对BAM而言文件大小进一步缩小一半以上,但文件依然较大,让SAM变得更小仍然是生物信息领域需要持续探讨和优化的问题。SAM及BAM文件格式分为headersection(头部分,注释信息,以@开头,可有可无)和alignmentsection(比对结果)两个部分,alignmentsection必须由11个字段组成,以tab分开,分别为QNAME、FLAG、RNAME、POS、MAPQ、CIGAR、MRNM、MPOS、ISIZE、SEQ、QUAL。如果其内容没有获得,可以用*或者0代替。在对SAM及BAM文件进行压缩时,为了获取尽量高的压缩比,通常会根据每个字段的意义和特性进行压缩。如SEQ字段表示read的内容,在压缩SEQ字段内容时,因为RNAME和POS分别记录了该read匹配到基因参考序列具体哪条染色体,以及对应的位置,这样可以只需保存该read与匹配到的基因参考序列的差异信息即可,这样可以将SEQ直接去掉,从而可以将SAM文件压缩比较小。SAM及BAM文件格式的第六个字段CIGAR为一个数字与字母交替构成的字符串,标记了这段reads不同位置的match情况。然而对于第六个字段CIGAR域的压缩,目前仍然往往没有被重视,或者采用普通的压缩方法,导致CIGAR域的压缩仍然存在较大的优化空间。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种SAM及BAM文件CIGAR域的压缩及解压还原方法、系统和介质,本专利技术从压缩前的预处理出发,结合CIGAR域的特性进行预处理,从而可将CIGAR域的内容按照一定规则预处理以实现CIGAR域的高倍压缩,具有预处理高效快速、压缩比高、压缩效果好的优点,本专利技术可适用于SAM文件、BAM文件两种格式,具有应用范围广的优点。为了解决上述技术问题,本专利技术采用的技术方案为:一种SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,针对只有一个操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码为第一指定内容,然后送入压缩器进行压缩;针对只有一个操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据为第一指定内容,则将解压出的QUAL域内容的长度作为指定的默认操作符或者第一指定内容携带的操作符的数字部分,并将其和指定的默认操作符或者第一指定内容携带的操作符组合还原出原始CIGAR域的数据。可选地,针对只有两个操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码为只包含其中一个操作符及其数字部分的第二指定内容,然后送入压缩器进行压缩;针对只有一个操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据为包含一个操作符及其数字部分的第二指定内容,则将解压出的QUAL域内容的长度减去所述一个操作符的数字部分作为另一个操作符的数字部分,然后将一个操作符及其数字部分、另一个操作符及其数字部分按照指定的顺序组合还原出原始CIGAR域的数据。可选地,所述只有两个操作符的CIGAR域数据包括正则表达式满足“\d+M\d+S”的CIGAR域数据,且其压缩步骤为将“\d+M\d+S”省略“\d+M”部分编码为“\d+S”,然后送入压缩器进行压缩;且其解压还原步骤为在解压还原时,如果解压出CIGAR域的数据只有一个操作符S及其数字部分且满足正则表达式“\d+S”,则将解压出的QUAL域内容的长度减去解压出来的操作符S的数字部分作为原始CIGAR域中操作符M的数字部分,然后将操作符M及其数字部分、操作符S及其数字部分组合还原出正则表达式满足“\d+M\d+S”的原始CIGAR域的数据。可选地,所述只有两个操作符的CIGAR域数据包括正则表达式满足“\d+S\d+M”的CIGAR域数据,且其压缩步骤为将“\d+S\d+M”省略“\d+M”部分并编码为“S\d+”,然后送入压缩器进行压缩;且其解压还原步骤为在解压还原时,如果解压出CIGAR域的数据只有一个操作符S及其数字部分且满足正则表达式“S\d+”,则将解压出的QUAL域内容的长度减去解压出来的操作符S的数字部分作为原始CIGAR域中操作符M的数字部分,然后将操作符M及其数字部分、操作符S及其数字部分组合还原出正则表达式满足“\d+S\d+M”的原始CIGAR域的数据。可选地,针对正则表达式中第一个及最后一个操作符均为“\d+M”且包含三个及以上操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码省略第一个操作符M及其数字部分“\d+M”、最后一个操作符的操作符M得到第三指定内容,然后送入压缩器进行压缩;针对正则表达式中第一个及最后一个操作符均为“\d+M”且包含三个及以上操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据匹配第三指定内容的正则表达式,则将解压出的QUAL域内容的长度减去解压出CIGAR域的数据中各个操作符的数字部分的总和得到第一个操作符M的数字部分,然后将第一个操作符M及其数字部分、解压出CIGAR域的数据、操作符M三者组合还原出原始CIGAR域的数据。此外,本专利技术还提供一种SAM及BAM文件CIGAR域的压缩方法,实施步骤包括:A1)判断目标CIGAR域数据的类型,如果目标CIGAR域数据为只有一个操作符的CIGAR域数据,则跳转执行步骤A2);如果目标CIGAR域数据为只有两个操作符的CIGAR域数据,则跳转执行步骤A3);如果目标CIGAR域数据为正则表达式中第一个及最后一个操作符均为“\d+M”且包含三个及以上操作符的CIGAR域数据,则跳转执行步骤A4);否则跳转执行步骤A5);A2)将CIGAR域数据编码为第一指定内容,跳转执行步骤A6);A3)将CIGAR域数据编码为只包含其中一个操作符及其数字部分的第二指定内容,跳转执行步骤A6);本文档来自技高网
...

【技术保护点】
1.一种SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,针对只有一个操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码为第一指定内容,然后送入压缩器进行压缩;针对只有一个操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据为第一指定内容,则将解压出的QUAL域内容的长度作为指定的默认操作符或者第一指定内容携带的操作符的数字部分,并将其和指定的默认操作符或者第一指定内容携带的操作符组合还原出原始CIGAR域的数据。/n

【技术特征摘要】
1.一种SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,针对只有一个操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码为第一指定内容,然后送入压缩器进行压缩;针对只有一个操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据为第一指定内容,则将解压出的QUAL域内容的长度作为指定的默认操作符或者第一指定内容携带的操作符的数字部分,并将其和指定的默认操作符或者第一指定内容携带的操作符组合还原出原始CIGAR域的数据。


2.根据权利要求1所述的SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,针对只有两个操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码为只包含其中一个操作符及其数字部分的第二指定内容,然后送入压缩器进行压缩;针对只有一个操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据为包含一个操作符及其数字部分的第二指定内容,则将解压出的QUAL域内容的长度减去所述一个操作符的数字部分作为另一个操作符的数字部分,然后将一个操作符及其数字部分、另一个操作符及其数字部分按照指定的顺序组合还原出原始CIGAR域的数据。


3.根据权利要求2所述的SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,所述只有两个操作符的CIGAR域数据包括正则表达式满足“\d+M\d+S”的CIGAR域数据,且其压缩步骤为将“\d+M\d+S”省略“\d+M”部分编码为“\d+S”,然后送入压缩器进行压缩;且其解压还原步骤为在解压还原时,如果解压出CIGAR域的数据只有一个操作符S及其数字部分且满足正则表达式“\d+S”,则将解压出的QUAL域内容的长度减去解压出来的操作符S的数字部分作为原始CIGAR域中操作符M的数字部分,然后将操作符M及其数字部分、操作符S及其数字部分组合还原出正则表达式满足“\d+M\d+S”的原始CIGAR域的数据。


4.根据权利要求2所述的SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,所述只有两个操作符的CIGAR域数据包括正则表达式满足“\d+S\d+M”的CIGAR域数据,且其压缩步骤为将“\d+S\d+M”省略“\d+M”部分并编码为“S\d+”,然后送入压缩器进行压缩;且其解压还原步骤为在解压还原时,如果解压出CIGAR域的数据只有一个操作符S及其数字部分且满足正则表达式“S\d+”,则将解压出的QUAL域内容的长度减去解压出来的操作符S的数字部分作为原始CIGAR域中操作符M的数字部分,然后将操作符M及其数字部分、操作符S及其数字部分组合还原出正则表达式满足“\d+S\d+M”的原始CIGAR域的数据。


5.根据权利要求1或2所述的SAM及BAM文件CIGAR域的压缩及解压还原方法,其特征在于,针对正则表达式中第一个及最后一个操作符均为“\d+M”且包含三个及以上操作符的CIGAR域数据的压缩步骤包括:将CIGAR域数据编码省略第一个操作符M及其数字部分“\d+M”、最后一个操作符的操作符M得到第三指定内容,然后送入压缩器进行压缩;针对正则表达式中第一个及最后一个操作符均为“\d+M”且包含三个及以上操作符的CIGAR域数据的解压还原步骤包括:在解压还原时,如果解压出CIGAR域的数据匹配第三指定内容的正则表达式,则将解压出的QUAL域内容的长度减去解压出CIGAR域的数据中各个操作符的数字部分的总和得到第一个操作符M的数字部分,然后将第一个操作符M及其数字部分、解压出CIGAR域的数据、操作符M三者组合还原出原始CIGAR域的数据。


6.一种SAM及BAM文件CIGAR域的压缩方法,其特征在于,实施步骤包括:
A1)判断目标CIGAR域数...

【专利技术属性】
技术研发人员:徐霞丽李根冯博伦黄能超赵丽霞马丑贤王振国杨耀
申请(专利权)人:人和未来生物科技长沙有限公司
类型:发明
国别省市:湖南;43

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

1