一种基因组数据压缩方法【专利摘要】本发明提供一种基因组数据压缩方法,它使用二代Illumina测序数据进行建模,提取关键信息,利用这些关键信息,在不影响基因组的覆盖度前提下,压缩DNA的数据量。本发明在对数据进行分析之前,对其自身进行数据量压缩,从而大大降低后续分析的资源消耗。【专利说明】-种基因组数据压缩方法
技术领域:
[0001]本发明设及生物信息
技术领域:
,具体设及DNA序列的数据压缩。【
背景技术:
】[0002]目前的二代测序技术,产量不断提高,产生的数据量越来越大,而对运些数据的存储需要消耗大量的计算机资源。在基因组装方面,由于二代测序得到的数据量太大,之前基于传统化C算法的组装方法因消耗计算机资源太大而基本被放弃。在重测序领域,由于数据量的增加,数据比对时间也随之增加。[0003]目前为止,传统的数据压缩,只是将数据压缩成二进制,比如使用gzip,tar运样的压缩工具,并没有对数据量进行压缩,对计算机资源的消耗并没有减少。【
发明内容】[0004]本发明的目的是在对数据进行分析之前,对其自身进行数据量压缩,从而大大降低后续分析的资源消耗,提供一种基因组数据压缩方法,它使用二代Illumina测序数据进行建模,提取关键信息,利用运些关键信息,在不影响基因组的覆盖度前提下,压缩DNA的数据量。[0005]本发明是通过W下技术方案实现的:[0006]本发明是一种基因组数据压缩方法,所述压缩方法包括W下步骤:[0007](1)从二代IIlumina测序数据中提取高频k-mer表;[000引(2)使用高频k-mer表对数据进行压缩。[0009]作为优化,在步骤(1)中,使用JelIyfish软件对二代IIlumina测序数据进行k-mer统计,把频数大于一定频数值的k-mer作为高频k-mer,使用比特文件或GATB开源包,对运些高频k-mer进行存储。[0010]作为优化,所述频数值为3。[001。作为优化,对于k《17的情况,使用一个大小为2G的比特文件(*.bit)来存储高频kmer;而对于k>17的情况,使用GATB开源框架把高频kmer存入文件中(*.h5)。[0012]作为优化,所述步骤(2)包括W下步骤:[0013]2.1在对数据进行压缩之前,读入高频k-mer表(tableA);[0014]2.2建立一张新的k-mer表(tableB);[00巧]2.3对每条数据进行分析,方法如下:[0016]2.3.1将一条数据中所有的k-mer与tableA进行比较,如果存在于tableA,则为高频k-mer,记录下它的高频k-mer数,记为a;[0017]2.3.2判断运条数据中的高频k-mer,属于tableB的数量,记为b;[0018]2.3.3如果b/a>c,c为设置的域值,则认为运条数据为冗余,抛弃运条数据,反之,则认为运条数据可用,则将运条数据中所有的高频k-mer,记录到化bleB中。[0019]作为优化,所述域值为0.9。[0020]本发明的有益效果如下:[0021]1、使用二代11Iumina测序数据,获取高频k-mer表,节省存储空间,实现高效读取。[0022]本方法通过统计k-mer频数,对高频k-mer进行存储,实现了节省存储空间,高效读取的目的。因为二代Illumina数据的质量非常高,在测序深度足够随机的情况下(一般为大约40x基因组大小的数据量),使用JelIyfiSh软件对数据进行kmer统计,可W得到k-mer的分布图(图1)。将频数大于一定值的k-mer(通常取频数大于3),作为高频kmer。对于k《17的情况,使用一个大小为2G的比特文件(*.bit)来存储高频kmer;而对于k>17的情况,使用GATB开源框架把高频kmer存入文件中(*.h5)。[0023]2、使用高频k-mer表,对数据进行压缩,降低对计算机的资源消耗。[0024]数据压缩的核屯、,是判断运条数据是否在之前的数据里出现过,如果出现过,则运条数据为冗余序列,需要抛弃运条数据,从而节约后续的分析资源。【附图说明】[00巧]图1:k-me;r分布图;[0026]将所有的数据打断成长度为k的片断(称为k-mer),横坐标为k-mer频数,纵坐标为该频数的k-mer比例。[0027]图2:本发明流程图。【具体实施方式】[0028]下面结合附图对本发明的实施例进行进一步详细说明:[0029]实施例:[0030]1、从二代Illumina测序数据中提取高频k-mer表,使用JellWish软件对二代IIlumina测序数据进行k-mer统计,把频数大于3的k-mer作为高频k-mer,对于k《17的情况,使用一个大小为2G的比特文件(*.bit)来存储高频kmer;而对于k>17的情况,使用GATB开源框架把高频kmer存入文件中(*.h5)。其中,二代Illumina测序数据表示Illumina公司的测序仪测出的测序数据。[0031]根据上述方法,编写了一个用来提取高频kmer的程序(Graph.pl),该程序的具体操作使用说明如下:[0032][C[0034]假如有很多二代的Illumina测序数据,筛选大约40X的数据,把它们写入一个叫[0fq.lst文件中:[0035][0[003引将结果存入文件:kmer_17.h5[0039]2、使用高频k-mer表对数据进行压缩:[0040]2.1在对数据进行压缩之前,读入高频k-mer表(tableA);[0041]2.2建立一张新的k-mer表(tableB);[0042]2.3对每条数据进行分析,方法如下:[0043]2.3.1将一条数据中所有的k-mer与tableA进行比较,如果存在于tableA,则为高频k-mer,记录下它的高频k-mer数,记为a;[0044]2.3.2判断运条数据中的高频4-111日1',属于化13166的数量,记为13;[0045]2.3.3如果b/a>C,C为设置的域值,C为0.9,则认为运条数据为冗余,抛弃运条数据,反之,则认为运条数据可用,则将运条数据中所有的高频k-mer,记录到化bleB中。[0046]根据上述的方法,编写了一个数据压缩程序(Compress.pl),具体使用说明如下:[0047][0([0049]使用上步中生成的高频k-mer表:kme;r_17.h5,对所有的数据进行压缩,运行W下命令:[(K)加][0051]W上所述的仅是本发明的优选实施方式,应当指出,对于本
技术领域:
中的普通技术人员来说,在不脱离本发明核屯、技术特征的前提下,还可W做出若干改进和润饰,运些改进和润饰也应视为本发明的保护范围。【主权项】1.一种基因组数据压缩方法,其特征在于,所述压缩方法包括以下步骤:(1)从二代Illumina测序数据中提取高频k-mer表;(2)使用高频k-mer表对数据进行压缩。2.根据权利要求书1所述基因组数据压缩方法,其特征在于,在步骤(1)中,使用Jellyfish软件对二代11lumina测序数据进行k-mer统计,把频数大于一定频数值的k-mer作为高频k-mer,使用比特文件或GATB开源包,对这些高频k-mer进行存储。3.根据权利要求书2所述基因组数据压缩方法,其特征在于,所述频数值为3。4.根据权利要求书2所述基因组数据压缩方法,其特征在于,对于17的情况,使用一个大小为2G的比特文件(*.bit)来存储高频k-mer;而对于k>17的情况,使用GATB开源框架把高频k-mer存入文件中(*.h5)。5.根据权利要求书1所述基因组数据压缩方法,其特征在于,所述步骤(2)包括以下步骤:2.1在对数据进行压缩之前,读入高频k-mer表(tableA);2.2建立一张新的k-mer表(tableB);2.3对每条数据进行分析,方法如下:2.3.1将一条数据中所有的k-mer与tableA进行比较,如果存在于tableA,则为高频k-mer,记录下它的高频k-mer数,记为a;2.3.2判断这条数据中的高频k-mer,属于tableB的数量,记为b;2.3.3如果b/a>c,c为设置的域值,则认为这条数据为冗余,抛弃这条数据,反之,则认为这条数据可用,则将这条数据中所有的高频k-mer,记录到tab1eB中。6.根据权利要求书5所述基因组数据压缩方法,其特征在于,所述域值为0.9。【文档编号】G06F19/18GK106021985SQ201610327658【公开日】2016年10月12日【申请日】2016年5月17日【发明人】詹东亮,范崇仪,王鹏飞,刘夏阳,沈仲佶,郝美荣,苏莎【申请人】杭州和壹基因科技有限公司