CN105391454A - 一种dna测序质量分数无损压缩方法 - Google Patents

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

Info

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
Application number
CN201510923787.3A
Other languages
English (en)
Other versions
CN105391454B (zh
Inventor
季检
白玉婧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dingshi Medical Data Technology Co ltd
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201510923787.3A priority Critical patent/CN105391454B/zh
Publication of CN105391454A publication Critical patent/CN105391454A/zh
Application granted granted Critical
Publication of CN105391454B publication Critical patent/CN105391454B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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测序质量分数无损压缩方法
技术领域
本发明涉及生物领域,特别是一种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的最大值,来拆分超过该最大值的质量分数串为多个串,并对拆分后的该多个串分别压缩。
CN201510923787.3A 2015-12-14 2015-12-14 一种dna 测序质量分数无损压缩方法 Active CN105391454B (zh)

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)

* Cited by examiner, † Cited by third party
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 华南理工大学 一种基因测序数据质量分数的并行压缩方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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