一种基于二联密码子的测序数据压缩方法

文档序号:10698499阅读:653来源:国知局
一种基于二联密码子的测序数据压缩方法
【专利摘要】本发明公开了一种基于二联密码子的测序数据压缩方法,包括以下步骤:(1)切割;(2)建立散列表;(3)排序;(4)建立霍夫曼树;(5)编码;(6)计算压缩比,算法的压缩比是8M/L。本发明将测序数据的占用的空间减少了非常多,对于大规模的测序数据的存储和传输起到了非常关键的作用,可以节省本地和云端数据的传输时间。
【专利说明】
一种基于二联密码子的测序数据压缩方法
技术领域
[0001] 本发明涉及生物医药,具体是一种基于二联密码子的测序数据压缩方法。
【背景技术】
[0002] 因为测序序列一般非常长,因此数据量非常大。大数据量的传输,会直接导致带宽 的紧张。特别是有些网络不好的情况,因此考虑到使用压缩策略来降低数据传输的量。互联 网上从本地与云端存储到数据流的一切东西都严重依赖压缩算法,离开了它很可能会变得 非常低效。
[0003] 压缩策略的通用流程包括:第一,输入原始数据,它包含我们需要压缩或减小尺寸 的符号序列。第二,这些符号被压缩器编码。第三,输出结果,即编码过的数据。压缩策略有 两类,有损压缩和无损压缩。如果输出数据和输入数据始终完全相同,那么这个压缩方案被 称为无损压缩。否则,它就是一个有损压缩。无损压缩方案通常被用来压缩文本,可执行程 序,或者其他任何需要完全重建数据的地方。有损压缩方案在图像,音频,视频或者其他为 了提高压缩效率而可以接受某些程度信息丢失的场合很有用处。
[0004] 密码子是信使RNA分子中每相邻的三个核苷酸编成的一组,在蛋白质合成时,代表 某一种氨基酸。信使RNA在细胞中能决定蛋白质分子中的氨基酸种类和排列次序。也就是 说,信使RNA分子中的四种核苷酸AGCU的序列能决定蛋白质分子中的20种氨基酸的序列。而 基于二联密码子的测序数据的特殊之处在于数据只有AGCU这四种字符,没有其他字符。数 据存在一定的规律。每三个字符可作为一个整体看待。基于二联密码子的测序数据可以看 成是一大长串AGCU组成的文本序列。测序数据量一般情况下非常庞大,需要一个高压缩比 的压缩策略,可以节省大量的空间,这将极有利于数据的传输和存储。
[0005] 现有的压缩策略没有考虑到这类测序数据的特殊性,比如哈夫曼编码,根据字符 出现的比率的分布特征而进行压缩编码,在字符和编码之间建立明确的一一对应的关系。 哈夫曼编码采用变长二进制编码,将出现比率高的字符用较短的编码,而出现比率低的用 较长编码,从而实现数据压缩。这种压缩策略没有利用基于二联密码子的测序数据的规律。

【发明内容】

