CN105550535A - 一种基因字符序列快速编码为二进制序列的编码方法 - Google Patents

一种基因字符序列快速编码为二进制序列的编码方法 Download PDF

Info

Publication number
CN105550535A
CN105550535A CN201510884496.8A CN201510884496A CN105550535A CN 105550535 A CN105550535 A CN 105550535A CN 201510884496 A CN201510884496 A CN 201510884496A CN 105550535 A CN105550535 A CN 105550535A
Authority
CN
China
Prior art keywords
character string
character
data
gene
current processing
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
CN201510884496.8A
Other languages
English (en)
Other versions
CN105550535B (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.)
Human And Future Biotechnology (changsha) Co Ltd
Original Assignee
Human And Future Biotechnology (changsha) Co Ltd
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 Human And Future Biotechnology (changsha) Co Ltd filed Critical Human And Future Biotechnology (changsha) Co Ltd
Priority to CN201510884496.8A priority Critical patent/CN105550535B/zh
Publication of CN105550535A publication Critical patent/CN105550535A/zh
Application granted granted Critical
Publication of CN105550535B publication Critical patent/CN105550535B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B25/00ICT specially adapted for hybridisation; ICT specially adapted for gene or protein expression

Landscapes

  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Engineering & Computer Science (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)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本发明公开了一种基因字符序列快速编码为二进制序列的编码方法,步骤包括:1)从待编码基因字符序列中取出指定数量个字符串作为当前处理字符串;2)将当前处理字符串的二进制编码右移1位;3)将右移1位后的当前处理字符串中的每一个字符与0x3进行数据与操作;4)分别将数据与操作后的结果中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列;5)判断待编码基因字符序列是否处理完毕,如果尚未处理完毕,则跳转执行步骤1);否则,结束并退出。本发明具有编码压缩效率高、编码速度快、编码效率高、不需要进行大小写转换、实现方式灵活、应用范围广的优点。

Description

