CN107169315B - 一种海量dna数据的传输方法及系统 - Google Patents
一种海量dna数据的传输方法及系统 Download PDFInfo
- Publication number
- CN107169315B CN107169315B CN201710188308.7A CN201710188308A CN107169315B CN 107169315 B CN107169315 B CN 107169315B CN 201710188308 A CN201710188308 A CN 201710188308A CN 107169315 B CN107169315 B CN 107169315B
- Authority
- CN
- China
- Prior art keywords
- dna sequence
- repeated
- array
- dna
- str
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
Landscapes
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Biophysics (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供的方法借助后缀数组求取DNA序列的最长重复子串,然后将最长重复子串存入数组中,并用数组下标替换DNA序列中的最长重复子串,通过不断的替换最长重复子串而达到压缩传输数据量的目的。
Description
技术领域
本发明涉及生物信息学数据压缩传输领域,更具体地,涉及一种海量DNA数据的传输方法及系统。
背景技术
目前实施的千人基因组计划、国际单体型图计划和孟德尔遗传疾病计划等项目,利用下一代测序技术产生了海量的DNA测序数据,使得生物信息学数据呈现爆炸性增长。这些数据含有人类目前尚未了解的生物学知识,通过对这些数据的分析与处理,揭示其生物学内涵,提取出对人类有用的信息,可以给生物学和医学领域的相关研究带来更大的辅助。但是,在促进生物学和医学发展的同时,不同研究所之间传递数据的成本也高的惊人。如何压缩传输量,较少传输成本成为了当下急需解决的问题。
生物遗传物质的自我复制操作致使在同一个体的DNA序列中存在着大量完全重复的片段,另外还存在特殊的镜像重复、反转重复、互补回文结构等重复片段。人类的不同个体基因的相似程度达99%,而和近亲物种间基因序列的近似程度也可高达98%,植物DNA序列中重复序列含量可达80%以上。因此,DNA序列不仅数据量大且含有很多的冗余信息,这些数据冗余是DNA压缩传输的基础。后缀数组是一种为文本索引设计的数据结构,该结构由记录了字符串的各个后缀的字典序索引的数组构成。利用后缀数组可以快速查找字符串中的最长重复子串。本发明利用后缀数组的这种用途,通过对生物基因序列查找最长重复子串,将查到的最长重复子串生成字典索引,删减重复子串再查找最长重复子串,不断循环该过程。从而实现了对DNA序列的编码压缩过程。
发明内容
本发明为解决以上现有技术在传输DNA数据时传输数据量过大导致传输成本高昂的缺陷,提供了一种海量DNA数据的传输方法,该方法通过对DNA数据进行压缩从而达到降低传输数据量的目的。
为实现以上发明目的,采用的技术方案是:
一种海量DNA数据的传输方法,利用发送客户端、去重服务器和接收客户端进行数据的传输,传输方法具体包括以下步骤:
S1.在发送客户端,读入第一条DNA序列D1;
S2.求取DNA序列D1的后缀数组SA,使用SA[m]记录第m位后缀对应的首字母位置,即Suffix[SA[m]]在所有后缀中是第m小的后缀;
S3.扫描后缀数组SA,通过比较相邻后缀来找出最长的重复字符串Str[k];
S4.在去重服务器上构建数组a,将Str[k]存入数组a的第t个存储单元a[t]中,t表示存储单元的下标,其初始值为1;
S5.使用t替换掉DNA序列D1中出现的所有重复字符串Str[k],DNA序列D1经过替换后形成新的序列D[1];
S6.令t=t+1,然后对D[1]重复执行步骤S2~S5直至D[1]中剩余的碱基小于e个或最长重复子串小于f个,此时在D[1]中剩余的碱基段的开头和结尾分别插入分隔符;
S7.对其余的DNA序列依次执行步骤S8~S9的处理:
S8.读入一条DNA序列Di,对其执行步骤S2~S3的操作,求取到该DNA序列最长的重复字符串Str[h],然后扫描数组a,判断数组a中是否存储有与Str[h]匹配的匹配项,若是则使用匹配项所在的存储单元的下标g替换DNA序列中出现的所有重复字符串Str[h],DNA序列Di经过替换后形成新的序列D[i];否则令t=t+1,然后将重复字符串Str[h]存入数组a的第t个存储单元a[t]中;并使用t替换掉DNA序列Di中出现的所有重复字符串Str[h],DNA序列Di经过替换后形成新的序列D[i];
S9.对D[i]重复执行步骤S8直至D[i]中剩余的碱基小于e个或最长重复子串小于f个,此时在D[i]中剩余的碱基段的开头和结尾分别插入分隔符;
S10.通过步骤S1~S9的处理完成对DNA数据的压缩,将经过压缩的DNA数据和数组a发送到接收客户端;
S11.接收客户端读入DNA序列,然后利用数组a中存储单元t存储的重复字符串替换相邻两个分隔符之间的数字t,然后将分隔符删除,此时完成DNA序列的解压;
S12.传输完成。
上述方案中,本发明提供的方法借助后缀数组求取DNA序列的最长重复子串,然后将最长重复子串存入数组中,并用数组下标替换DNA序列中的最长重复子串,通过不断的替换最长重复子串而达到压缩传输数据量的目的。
优选地,所述步骤S3通过比较相邻后缀来找出最长重复字符串Str[k]的具体过程如下:
(1)比较相邻后缀找出其中的重复子串,若重复子串在相邻后缀对应的其中一条字符串中出现两次以上,则将其长度记为len,否则len为0;
(2)比较找出的所有的重复子串的len值,取最大的len值对应的重复子串S[i]为最长的重复字符串Str[k]。
优选地,所述e为8,f为4。
优选地,所述分隔符为#号。
同时,本发明还提供了一种应用以上方法的系统,其具体的方案如下:
包括发送客户端、去重服务器和接收客户端。
与现有技术相比,本发明的有益效果是:
本发明提供的方法借助后缀数组求取DNA序列的最长重复子串,然后将最长重复子串存入数组中,并用数组下标替换DNA序列中的最长重复子串,通过不断的替换最长重复子串而达到压缩传输数据量的目的。
附图说明
图1为删除最长的重复字符串Str[k]的示意图。
图2为新的序列D1的示意图。
图3为插入分隔符的示意图。
图4为解压缩的示意图。
图5为方法的流程示意图。
图6为传输的示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图5、6所示,本发明提供的方法具体包括以下步骤:
第一步:发送客户端读入第一条DNA序列D1:
CTCGATGATTCGATCGATATTCGAA。
第二步、求取DNA序列D1的后缀数组SA,使用SA[m]记录第m位后缀对应的首字母位置,即Suffix[SA[m]]在所有后缀中是第m小的后缀。
SA={24,23,16,12,4,18,7,21,14,10,2,22,15,11,3,6,0,17,20,13,9,1,5,19,8}。
第三步、扫描后缀数组SA,通过比较相邻后缀来找出最长的重复字符串Str[k]:
(1)比较相邻后缀找出其中的重复子串,若重复子串在相邻后缀对应的其中一条字符串中出现两次以上,则将其长度记为len,否则len为0;
比如:S[0]=A,len[0]=1;S[5]=ATTCGA,len[5]=6;S[0]、S[5]表示重复子串。
(2)比较找出的所有的重复子串的len值,取最大的len值对应的重复子串S[i]为最长的重复字符串Str[k]。本实施例中,找到的最长的重复字符串Str[k]为ATTCGA。
第四步、在去重服务器上构建数组a,将Str[k]存入数组a的第t个存储单元a[t]中。如下表所述:
a[0] | …… | a[n] | a[63] |
ATTCGA |
其中t表示存储单元的下标,其初始值为1,使用t替换掉DNA序列D1中出现的所有重复字符串Str[k],DNA序列D1经过替换后形成新的序列D1。如图1、2所示。
第五步、令t=t+1,然后对D1重复执行步骤S2~S5直至D1中剩余的碱基小于e个或最长重复子串小于f个,此时在D1中剩余的碱基段的开头和结尾分别插入分隔符。如图3所示。
第六步、对其余的DNA序列依次执行第八步、第九步的处理:
第八步、读入一条DNA序列Di,对其执行步骤S2~S3的操作,求取到该DNA序列最长的重复字符串Str[h],然后扫描数组a,判断数组a中是否存储有与Str[h]匹配的匹配项,若是则使用匹配项所在的存储单元的下标g替换DNA序列中出现的所有重复字符串Str[h],DNA序列Di经过替换后形成新的序列Di;否则令t=t+1,然后将重复字符串Str[h]存入数组a的第t个存储单元a[t]中;并使用t替换掉DNA序列Di中出现的所有重复字符串Str[h],DNA序列Di经过替换后形成新的序列Di。
第九步、对Di重复执行步骤S8直至Di中剩余的碱基小于e个或最长重复子串小于f个,此时在Di中剩余的碱基段的开头和结尾分别插入分隔符。
第十步、通过步骤S1~S9的处理完成对DNA数据的压缩,将经过压缩的DNA数据和数组a发送到接收客户端;
第十一步、接收客户端读入DNA序列,然后利用数组a中存储单元t存储的重复字符串替换相邻两个分隔符之间的数字t,然后将分隔符删除,此时完成DNA序列的解压;如图4所示。
第十二步、传输完成。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (4)
1.一种海量DNA数据的传输方法,其特征在于:利用发送客户端、去重服务器和接收客户端进行数据的传输,传输方法具体包括以下步骤:
S1.在发送客户端,读入第一条DNA序列D1;
S2.求取DNA序列D1的后缀数组SA,使用SA[m]记录第m位后缀对应的首字母位置,即Suffix[SA[m]]在所有后缀中是第m小的后缀;
S3.扫描后缀数组SA,通过比较相邻后缀来找出最长的重复字符串Str[k];其中,通过比较相邻后缀来找出最长的重复字符串Str[k]的具体过程如下:
S3.1比较相邻后缀找出其中的重复子串,若重复子串在相邻后缀对应的其中一条字符串中出现两次以上,则将其长度记为len,否则len为0;
S3.2比较找出的所有的重复子串的len值,取最大的len值对应的重复子串S[i]为最长的重复字符串Str[k];
S4.在去重服务器上构建数组a,将Str[k]存入数组a的第t个存储单元a[t]中,t表示存储单元的下标,其初始值为1;
S5.使用t替换掉DNA序列D1中出现的所有重复字符串Str[k],DNA序列D1经过替换后形成新的序列D[1];
S6.令t=t+1,然后对D[1]重复执行步骤S2~S5直至D[1]中剩余的碱基小于e个或最长重复子串小于f个,此时在D1中剩余的碱基段的开头和结尾分别插入分隔符;
S7.对其余的DNA序列依次执行步骤S8~S9的处理:
S8.读入一条DNA序列Di,对其执行步骤S2~S3的操作,求取到该DNA序列最长的重复字符串Str[h],然后扫描数组a,判断数组a中是否存储有与Str[h]匹配的匹配项,若是则使用匹配项所在的存储单元的下标g替换DNA序列中出现的所有重复字符串Str[h],DNA序列Di经过替换后形成新的序列D[i];否则令t=t+1,然后将重复字符串Str[h]存入数组a的第t个存储单元a[t]中;并使用t替换掉DNA序列Di中出现的所有重复字符串Str[h],DNA序列Di经过替换后形成新的序列D[i];
S9.对D[i]重复执行步骤S8直至D[i]中剩余的碱基小于e个或最长重复子串小于f个,此时在D[i]中剩余的碱基段的开头和结尾分别插入分隔符;
S10.通过步骤S1~S9的处理完成对DNA数据的压缩,将经过压缩的DNA数据和数组a发送到接收客户端;
S11.接收客户端读入DNA序列,然后利用数组a中存储单元t存储的重复字符串替换相邻两个分隔符之间的数字t,然后将分隔符删除,此时完成DNA序列的解压;
S12.传输完成。
2.根据权利要求1所述的海量DNA数据的传输方法,其特征在于:所述e为8,f为4。
3.根据权利要求1所述的海量DNA数据的传输方法,其特征在于:所述分隔符为#号。
4.一种根据权利要求1~3任一项方法的系统,其特征在于:包括发送客户端、去重服务器和接收客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188308.7A CN107169315B (zh) | 2017-03-27 | 2017-03-27 | 一种海量dna数据的传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188308.7A CN107169315B (zh) | 2017-03-27 | 2017-03-27 | 一种海量dna数据的传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107169315A CN107169315A (zh) | 2017-09-15 |
CN107169315B true CN107169315B (zh) | 2020-08-04 |
Family
ID=59848819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710188308.7A Active CN107169315B (zh) | 2017-03-27 | 2017-03-27 | 一种海量dna数据的传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107169315B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460495B (zh) * | 2018-11-07 | 2022-05-10 | 南京烽火星空通信发展有限公司 | 一种基于改进bm算法与后缀数组的冗余字段过滤方法 |
CN114356220B (zh) * | 2021-12-10 | 2022-10-28 | 中科碳元(深圳)生物科技有限公司 | 基于dna存储的编码方法、电子设备及可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536068A (zh) * | 2003-02-03 | 2004-10-13 | ���ǵ�����ʽ���� | 编码脱氧核糖核酸序列的方法和装置及计算机可读介质 |
CN102073740A (zh) * | 2011-01-27 | 2011-05-25 | 农革 | 基于基数排序的字符串后缀数组构造方法 |
CN102081673A (zh) * | 2011-01-27 | 2011-06-01 | 农革 | 后缀数组构造方法 |
CN102081707A (zh) * | 2011-01-07 | 2011-06-01 | 深圳大学 | 一种dna序列数据压缩系统 |
CN102222093A (zh) * | 2011-06-09 | 2011-10-19 | 中国工程物理研究院计算机应用研究所 | 一种获取字符串最长公共子串的方法 |
CN102467616A (zh) * | 2010-11-15 | 2012-05-23 | 中国科学院计算技术研究所 | 一种用后缀数组加速大规模蛋白质鉴定的方法及其系统 |
CN102521213A (zh) * | 2011-12-01 | 2012-06-27 | 农革 | 线性时间后缀数组构造方法 |
CN104156636A (zh) * | 2014-07-30 | 2014-11-19 | 中南大学 | 一种基于后缀数组的模糊串联重复序列识别方法 |
CN105553483A (zh) * | 2015-12-09 | 2016-05-04 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种产生lz77的方法及装置 |
-
2017
- 2017-03-27 CN CN201710188308.7A patent/CN107169315B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536068A (zh) * | 2003-02-03 | 2004-10-13 | ���ǵ�����ʽ���� | 编码脱氧核糖核酸序列的方法和装置及计算机可读介质 |
CN102467616A (zh) * | 2010-11-15 | 2012-05-23 | 中国科学院计算技术研究所 | 一种用后缀数组加速大规模蛋白质鉴定的方法及其系统 |
CN102081707A (zh) * | 2011-01-07 | 2011-06-01 | 深圳大学 | 一种dna序列数据压缩系统 |
CN102073740A (zh) * | 2011-01-27 | 2011-05-25 | 农革 | 基于基数排序的字符串后缀数组构造方法 |
CN102081673A (zh) * | 2011-01-27 | 2011-06-01 | 农革 | 后缀数组构造方法 |
CN102222093A (zh) * | 2011-06-09 | 2011-10-19 | 中国工程物理研究院计算机应用研究所 | 一种获取字符串最长公共子串的方法 |
CN102521213A (zh) * | 2011-12-01 | 2012-06-27 | 农革 | 线性时间后缀数组构造方法 |
CN104156636A (zh) * | 2014-07-30 | 2014-11-19 | 中南大学 | 一种基于后缀数组的模糊串联重复序列识别方法 |
CN105553483A (zh) * | 2015-12-09 | 2016-05-04 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种产生lz77的方法及装置 |
Non-Patent Citations (1)
Title |
---|
《基于GWQPSO和BWT的DNA序列压缩算法研究》;谭红艳等;《中国优秀硕士学位论文全文数据库信息科技辑》;20170215;I138-62 * |
Also Published As
Publication number | Publication date |
---|---|
CN107169315A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuruppu et al. | Relative Lempel-Ziv compression of genomes for large-scale storage and retrieval | |
US8798936B2 (en) | Methods and systems for data analysis using the Burrows Wheeler transform | |
CN106687966B (zh) | 用于数据分析和压缩的方法和系统 | |
Grumbach et al. | Compression of DNA sequences | |
US8554492B2 (en) | Method and apparatus for searching nucleic acid sequence | |
WO2016201215A1 (en) | Systems and methods for identifying microorganisms | |
CN105760706B (zh) | 一种二代测序数据的压缩方法 | |
CN107169315B (zh) | 一种海量dna数据的传输方法及系统 | |
CN109712674B (zh) | 注释数据库索引结构、快速注释遗传变异的方法及系统 | |
US11845982B2 (en) | Key-value store that harnesses live micro-organisms to store and retrieve digital information | |
Yang et al. | Efficient direct search on compressed genomic data | |
Reznik | Coding of sets of words | |
CN107633158B (zh) | 对基因序列进行压缩和解压缩的方法和设备 | |
KR20130122816A (ko) | 유전자 염기서열 압축장치 및 압축방법 | |
WO2011073680A1 (en) | Improvements relating to hash tables | |
Daykin et al. | Indeterminate string factorizations and degenerate text transformations | |
Zahra et al. | DNA Compression using an innovative Index based Coding Algorithm | |
Mehta et al. | DNA compression using referential compression algorithm | |
Glattre et al. | γ-Text Found in Species of All Five Kingdoms: A Bio-Linguistic Study. | |
Zhan et al. | A novel method to compress high-throughput DNA sequence read archive | |
Gupta et al. | An efficient compressor for biological sequences | |
JP7089804B2 (ja) | データ作成装置、データ作成方法及びデータ作成プログラムを記憶した記憶媒体 | |
CN111916153B (zh) | 一种并行多重序列比对方法 | |
TWI785847B (zh) | 用於處理基因定序資料的資料處理系統 | |
Fan et al. | Complementary contextual models with FM-Index for DNA compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |