一种dna测序质量分数无损压缩方法_2

文档序号:9633557阅读:来源:国知局
量分数分布,存储ABC后面紧跟着的质量分数的种类和数量,并根据这些数值来构建Huffman树。
[0033]就构建Huffman树而言,以前缀A为例,如果A后面紧跟着的质量分数及其对应的出现次数为B⑷,C⑴,D⑴,E⑴,F (1),那么根据Huffman构造算法,对应的最优Huffman编码方式为B(0),C(100),D(101),E(110),F(111),其中B的编码最短;如果A后面紧跟着的质量分数及其对应的出现次数为B (2),C (2),D (2),E (2),那么其对应的编码方式为B (00),C (01),D (10),E (11),这四个质量值的编码长度相等。
[0034]采用Huffman编码的原因之一是对于一个固定的字符集合,Huffman编码的效率是最优的。除了此最优方式,也可以用定长的算术编码,例如固定用8个bit来表示,只是这样会占用更多的存储空间,压缩比不如Huffman编码方式。另外的原因在于:对此类经Huffman编码压缩的数据,解压缩的过程是先加载压缩包中的Huffman树存储,然后再根据前缀选择对应的Huffman树,而Huffman编码是前缀码,所以可以很容易地将比特流变成字符。
[0035]更优的,每种前缀都对应构建一棵Huffman树,所以跟前缀本身有关系。本实施例可以对每种前缀,自动适配Huffman树的长度,选择压缩比最优的。
[0036]在另一个实施例中,所述步骤S200进一步包括:
[0037]步骤S2001:对于不包含连续相同质量分数的质量分数串进行转换,转换后的质量分数串依然为原始质量分数串,且转换后的质量分数串无长度值,并将该转换后的质量分数串存储到压缩文件中。
[0038]就该实施例而言,对于单个字符的处理与经典的run-length方法也不同,这是因为当质量分数不连续出现的时候,经典的run-length会插入若干个1,这会显著增加转换后文件(即压缩文件)的长度,而本实施例则避免了此类问题。
[0039]以如下描述的某质量分数(quality score)为例:
[0040]iSEQ_ID
[0041]GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
[0042]+
[0043]!,,*((( (***+))%%%++)(%%%%).1***-+*,,)) **55CCF?>>>>CCCCCCC65
[0044]其中,上述示例的最下面一行就是一个真实的被本发明处理后的质量分数行,每个字符就是对应的DNA碱基的质量分数。
[0045]再例如压缩质量分数串ABCDE的过程如下表所示,假设前缀长度为2,其中ABCDE为原始串ASCII字符,压缩过程如下表所示:
[0046]0100 0001压缩串二进制对应A,增加A的二进制编码
[0047]0100 0001 0100 0010压缩串二进制对应AB,增加B的二进制编码
[0048]0100 0001 0100 0010 01 压缩串二进制对应ABC,假定前缀AB后C的编码为01
[0049]0100 0001 0100 0010 010 压缩串二进制对应ABCD,假定前缀BC后D的编码为0
[0050]0100 0001 0100 0010 0100 11压缩串二进制对应ABCDE,假定前缀CD后E的编码为011
[0051 ] 更详细的示例,参见图2所示。
[0052]本说明书中每个实施例采用递进的方式描述,重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0053]以上对本发明所提供的一种DNA测序质量分数无损压缩方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种DNA测序质量分数无损压缩方法,包括如下: 步骤S100:提取fastq格式的文件中的质量分数行; 步骤S200:以run-length编码方法为参考,采用类run-length编码方法将提取出来的质量分数进行转换: 对于某质量分数A连续出现2次以上相同字符的质量分数串,其出现次数记为n,将该质量分数A的连续出现次数η的相反数-η作为该质量分数串的长度值,以便将该质量分数串转换为A (-η),并存储到压缩文件中,从而压缩此类质量分数。2.根据权利要求1所述的压缩方法,其特征在于,优选的,所述方法还进一步包括: 步骤S300:对于质量分数的各个前缀,统计各个前缀的质量分数分布,并存储各个前缀后紧跟的不同质量分数的种类值和数量值; 步骤S400:根据所述不同质量分数的种类值和数量值,构建Huffman树; 步骤S500:对于具有不同的前缀的质量分数,选择对应的Huffman树,并将Huffman树中保存的该质量分数对应的比特流存储到压缩文件中,从而来压缩此类质量分数。3.根据权利要求1所述的压缩方法,其特征在于,步骤S200中进一步包括: 步骤S2001:对于不包含连续相同质量分数的质量分数串进行转换,转换后的质量分数串依然为原始质量分数串,且转换后的质量分数串无长度值,并将该转换后的质量分数串存储到压缩文件中。4.根据权利要求1所述的压缩方法,其特征在于,步骤S200中进一步包括: 步骤S2002:改变run-length中length的值域,并根据值域所限定的length的最大值,来拆分超过该最大值的质量分数串为多个串,并对拆分后的该多个串分别压缩。
【专利摘要】本发明涉及一种DNA测序质量分数无损压缩方法,采用类run-length编码方法将提取出来的质量分数进行转换:例如,对于某质量分数A连续出现2次以上相同字符的质量分数串,其出现次数记为n,将该质量分数A的连续出现次数n的相反数-n作为该质量分数串的长度值,以便将该质量分数串转换为A(-n),并存储到压缩文件中,从而压缩此类质量分数。本发明提出了一种特别面向质量分数的无损压缩方法,降低了单独出现的质量分数的编码量,打破了经典的run-length的数据结构,即质量分数-长度对,适应性的公开了一种新机制来对长度进行变换,使得它与质量分数的值域不相交,且压缩方面具备高效性能。
【IPC分类】H03M7/30
【公开号】CN105391454
【申请号】CN201510923787
【发明人】季检, 白玉婧
【申请人】季检, 白玉婧
【公开日】2016年3月9日
【申请日】2015年12月14日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1