一种基因字符序列快速编码为二进制序列的编码方法
技术领域
本发明涉及基因测序技术,具体涉及一种基因字符序列快速编码为二进制序列的编码方法。
背景技术
随着基因测序技术的发展,测序价格呈指数下降,速度甚至超过摩尔定律。伴随而来的大量测序数据,虽然互联网以及硬件持续更新发展,测序产生的海量数据的压缩、存储、传输依旧带来了巨大的挑战。DNA基因组序列和测序序列均由ATCG四种碱基组成,对A、T、C、G的编码在数据压缩方面至关重要,通常的做法如下:由于字符大小写混杂,可以统一将字符大小写全都转换成大写或小写(或者不转换大小写直接判断,判断情况由四种增加到八种),逐个判断字符,再进行二进制编码映射(例如a->00c->01g->10t->11)。这样的编码由于逐字进行,对于动辄GB甚至TB的DNA数据来说非常耗时,提高编码速度效率至关重要。因此,现有的基因字符序列编码为二进制序列的编码方法针对DNA测序产生的海量数据,在编码时存在速度慢、效率低的问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种编码压缩效率高、编码速度快、编码效率高、不需要进行大小写转换、实现方式灵活、应用范围广的基因字符序列快速编码为二进制序列的编码方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种基因字符序列快速编码为二进制序列的编码方法,步骤包括:
1)从待编码基因字符序列中取出指定数量个字符串作为当前处理字符串;
2)将当前处理字符串的二进制编码右移1位;
3)将右移1位后的当前处理字符串中的每一个字符与0x3进行数据与操作;
4)分别将数据与操作后的结果中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列;
5)判断待编码基因字符序列是否处理完毕,如果尚未处理完毕,则跳转执行步骤1);否则,结束并退出。
优选地,所述步骤1)中指定数量个字符串具体是指16个字符串。
优选地,所述步骤2)中将当前处理字符串右移1位时,具体是指调用SSE指令集的_mm_srli_epi64指令分别将当前处理字符串的高64位数据、低64位数据同时右移1位。
优选地,所述步骤3)中进行数据与操作时,具体是指将右移1位后的当前处理字符串和预设的128bit掩码调用SSE指令集的_mm_and_si128指令进行数据与操作,所述掩码由16个0x3构成。
优选地,所述步骤4)的详细步骤包括:
4.1)调用BMI2指令集的数据位抽取指令_pext_u64且使用参数0x0303030303030303uL,将数据与操作后的结果前64字节中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列;
4.2)调用BMI2指令集的数据位抽取指令_pext_u64且使用参数0x0303030303030303uL,将数据与操作后的结果后64字节中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列。
本发明种基因字符序列快速编码为二进制序列的编码方法具有下述优点:
1、编码压缩效率高、占用存储空间少,本发明方法最终将每一个基因字符的8位二进制编码压缩为2位,压缩后的体积为原体积的25%。
2、编码速度快、编码效率高,本发明针对每一个当前处理字符串仅仅需要三条指令即可实现压缩紧致编码,相比于现有的编码方法,逐字符编码效率提高2倍以上,结合并行位抽取优化达到10倍以上(未进行编译优化)乃至40倍以上(进行编译优化),能够极大提高大数据的编码压缩、存储传输、解压等效率,尤其适用于海量基因数据库的存储和处理。
3、本发明对基因字符序列的大小写不敏感,不需要进行基因字符的判断。
4、本发明以指定数量的基因字符为一组,分别将每一组基因字符的最低2位拼装得到该组基因字符的编码结果的实现方式灵活,可以通过多种途径灵活的实现该编码方法,例如BMI2指令集的pext指令、FPGA等等,而且可以应用于所有DNA文本数据的编码,具有广泛的应用空间。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中的编码映射原理图。
图3为本发明实施例中的移位原理示意图。
图4为本发明实施例中的数据与操作原理示意图。
图5为本发明实施例中的紧致编码原理示意图。
具体实施方式
如图1所示,本实施例基因字符序列快速编码为二进制序列的编码方法的步骤包括:
1)从待编码基因字符序列中取出指定数量个字符串作为当前处理字符串;
2)将当前处理字符串的二进制编码右移1位;
3)将右移1位后的当前处理字符串中的每一个字符与0x3进行数据与操作;
4)分别将数据与操作后的结果中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列;
5)判断待编码基因字符序列是否处理完毕,如果尚未处理完毕,则跳转执行步骤1);否则,结束并退出。
参见图2所示基因字符A、C、G、T、a、c、g、t的二进制编码,根据观察可知提取字符编码的第1、2位,即可形成对A、C、G、T四个字母不区分大小写的有效的二进制编码:a/A->0,c/C->1,t/T->2,g/G->3。本实施例基于上述观察,从字符串中快速提取与紧致二进制编码,并采用SIMD并行指令进行优化,对字符串进行并行批量提取与紧致。
本实施例中,步骤1)中指定数量个字符串具体是指16个字符串。
本实施例中,步骤2)中将当前处理字符串右移1位时,具体是指调用SSE指令集的_mm_srli_epi64指令分别将当前处理字符串的高64位数据、低64位数据同时右移1位。_mm_srli_epi64指令为SSE指令集对128-bit数作移位操作函数,例如针对当前处理字符串chara[17]{"actgACTGactgACTG"},移位后的数赋值给变量b,具体指令为:
_m128ib=_mm_srli_epi64(*(__m128i*)(a),1)。
如图3所示,以基因字符A为例,其对应的二进制编码为01000001,通过移位后变为00100000;以基因字符a为例,其对应的二进制编码为01100001,通过移位后变为00110000,通过移位以后,以此类推,使得移位后基因字符串各字符的二进制编码最后两位的值与a/A->0,c/C->1,t/T->2,g/G->3对应,为掩码抽取做好准备。
本实施例中,步骤3)中进行数据与操作时,具体是指将右移1位后的当前处理字符串和预设的128bit掩码调用SSE指令集的_mm_and_si128指令进行数据与操作,掩码由16个0x3构成。_mm_and_si128指令为SSE指令集的128位数据与操作函数,本步骤的指令为:
__m128ic=_mm_and_si128(b,xmm0);
最终,将变量b与预设的128bit掩码xmm0的做位与操作结果赋值给c。本实施例中,预设的128bit掩码xmm0的步骤包括如下:首先将128bit掩码{0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3}赋值为常量;然后通过指令__m128ixmm0声明128bit变量xmm0;最终利用SSE指令集的128bit加载指令,将128bit掩码{0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3}常量加载128bit掩码数据至xmm0。
如图4所示,以基因字符A为例,其移位后编码为00100000,和0x3进行数据与操作后,即可得到0x0;以基因字符a为例,其移位后编码为00110000,和0x3进行数据与操作后,同样也可得到0x0;以此类推,使得移位后基因字符串二进制编码执行位与操作按照a/A->0,c/C->1,t/T->2,g/G->3进行二进制编码的转换,得到编码完成的二进制编码串。
本实施例中,步骤4)的详细步骤包括:
4.1)调用BMI2指令集的数据位抽取指令_pext_u64且使用参数0x0303030303030303uL,将数据与操作后的结果前64字节中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列C1;本实施例中,前64字节的紧致编码二进制序列C1的指令具体为:
C1=_pext_u64(*(uint64_t*)buf,0x0303030303030303uL);其中,buf为写入内存中的与0x3进行数据与操作后的结果;
4.2)调用BMI2指令集的数据位抽取指令_pext_u64且使用参数0x0303030303030303uL,将数据与操作后的结果后64字节中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列C2;本实施例中,后64字节的紧致编码二进制序列C2的指令具体为:
C2=_pext_u64(*(uint64_t*)(buf+8),0x0303030303030303uL);其中,buf为写入内存中的与0x3进行数据与操作后的结果。
如图4所示,以基因字符串AaCcTtGg为例,经过紧致编码后,其前64字节的紧致编码二进制序列C1为0x05,后64字节的紧致编码二进制序列C2为0Xaf,从而将128位原始字符数据压缩得到16位紧致编码后的字符数据,压缩后数据占用空间为原来的25%。
本实施例中使用AmazonEC2的C4.large型号机器作测试环境,赋值基因字符序列“actgACTGactgACTG”(四种碱基大小写重复两次,随机模拟基因字符序列),进行109次编码循环,分别采用本实施例的编码方法与现有技术采用IF逐字符判断编码方法(表1中以“IF”表示)、SWITCH逐字符判断编码方法(表1中以“SWITCH”表示)做测试比较,分别比较不做O2编译优化和O2编译优化的结果,结果如表1所示:
表1:采用本实施例编码方法与现有技术编码方法的编码性能比较表。
参见表1可知,采用本实施例的编码方法与与现有技术采用IF逐字符判断编码方法、SWITCH逐字符判断编码方法相比,在不做编译优化的情况下,本实施例约有10倍速度的提高,在进行O2编译优化后,本实施例的速度效率提高在40倍以上。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (5)

