CN105391454A - 一种dna测序质量分数无损压缩方法 - Google Patents
一种dna测序质量分数无损压缩方法 Download PDFInfo
- Publication number
- CN105391454A CN105391454A CN201510923787.3A CN201510923787A CN105391454A CN 105391454 A CN105391454 A CN 105391454A CN 201510923787 A CN201510923787 A CN 201510923787A CN 105391454 A CN105391454 A CN 105391454A
- Authority
- CN
- China
- Prior art keywords
- mass fraction
- string
- length
- quality score
- compression method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000007906 compression Methods 0.000 title claims abstract description 37
- 230000006835 compression Effects 0.000 title claims abstract description 36
- 238000001712 DNA sequencing Methods 0.000 title claims abstract description 10
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 210000003918 fraction a Anatomy 0.000 claims description 6
- 238000004321 preservation Methods 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 108090000623 proteins and genes Proteins 0.000 description 6
- 229910002056 binary alloy Inorganic materials 0.000 description 5
- 108091028043 Nucleic acid sequence Proteins 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 108020004707 nucleic acids Proteins 0.000 description 2
- 150000007523 nucleic acids Chemical class 0.000 description 2
- 102000039446 nucleic acids Human genes 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 108020004414 DNA Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000001311 chemical methods and process Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Landscapes
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明涉及一种DNA测序质量分数无损压缩方法,采用类run-length编码方法将提取出来的质量分数进行转换:例如,对于某质量分数A连续出现2次以上相同字符的质量分数串,其出现次数记为n,将该质量分数A的连续出现次数n的相反数-n作为该质量分数串的长度值,以便将该质量分数串转换为A(-n),并存储到压缩文件中,从而压缩此类质量分数。本发明提出了一种特别面向质量分数的无损压缩方法,降低了单独出现的质量分数的编码量,打破了经典的run-length的数据结构,即质量分数-长度对,适应性的公开了一种新机制来对长度进行变换,使得它与质量分数的值域不相交,且压缩方面具备高效性能。
Description
技术领域
本发明涉及生物领域,特别是一种DNA测序质量分数无损压缩方法。
背景技术
基因数据比较庞大,需要耗费的存储资源高,因此对基因数据进行压缩能够显著降低存储成本。
FastQ格式文件是用来记录一组测序序列的状态,一般,每条序列对应文件里面的4行,分别为序列描述,DNA序列,重复的序列描述(也可以用一个+号代替),DNA序列对应的质量分数行。它的特点是每种类型的数据有各自的特点,例如序列描述之间有很大的冗余性,而序列描述和DNA序列之间没有什么冗余性。
质量分数是一种评价DNA测序中每个碱基的测序质量的一种方法,它与碱基配对出现,每个碱基都对应着一个质量分数。质量分数的值域为一个连续的整数区间。质量分数是一种偏随机的序列,它在fastq文件中的占比与基因序列相同,基因序列可以通过参考物种的基因序列进行压缩,而质量分数没有参考序列,所以质量值的压缩比要远大于基因序列的压缩比。对质量分数压缩算法的研究是优化fastq文件压缩算法的最重要组成部分。
因此,亟需一种有效的、针对FastQ格式文件的压缩方法,特别是针对质量分数的无损压缩方法。
发明内容
针对上述部分问题,本发明提供了一种DNA测序质量分数无损压缩方法,包括如下:
步骤S100:提取fastq格式的文件中的质量分数行;
步骤S200:以run-length编码方法为参考,采用类run-length编码方法将提取出来的质量分数进行转换:
对于某质量分数A连续出现2次以上相同字符的质量分数串,其出现次数记为n,将该质量分数A的连续出现次数n的相反数-n作为该质量分数串的长度值,以便将该质量分数串转换为A(-n),并存储到压缩文件中,从而压缩此类质量分数。
优选的,所述方法还进一步包括:
步骤S300:对于质量分数的各个前缀,统计各个前缀的质量分数分布,并存储各个前缀后紧跟的不同质量分数的种类值和数量值;
步骤S400:根据所述不同质量分数的种类值和数量值,构建Huffman树;
步骤S500:对于具有不同的前缀的质量分数,选择对应的Huffman树,并将Huffman树中保存的该质量分数对应的比特流存储到压缩文件中,从而来压缩此类质量分数。
更优选的,
步骤S200中,对于不包含连续相同质量分数的质量分数串进行转换,转换后的质量分数串依然为原始质量分数串,且转换后的质量分数串无长度值。
本发明具有如下特点:提出了一种特别面向质量分数的无损压缩方法,降低了单独出现的质量分数的编码量,打破了经典的run-length的数据结构,及质量分数-长度对,适应性的公开了一种新机制来对长度进行变换,使得它与质量分数的值域不相交,且压缩方面具备高效性能。
附图说明
图1为本发明的一个实施例中的示意图;
图2为本发明的另一个实施例中的示意图。
具体实施方式
以下结合附图1-2对本发明的各个实施例进行详细的说明。
在一个实施例中,其揭示了一种DNA测序质量分数无损压缩方法,包括如下:
步骤S100:提取fastq格式的文件中的质量分数行;
步骤S200:以run-length编码方法为参考,采用类run-length编码方法将提取出来的质量分数进行转换:
对于某质量分数A连续出现2次以上相同字符的质量分数串,其出现次数记为n,将该质量分数A的连续出现次数n的相反数-n作为该质量分数串的长度值,以便将该质量分数串转换为A(-n),并存储到压缩文件中,从而压缩此类质量分数。
对于该实施例而言,FastQ的文件结构中每条序列的最后一行为质量分数行,提取可以有多种方式,例如将质量分数行读出来,得到一个提取后的新文件。这样得到的新文件可以包括若干质量分数行。提取这一预处理使得将FastQ文件中其他的数据剔除掉,为接下来的数据处理带来便利。
至于取相反数作为该质量分数串的长度值,首先为了降低单独出现的质量分数的编码量,需要省略其长度,但这样就打破了经典的run-length的数据结构,及质量分数-长度对,因此本实施例提出了一种新机制来对长度进行变换,使得它与质量分数的值域不相交:以run-length编码方法为参考,采用类run-length编码方法将提取出来的质量分数进行转换。其次,从数据处理的实现上而言,本实施例开创性的在质量分数的压缩领域,采用了相反数这一种CPU(即处理器)能够高效做的变换,从而在本领域压缩中提供了高效解决方案。也就是说,本实施例可以对具有相同字符串的质量分数进行高效的压缩,而且此压缩由于不修改原数据,所以属于无损压缩。除该实施例外,其余实施例也不修改原数据,依然采用无损压缩方案。
可选的,所述步骤S200还进一步包括步骤S2002:改变run-length中length的值域,并根据值域所限定的length的最大值,来拆分超过该最大值的质量分数串为多个串,并对拆分后的该多个串分别压缩。
对于该实施例,这意味着,以run-length编码方法为参考,采用类run-length编码方法,还可以包括:例如改变run-length中length的值域,如果限定length最大32,那么需要将A(100)拆分成A(32)A(32)A(32)A(4),因为整个文件的字符域变小,所以更容易压缩。
在另一个实施例中,所述方法还进一步包括:
步骤S300:对于质量分数的各个前缀,统计各个前缀的质量分数分布,并存储各个前缀后紧跟的不同质量分数的种类值和数量值;
步骤S400:根据所述不同质量分数的种类值和数量值,构建Huffman树;
步骤S500:对于具有不同的前缀的质量分数,选择对应的Huffman树,并将Huffman树中保存的该质量分数对应的比特流存储到压缩文件中,从而来压缩此类质量分数。
对于该实施例而言,由于二代测序的过程是一个化学过程,通过监测荧光来判断核酸种类和质量,发现相邻的质量分数比较接近。本发明正是开创性的利用了某个核酸的质量分数和它的前缀有较强的相关性这一发现,在生物计算方面,这意味着:对于特定的前缀AAB,它后面跟B、A的可能性都很大。因此,本实施例统计了各前缀后面的质量分数的分布,并针对每个分布构建一棵Huffman树:例如统计前缀ABC的质量分数分布,存储ABC后面紧跟着的质量分数的种类和数量,并根据这些数值来构建Huffman树。
就构建Huffman树而言,以前缀A为例,如果A后面紧跟着的质量分数及其对应的出现次数为B(4),C(1),D(1),E(1),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),这四个质量值的编码长度相等。
采用Huffman编码的原因之一是对于一个固定的字符集合,Huffman编码的效率是最优的。除了此最优方式,也可以用定长的算术编码,例如固定用8个bit来表示,只是这样会占用更多的存储空间,压缩比不如Huffman编码方式。另外的原因在于:对此类经Huffman编码压缩的数据,解压缩的过程是先加载压缩包中的Huffman树存储,然后再根据前缀选择对应的Huffman树,而Huffman编码是前缀码,所以可以很容易地将比特流变成字符。
更优的,每种前缀都对应构建一棵Huffman树,所以跟前缀本身有关系。本实施例可以对每种前缀,自动适配Huffman树的长度,选择压缩比最优的。
在另一个实施例中,所述步骤S200进一步包括:
步骤S2001:对于不包含连续相同质量分数的质量分数串进行转换,转换后的质量分数串依然为原始质量分数串,且转换后的质量分数串无长度值,并将该转换后的质量分数串存储到压缩文件中。
就该实施例而言,对于单个字符的处理与经典的run-length方法也不同,这是因为当质量分数不连续出现的时候,经典的run-length会插入若干个1,这会显著增加转换后文件(即压缩文件)的长度,而本实施例则避免了此类问题。
以如下描述的某质量分数(qualityscore)为例:
SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!”*((((***+))%%%++)(%%%%).1***-+*”))**55CCF>>>>>>CCCCCCC65
其中,上述示例的最下面一行就是一个真实的被本发明处理后的质量分数行,每个字符就是对应的DNA碱基的质量分数。
再例如压缩质量分数串ABCDE的过程如下表所示,假设前缀长度为2,其中ABCDE为原始串ASCII字符,压缩过程如下表所示:
01000001压缩串二进制对应A,增加A的二进制编码
0100000101000010压缩串二进制对应AB,增加B的二进制编码
010000010100001001压缩串二进制对应ABC,假定前缀AB后C的编码为01
0100000101000010010压缩串二进制对应ABCD,假定前缀BC后D的编码为0
0100000101000010010011压缩串二进制对应ABCDE,假定前缀CD后E的编码为011
更详细的示例,参见图2所示。
本说明书中每个实施例采用递进的方式描述,重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种DNA测序质量分数无损压缩方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种DNA测序质量分数无损压缩方法,包括如下:
步骤S100:提取fastq格式的文件中的质量分数行;
步骤S200:以run-length编码方法为参考,采用类run-length编码方法将提取出来的质量分数进行转换:
对于某质量分数A连续出现2次以上相同字符的质量分数串,其出现次数记为n,将该质量分数A的连续出现次数n的相反数-n作为该质量分数串的长度值,以便将该质量分数串转换为A(-n),并存储到压缩文件中,从而压缩此类质量分数。
2.根据权利要求1所述的压缩方法,其特征在于,优选的,所述方法还进一步包括:
步骤S300:对于质量分数的各个前缀,统计各个前缀的质量分数分布,并存储各个前缀后紧跟的不同质量分数的种类值和数量值;
步骤S400:根据所述不同质量分数的种类值和数量值,构建Huffman树;
步骤S500:对于具有不同的前缀的质量分数,选择对应的Huffman树,并将Huffman树中保存的该质量分数对应的比特流存储到压缩文件中,从而来压缩此类质量分数。
3.根据权利要求1所述的压缩方法,其特征在于,步骤S200中进一步包括:
步骤S2001:对于不包含连续相同质量分数的质量分数串进行转换,转换后的质量分数串依然为原始质量分数串,且转换后的质量分数串无长度值,并将该转换后的质量分数串存储到压缩文件中。
4.根据权利要求1所述的压缩方法,其特征在于,步骤S200中进一步包括:
步骤S2002:改变run-length中length的值域,并根据值域所限定的length的最大值,来拆分超过该最大值的质量分数串为多个串,并对拆分后的该多个串分别压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510923787.3A CN105391454B (zh) | 2015-12-14 | 2015-12-14 | 一种dna 测序质量分数无损压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510923787.3A CN105391454B (zh) | 2015-12-14 | 2015-12-14 | 一种dna 测序质量分数无损压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105391454A true CN105391454A (zh) | 2016-03-09 |
CN105391454B CN105391454B (zh) | 2017-08-11 |
Family
ID=55423333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510923787.3A Active CN105391454B (zh) | 2015-12-14 | 2015-12-14 | 一种dna 测序质量分数无损压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105391454B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106067824A (zh) * | 2016-06-02 | 2016-11-02 | 洛阳晶云信息科技有限公司 | 一种基于二联密码子的测序数据压缩方法 |
CN106096332A (zh) * | 2016-06-28 | 2016-11-09 | 深圳大学 | 面向存储的dna序列的并行快速匹配方法及其系统 |
CN107294538A (zh) * | 2017-06-09 | 2017-10-24 | 深圳市华星光电技术有限公司 | Oled显示装置的补偿表压缩方法及解压方法 |
CN109450452A (zh) * | 2018-11-27 | 2019-03-08 | 中国科学院计算技术研究所 | 一种针对基因数据的取样字典树索引的压缩方法和系统 |
CN110021349A (zh) * | 2017-07-31 | 2019-07-16 | 北京哲源科技有限责任公司 | 基因数据的编码方法 |
CN111061434A (zh) * | 2019-12-17 | 2020-04-24 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111640467A (zh) * | 2020-05-25 | 2020-09-08 | 西安电子科技大学 | 基于自适应编码顺序的dna测序质量分数无损压缩方法 |
CN110349635B (zh) * | 2019-06-11 | 2021-06-11 | 华南理工大学 | 一种基因测序数据质量分数的并行压缩方法 |
-
2015
- 2015-12-14 CN CN201510923787.3A patent/CN105391454B/zh active Active
Non-Patent Citations (6)
Title |
---|
IDOIA OCHOA ET AL.: "QualComp: a new lossy compressor for quality scores based on rate distortion theory", 《BMC BIOINFORMATICS》 * |
JAMES K. BONFIELD ET AL.: "Compression of FASTQ and SAM Format Sequencing Data", 《PLOS ONE (WWW.PLOSONE.ORG)》 * |
JIARUI ZHOU ET AL.: "Compression of netx-generation sequencing quality scores using memetic algorithm", 《BMC BIOINFORMATICS》 * |
SEBASTIAN DEOROWICZ EA AL.: "Compression of DNA sequence reads in FASTQ format", 《BIOINFORMATICS》 * |
WAIBHAV TEMBE ET AL.: "G-SQZ: compact encoding of genomic sequence and quality data", 《BIOINFORMATIC》 * |
朱泽轩等: "高通量DNA测序数据压缩研究进展", 《深圳大学学报理工版》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106067824B (zh) * | 2016-06-02 | 2019-11-05 | 洛阳晶云信息科技有限公司 | 一种基于二联密码子的测序数据压缩方法 |
CN106067824A (zh) * | 2016-06-02 | 2016-11-02 | 洛阳晶云信息科技有限公司 | 一种基于二联密码子的测序数据压缩方法 |
CN106096332A (zh) * | 2016-06-28 | 2016-11-09 | 深圳大学 | 面向存储的dna序列的并行快速匹配方法及其系统 |
CN107294538A (zh) * | 2017-06-09 | 2017-10-24 | 深圳市华星光电技术有限公司 | Oled显示装置的补偿表压缩方法及解压方法 |
CN107294538B (zh) * | 2017-06-09 | 2020-09-01 | 深圳市华星光电半导体显示技术有限公司 | Oled显示装置的补偿表压缩方法及解压方法 |
CN110021349B (zh) * | 2017-07-31 | 2021-02-02 | 北京哲源科技有限责任公司 | 基因数据的编码方法 |
CN110021349A (zh) * | 2017-07-31 | 2019-07-16 | 北京哲源科技有限责任公司 | 基因数据的编码方法 |
CN109450452A (zh) * | 2018-11-27 | 2019-03-08 | 中国科学院计算技术研究所 | 一种针对基因数据的取样字典树索引的压缩方法和系统 |
CN109450452B (zh) * | 2018-11-27 | 2020-07-10 | 中国科学院计算技术研究所 | 一种针对基因数据的取样字典树索引的压缩方法和系统 |
CN110349635B (zh) * | 2019-06-11 | 2021-06-11 | 华南理工大学 | 一种基因测序数据质量分数的并行压缩方法 |
CN111061434A (zh) * | 2019-12-17 | 2020-04-24 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111061434B (zh) * | 2019-12-17 | 2021-10-01 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111640467A (zh) * | 2020-05-25 | 2020-09-08 | 西安电子科技大学 | 基于自适应编码顺序的dna测序质量分数无损压缩方法 |
CN111640467B (zh) * | 2020-05-25 | 2023-03-24 | 西安电子科技大学 | 基于自适应编码顺序的dna测序质量分数无损压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105391454B (zh) | 2017-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105391454A (zh) | 一种dna测序质量分数无损压缩方法 | |
KR101049699B1 (ko) | 데이터의 압축방법 | |
US7737869B2 (en) | Symbol based data compression | |
JP5498783B2 (ja) | データ圧縮の方法 | |
KR20190117652A (ko) | 압축된 게놈 서열 리드로부터 게놈 참조 서열의 복원 방법 및 시스템 | |
US7791513B2 (en) | Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
US7786907B2 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
US7511639B2 (en) | Data compression for communication between two or more components in a system | |
US7764202B2 (en) | Lossless data compression with separated index values and literal values in output stream | |
US20190140657A1 (en) | Data compression coding method, apparatus therefor, and program therefor | |
RU2633178C2 (ru) | Способ и система базы данных для индексирования ссылок на документы базы данных | |
US20190052284A1 (en) | Data compression apparatus, data decompression apparatus, data compression program, data decompression program, data compression method, and data decompression method | |
KR20150092585A (ko) | 이진 영상에 기반한 유전체 데이터 압축 방법 및 장치 | |
WO2019080670A1 (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
WO2019076177A1 (zh) | 基因测序数据压缩预处理、压缩、解压方法、系统及计算机可读介质 | |
US7786903B2 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
US6919827B2 (en) | Method and apparatus for effectively decoding Huffman code | |
Goel | A compression algorithm for DNA that uses ASCII values | |
JP2021145281A (ja) | 圧縮装置、伸張装置及び方法 | |
US8175403B1 (en) | Iterative backward reference selection with reduced entropy for image compression | |
Hasan et al. | Comparative data compression techniques and multi-compression results | |
JP2019047450A (ja) | 圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラム | |
CN111384962B (zh) | 数据压缩解压装置和数据压缩方法 | |
CN113364466A (zh) | 数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210201 Address after: 100089 9D, 8 / F, unit 1, building 3, a48 Zhichun Road, Haidian District, Beijing Patentee after: Beijing Dingshi Medical Data Technology Co.,Ltd. Address before: 100020 foreign enterprise service company, Chaoyang District, Beijing Patentee before: Ji Jian Patentee before: Bai Yujing |
|
TR01 | Transfer of patent right |