[0006] 本发明的目的在于提供一种基于二联密码子的测序数据压缩方法,以解决上述背 景技术中提出的问题。
[0007] 为实现上述目的,本发明提供如下技术方案:
[0008] -种基于二联密码子的测序数据的压缩方法,包括以下步骤:
[0009] (1)输入一个测序数据文件,文件内容包括一大长串ATCG的字符串序列,将待压缩 的每一条测序序列进行切割,每2个密码子,即6个碱基作为模,一个单元为一模,将6个碱基 转化为模的操作称为模操作,对于测序数据的每一条序列进行模操作;
[0010] (2)建立一个散列表,散列表的key是所有无重复的模,每个key对应的value是每 个模在测序序列中出现的次数;
[0011] (3)步骤(2)中得到的散列表中的value值,称之为频次,将散列表按频次排序;
[0012] (4)建立霍夫曼树:利用(3)中排序好的散列表建立霍夫曼树,定义统计频次的数 组为count,每次取出count数组中的值最小的两个分别作为左右孩子,建立他们的父结点, 父结点的频次等于两个孩子结点的频次的和,将父结点的频次值插入到count数组中,继续 寻找count数组中最小的两个,循环操作2*n-1-n次,其中η是不同的字符的数目,最终会建 立一棵霍夫曼树,霍夫曼树的叶子结点对应了散列表中的所有key;
[0013] (5)编码:对霍夫树的每一个叶子结点进行编码,对一个叶子结点,依次向上寻找 一条通往根结点的最短路径,这条路径代表这个叶子结点的编码;假定当前的结点标号是 i,如果i是myHuffmantree[i] .parent的左结点,则该结点到其父结点的路径编码为0,如果 是右结点,则该结点到其父结点的路径编码为1,当向上找到一个结点,它不存在父结点,就 停止,说明该结点已经是根结点,此时对一个叶子结点的编码完成;
[0014] (6)计算压缩比,进行压缩之前,假设字符有M个,如果采用扩展ASCII码,则8位二 进制数表示一个大写字母,因此平均码长是8M位,压缩之后的平均码长L的计算公式:
[0015] 其中,N指的是切割后映射的字典中字符的个数,P1指的是新字符的频率,S1指的是 新字符的码长,因此,算法的压缩比是8M/L。
[0016] 作为本发明进一步的方案:步骤(4)中建立霍夫曼树过程中,首先把count数组里 面的η个值初始化为霍夫曼树的η个叶子节点,他们的孩子节点的标号初始化为-1,父节点 初始化为他本身的标号。
[0017] 与现有技术相比,本发明的有益效果是:将测序数据的占用空间减少了非常多,对 于大规模的测序数据的存储和传输起到了非常关键的作用,可以节省本地和云端的数据传 输时间。
【附图说明】
[0018] 图1为基于二联密码子的测序数据压缩方法中步骤2中建立的字典示意图。
[0019] 图2为基于二联密码子的测序数据压缩方法中步骤3中的排序图。
[0020] 图3为基于二联密码子的测序数据压缩方法中步骤4中的霍夫曼树的结构示意图。
[0021] 图4为基于二联密码子的测序数据压缩方法中步骤5中的霍夫曼树的结构示意图。
[0022] 图5为基于二联密码子的测序数据压缩方法的流程图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施案例仅仅是本发明的一部分实施例,而不是全部的实施例。 基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有 其他实施例,都属于本发明保护的范围。
[0024] 请参阅图1~5,本发明实施例中,一种基于二联密码子的测序数据压缩方法,包括 以下步骤:
[0025] (1)输入一个测序数据文件,假设输入的测序序列文件中的序列是:
[0026] AUGGUGCU⑶CUCCUGCCCCUGCCCCUGCCGACAAGACCAACACCAACACCAACACCAACGUCAAGGCCGCCUG(; G⑶UGGGGUAAGGUC;将此序列按每6个碱基作为模进行切分,如下:AUGGUG I CUGUCUI CCUGCC CCUGCCI CCUGCCIGACAAG IACCAACIACCAACIACCAACIACCAACI (;UCAAG IGCCGCCIUGGGGUIUGGGGU IAAGGUC。共切分成了 9个无重复的模。
[0027] (2)统计上述(1)中的9个模在测序序列中出现的次数,如图1所示;
[0028] (3)按频次进行排序,排序结果如图2所示;
[0029] (4)建立霍夫曼树,如图3所示;
[0030] (5)进行编码,如图4所示;
[0031] (6)计算压缩比,压缩后的测序序列变成了0100 0101 11 11 11 1000 00 00 00 00 1001 1101 Oil Oil 011 1111,压缩之后是6B,压缩之前是15*6 = 90B,压缩比是15。
[0032] 本发明在于基于二联密码子的测序数据压缩策略,利用了测序数据的内在规律, 采用二联密码子压缩,提高了压缩比例。
[0033]从本地将测序数据传到阿里云等云平台上,如果没有进行压缩,每天测序得到的 数据都非常多,数据量也非常庞大,那么测序数据的压缩策略起到很大作用,进行压缩后, 传输时间将大大节省,从而加快了数据的传播,以及数据的分析和处理,同时,也节省了网 络带宽。
[0034]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在 不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论 从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权 利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有 变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0035]此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包 含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当 将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员 可以理解的其他实施方式。
【主权项】
1. 一种基于二联密码子的测序数据压缩方法,其特征在于,包括以下步骤: (1) 输入一个测序数据文件,文件内容包括一大长串ATCG的字符串序列,将待压缩的每 一条测序序列进行切割,每2个密码子,即6个碱基作为模,一个单元为一模,将6个碱基转化 为模的操作称为模操作,对于测序数据的每一条序列进行模操作; (2) 建立一个散列表,散列表的key是所有无重复的模,每个key对应的value是每个模 在测序序列中出现的次数; ⑶步骤⑵中得到的散列表中的value值,称之为频次,将散列表按频次排序; (4) 建立霍夫曼树:利用(3)中排序好的散列表建立霍夫曼树,定义统计频次的数组为 count,每次取出count数组中的值最小的两个分别作为左右孩子,建立他们的父结点,父结 点的频次等于两个孩子结点的频次的和,将父结点的频次值插入到count数组中,继续寻找 count数组中最小的两个,循环操作2*n-卜η次,其中η是不同的字符的数目,最终会建立一 棵霍夫曼树,霍夫曼树的叶子结点对应了散列表中的所有key; (5) 编码:对霍夫树的每一个叶子结点进行编码,对一个叶子结点,依次向上寻找一条 通往根结点的最短路径,这条路径代表这个叶子结点的编码;假定当前的结点标号是i,如 果i是myHuffmantree [ i ]. parent的左结点,则该结点到其父结点的路径编码为0,如果是右 结点,则该结点到其父结点的路径编码为1,当向上找到一个结点,它不存在父结点,就停 止,说明该结点已经是根结点,此时对一个叶子结点的编码完成; (6) 计算压缩比,进行压缩之前,假设字符有Μ个,如果采用扩展ASCII码,则8位二进制 数表示一个大写字母,因此平均码长是8M位,压缩之后的平均码长L的计算公式: ^ = ΣΓ=1Ρ(*5? 其中,Ν指的是切割后映射的字典中字符的个数,Pi指的是新字符的频率,Si指的是新字 符的码长,因此,算法的压缩比是8M/L。2. 根据权利要求1所述的基于二联密码子的测序数据压缩方法,其特征在于,步骤(4) 中建立霍夫曼树过程中,首先把count数组里面的η个值初始化为霍夫曼树的η个叶子节点, 他们的孩子节点的标号初始化为-1,父节点初始化为他本身的标号。
【文档编号】H03M7/40GK106067824SQ201610380177
【公开日】2016年11月2日
【申请日】2016年6月2日 公开号201610380177.8, CN 106067824 A, CN 106067824A, CN 201610380177, CN-A-106067824, CN106067824 A, CN106067824A, CN201610380177, CN201610380177.8
【发明人】赵屹, 卜德超, 赵连鹤
【申请人】洛阳晶云信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1