1.一种基因字符序列快速编码为二进制序列的编码方法,其特征在于步骤包括:
1)从待编码基因字符序列中取出指定数量个字符串作为当前处理字符串;
2)将当前处理字符串的二进制编码右移1位;
3)将右移1位后的当前处理字符串中的每一个字符与0x3进行数据与操作;
4)分别将数据与操作后的结果中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列;
5)判断待编码基因字符序列是否处理完毕,如果尚未处理完毕,则跳转执行步骤1);否则,结束并退出。
2.根据权利要求1所述的基因字符序列快速编码为二进制序列的编码方法,其特征在于,所述步骤1)中指定数量个字符串具体是指16个字符串。
3.根据权利要求2所述的基因字符序列快速编码为二进制序列的编码方法,其特征在于,所述步骤2)中将当前处理字符串右移1位时,具体是指调用SSE指令集的_mm_srli_epi64指令分别将当前处理字符串的高64位数据、低64位数据同时右移1位。
4.根据权利要求3所述的基因字符序列快速编码为二进制序列的编码方法,其特征在于,所述步骤3)中进行数据与操作时,具体是指将右移1位后的当前处理字符串和预设的128bit掩码调用SSE指令集的_mm_and_si128指令进行数据与操作,所述掩码由16个0x3构成。
5.根据权利要求4所述的基因字符序列快速编码为二进制序列的编码方法,其特征在于,所述步骤4)的详细步骤包括:
4.1)调用BMI2指令集的数据位抽取指令_pext_u64且使用参数0x0303030303030303uL,将数据与操作后的结果前64字节中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列;
4.2)调用BMI2指令集的数据位抽取指令_pext_u64且使用参数0x0303030303030303uL,将数据与操作后的结果后64字节中每一个字符中的最低两位提取组装得到当前处理字符串对应的紧致编码二进制序列。
CN201510884496.8A 2015-12-03 2015-12-03 一种基因字符序列快速编码为二进制序列的编码方法 Active CN105550535B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510884496.8A CN105550535B (zh) 2015-12-03 2015-12-03 一种基因字符序列快速编码为二进制序列的编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510884496.8A CN105550535B (zh) 2015-12-03 2015-12-03 一种基因字符序列快速编码为二进制序列的编码方法

Publications (2)

Publication Number Publication Date
CN105550535A true CN105550535A (zh) 2016-05-04
CN105550535B CN105550535B (zh) 2017-12-26

Family

ID=55829722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510884496.8A Active CN105550535B (zh) 2015-12-03 2015-12-03 一种基因字符序列快速编码为二进制序列的编码方法

Country Status (1)

