【技术实现步骤摘要】
SAM及BAM文件的无参考序列压缩及解压还原方法、系统和介质
本专利技术涉及生物信息领域,具体涉及一种SAM及BAM文件的无参考序列压缩及解压还原方法、系统和介质,用于实现SAM或BAM数据的压缩与还原。
技术介绍
在生物信息学中尤其是高通量测序数据分析中,大部分的操作都是在实现短片段序列与参考序列的比对(mapping),比如bowtie等,这就涉及到如何使用一个统一的格式来表示这种mapping结果的问题,SAM(SequenceAlignment/Map)格式就是来解决这个问题的。SAM是用来存储测序读段reads与参考序列比对结果信息的一种文件格式,以TAB为分割符,支持不同平台的短读段reads及长读段reads(最长为128Mbp)。SAM文件大小通常在100G以上,非常不便于存储,因此与之对应的BAM格式应运而生,BAM是SAM的二进制压缩格式,它在保留了与SAM完全相同内容信息的同时,在文件大小上通常会缩小4倍以上。bam在一定程度上改善了SAM的存储问题,但是文件大小依然较大,因此将BAM变 ...
【技术保护点】
1.一种SAM或BAM文件的无参考序列压缩方法,其特征在于实施步骤包括:/n1)初始化影子参考序列;/n2)按行遍历读取SAM或BAM文件获得当前行,如果全部读取完毕则将影子参考序列压缩至目标压缩文件,结束并退出;否则执行下一步;/n3)切割当前行的域数据,获取CIGAR域数据和SEQ域数据;/n4)解析当前行的CIGAR域数据并结合SEQ域数据还原出当前行对应的真实参考序列;/n5)将还原出来的真实参考序列更新到当前行在影子参考序列的对应位置,且影子参考序列的每一个位置仅更新一次;/n6)将当前行进行分组压缩:每一次压缩一组操作数和操作符,判断当前组操作数的操作符是否为匹 ...
【技术特征摘要】
1.一种SAM或BAM文件的无参考序列压缩方法,其特征在于实施步骤包括:
1)初始化影子参考序列;
2)按行遍历读取SAM或BAM文件获得当前行,如果全部读取完毕则将影子参考序列压缩至目标压缩文件,结束并退出;否则执行下一步;
3)切割当前行的域数据,获取CIGAR域数据和SEQ域数据;
4)解析当前行的CIGAR域数据并结合SEQ域数据还原出当前行对应的真实参考序列;
5)将还原出来的真实参考序列更新到当前行在影子参考序列的对应位置,且影子参考序列的每一个位置仅更新一次;
6)将当前行进行分组压缩:每一次压缩一组操作数和操作符,判断当前组操作数的操作符是否为匹配操作符,如果是匹配操作符则将SEQ域数据中当前组操作数的数值对应长度的子序列与当前行对应的影子参考序列计算差异信息,否则将SEQ域数据中当前组操作数的数值对应长度的子序列直接作为差异信息或与预设的固定序列计算差异信息,最终将当前组计算出来的差异信息压缩至目标压缩文件。
2.根据权利要求1所述的SAM或BAM文件的无参考序列压缩方法,其特征在于,步骤4)中还原出当前行对应的真实参考序列的详细步骤包括:
4.1)初始化当前行的真实参考序列为空;
4.2)从当前行遍历读取一组操作数及其操作符作为当前数据,所述遍历读取得到的一组操作数及其操作符的下述三类之一:匹配正则表达式"\d+(M|=|X)"的单操作符数据、或匹配正则表达式"\d+M\d+S"或"\d+S\d+M"的双操作符数据、或其他多操作符数据;如果全部读取完毕则判定当前行的真实参考序列还原完成,结束并退出;否则执行下一步;
4.3)判断当前数据的类型,如果为单操作符数据则跳转执行步骤4.4);判断当前数据的类型,如果为双操作符数据则跳转执行步骤4.5);否则,跳转执行步骤4.6);
4.4)根据当前数据的位置POS信息,采用对齐匹配的方式,针对当前行的SEQ域数据,从当前数据的位置POS信息开始取当前数据的操作数值所对应长度的序列拷贝到真实参考序列,跳转执行步骤4.2);
4.5)根据当前数据的位置POS信息,采用对齐匹配的方式,针对当前行的SEQ域数据,从当前数据的位置POS信息开始取M操作符的操作数值所对应长度的序列拷贝到真实参考序列,跳转执行步骤4.2);
4.6)依次针对当前数据的各个操作符进行遍历:如果当前操作符为M或X或=,则针对当前行的SEQ域数据,从当前操作符的位置POS信息开始取当前操作符所对应长度的序列拷贝到真实参考序列;如果当前操作符为D或N,则追加当前操作符数值对应长度的空内容序列值真实参考序列;如果当前操作符为S或I或P或H,则忽略处理;遍历完毕后最终得到多操作符数据的对应的真实参考序列,跳转执行步骤4.2)。
3.一种SAM或BAM文件的无参考序列解压还原方法,其特征在于,实施步骤包括:
S1)解压还原出影子参考序列;
S2)按行解压压缩文件,如果全部解压完毕则将还原出的所有行按照顺序输出得到原始的SAM或BAM文件,结束并退出;否则执行下一步;
S3)解压还原出当前行的差异信息;
S4)解压还原出当前行的CIGAR域数据;
S5)解压还原出当前行保存的RENAME域数据和POS域数据;
S6)根据RENAME域数据和POS域数据找到当前行对应的影子参考序列;
S6)针对CIGAR域数据进行分组解析,每一次解析一组操作数和操作符,如果全部解析完毕,则跳转执行步骤S2);判断当前组操作数的操作符是否为匹配操作符,如果是匹配操作符则将该操作数数值对应长度的差异信息与影子参考序列做比较还原,否则将该操作数数值对应长度的差异信息自身作为还原结果或者与预设的固定序列做比较还原,从而还原出当前组操作数和操作符对应的一端读序列。
4.一种SAM或BAM文件的无参考序列压缩系统,其特征在于包括:
影子参考序列初始化程序单元,用于初始化影子参考序列;
文件遍历读取程序单元,用于按行遍历读取SAM或BAM文件获得当前行,如果全部读取完毕则将影子参考序列压缩至目标压缩文件,结束并退出;否则执行域切割程序单元;
域切割程序单元,用于切割当前行的域数据,获取CIGAR域数据和SEQ域数据;
真实参考序列还原程序单元,用于解析当前行的CIGAR域数据并结合SEQ域数据还原出当前行对应的真实参考序列;
影子参考序列更新程序单元,用于将还原出来的真实参考序列更新到当前行在影子参考序列的对应位置,且影子参考序列的每一个位置仅更新一次;
分组压缩程序单元,用于将当前行进行分组压缩:每...
【专利技术属性】
技术研发人员:李根,徐霞丽,冯博伦,黄能超,赵丽霞,马丑贤,王振国,杨耀,
申请(专利权)人:人和未来生物科技长沙有限公司,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。