Country Link
CN (1) CN105550535B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022006A (zh) * 2016-06-02 2016-10-12 广州麦仑信息科技有限公司 一种将基因信息进行二进制表示的存储方法
CN107798219A (zh) * 2016-08-30 2018-03-13 清华大学 将数据进行生物存储并还原的方法
CN106055927B (zh) * 2016-05-31 2018-08-17 广州麦仑信息科技有限公司 mRNA信息的二进制存储方法
WO2019205963A1 (zh) * 2018-04-27 2019-10-31 人和未来生物科技(长沙)有限公司 基因测序质量行数据压缩预处理、解压还原方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004070029A1 (en) * 2003-02-07 2004-08-19 Ajou University Industry Cooperation Foundation Method to encode a dna sequence and to compress a dna sequence
CN102084380A (zh) * 2007-08-02 2011-06-01 何塞·丹尼尔·洛皮斯·洛皮斯 仿真染色体“dna”结构链的电子系统
CN103336916A (zh) * 2013-07-05 2013-10-02 中国科学院数学与系统科学研究院 一种测序序列映射方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004070029A1 (en) * 2003-02-07 2004-08-19 Ajou University Industry Cooperation Foundation Method to encode a dna sequence and to compress a dna sequence
CN102084380A (zh) * 2007-08-02 2011-06-01 何塞·丹尼尔·洛皮斯·洛皮斯 仿真染色体“dna”结构链的电子系统
CN103336916A (zh) * 2013-07-05 2013-10-02 中国科学院数学与系统科学研究院 一种测序序列映射方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055927B (zh) * 2016-05-31 2018-08-17 广州麦仑信息科技有限公司 mRNA信息的二进制存储方法
CN106022006A (zh) * 2016-06-02 2016-10-12 广州麦仑信息科技有限公司 一种将基因信息进行二进制表示的存储方法
CN106022006B (zh) * 2016-06-02 2018-08-10 广州麦仑信息科技有限公司 一种将基因信息进行二进制表示的存储方法
CN107798219A (zh) * 2016-08-30 2018-03-13 清华大学 将数据进行生物存储并还原的方法
CN107798219B (zh) * 2016-08-30 2021-07-13 清华大学 将数据进行生物存储并还原的方法
WO2019205963A1 (zh) * 2018-04-27 2019-10-31 人和未来生物科技(长沙)有限公司 基因测序质量行数据压缩预处理、解压还原方法及系统
CN110428868A (zh) * 2018-04-27 2019-11-08 人和未来生物科技(长沙)有限公司 基因测序质量行数据压缩预处理、解压还原方法及系统
CN110428868B (zh) * 2018-04-27 2021-11-26 人和未来生物科技(长沙)有限公司 基因测序质量行数据压缩预处理、解压还原方法及系统

Also Published As

Publication number Publication date
CN105550535B (zh) 2017-12-26

Similar Documents

Publication Publication Date Title
Szpankowski Average case analysis of algorithms on sequences
CN104753540B (zh) 数据压缩方法、数据解压方法和装置
CN105550535A (zh) 一种基因字符序列快速编码为二进制序列的编码方法
Maruyama et al. An online algorithm for lightweight grammar-based compression
CN103582883A (zh) 具有组格式的可变长度数据的改进型编码和解码
US11178212B2 (en) Compressing and transmitting structured information
CN110046331A (zh) 数据编码方法及装置、存储介质、电子装置
CN109388402A (zh) 基于Android平台的轻量级Josn格式解析工具
CN109495211A (zh) 一种信道编码和解码方法
JP2012085274A (ja) テキストをマトリクスコードシンボルに符号化するコンピュータ実行方法、マトリクスコードシンボルを復号化するコンピュータ実行方法、テキストをマトリクスコードシンボルに符号化するためのエンコーダ、およびマトリクスコードシンボルを復号化するためのデコーダ
CN104243095A (zh) 一种卷积码与线性分组码的码字类型盲识别方法
CN105653506B (zh) 一种基于字符编码转换的gpu内文本处理的方法及装置
CN104090865B (zh) 文本相似度计算方法及装置
RU2470348C2 (ru) Реализуемый компьютером способ кодирования числовых данных и способ кодирования структур данных для передачи в телекоммуникационной системе, основанной на вышеуказанном способе кодирования числовых данных
WO2015116762A1 (en) Optimized data condenser and method
CN100381981C (zh) 表意符号的拼写及编码方法
JP2011145883A (ja) 圧縮装置、方法及びプログラム、並びに展開装置、方法及びプログラム
CN103218349A (zh) Pmw格式文件中plc指令存储规律的解读及转换方法
CN109831544A (zh) 一种应用于电子邮箱地址的编码存储方法及系统
CN103631983A (zh) 一种战术数据报文模拟方法及系统
Rachesti et al. Comparison of Data Compression in Text Using Huffman, Shannon-Fano, Run Length Encoding, and Tunstall Method
Mishra et al. Fast pattern matching in compressed text using wavelet tree
CN110111852A (zh) 一种海量dna测序数据无损快速压缩平台
Lánský et al. Compression of a Dictionary
Giyantara et al. Microcontroller Serial Communication to Analyze Bit Characters

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
CB03 Change of inventor or designer information

Inventor after: Li Gen

Inventor after: Song Zhuo

Inventor after: Ma Chouxian

Inventor before: Li Gen

Inventor before: Song Zhuo