CN113035278B - 一种基于tpbwt自索引结构滑动窗口压缩方法 - Google Patents
一种基于tpbwt自索引结构滑动窗口压缩方法 Download PDFInfo
- Publication number
- CN113035278B CN113035278B CN202110380222.0A CN202110380222A CN113035278B CN 113035278 B CN113035278 B CN 113035278B CN 202110380222 A CN202110380222 A CN 202110380222A CN 113035278 B CN113035278 B CN 113035278B
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- sequence
- short
- sliding window
- 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
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
- G16B30/10—Sequence alignment; Homology search
-
- 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
- G16B25/00—ICT specially adapted for hybridisation; ICT specially adapted for gene or protein expression
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Medical Informatics (AREA)
- Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Analytical Chemistry (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Chemical & Material Sciences (AREA)
- Genetics & Genomics (AREA)
- Molecular Biology (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于TPBWT自索引结构滑动窗口压缩方法,本发明涉及一种DNA自索引滑动窗口压缩算法。本发明的目的是为了解决现有压缩工具LYZip不能够按照用户需求压缩指定区间数据,压缩耗时长,无法实现多线程压缩问题。一种基于TPBWT自索引结构滑动窗口压缩方法具体过程为:步骤一、数据预处理;步骤二、对步骤一预处理后数据进行分块处理;步骤三、对步骤二分块处理后的每一块进行分流处理;步骤四:将步骤三分流处理后的数据整合为一个压缩文件。本发明用于三代测序DNA数据压缩领域。
Description
技术领域
本发明涉及三代测序DNA数据压缩领域,具体涉及一种DNA自索引滑动窗口压缩算法。
背景技术
随着测序技术的发展,尤其是三代测序技术的出现,使得测序飞速增加并且大量积累主流的压缩技术,如CRAM、Quip压缩二代数据效果较好,压缩三代数据表现较差。基于TPBWT的LYZip压缩工具可以很好地压缩三代DNA数据,达到非常高的压缩比。但是灵活性较差,不能够按照用户需求压缩指定区间数据,压缩耗时长,无法实现多线程压缩。
针对上述问题,提取一种针对三代测序数据,并且能够按照用户需要灵活高效,并且能够保持高压缩比的压缩方法十分必要。
发明内容
本发明的目的是为了解决现有压缩工具LYZip不能够按照用户需求压缩指定区间数据,压缩耗时长,无法实现多线程压缩问题,而提出一种基于TPBWT自索引结构滑动窗口压缩方法。
一种基于TPBWT自索引结构滑动窗口压缩方法具体过程为:
步骤一、数据预处理;
步骤二、对步骤一预处理后数据进行分块处理;
步骤三、对步骤二分块处理后的每一块进行分流处理;
步骤四:将步骤三分流处理后的数据整合为一个压缩文件。
本发明的有益效果为:
基于TPBWT自索引结构滑动窗口压缩方法是以LYZip核心算法为基础,通过比对参考基因序列和指定压缩窗体区间大小,动态的压缩三代重测序DNA测序数据的压缩工具。
滑动窗口压缩算法是以TPBWT自索引结构为基础,针对三代重测序DNA数据的压缩算法。碱基序列的具体压缩过程中不需要引入参考基因组,但是整个工作流在预处理阶段需要输入参考序列,目的是设置间隔标志位。该算法相对于LYZip中提出的TPBWT压缩算法可以按照需求设置滑动窗口大小,实现并发多线程压缩,降低压缩时常;设置滑动窗体区间实现对于指定区间测序序列的动态压缩。相较于LYZip压缩算法,该算法更加灵活,高效,省时。
附图说明
图1为本发明滑动窗口算法流程图;
图2为本发明压缩框架图;
图3为待压缩的三代DNA测序短读序列比对到参考基因组之后的排列图。
具体实施方式
具体实施方式一:结合图1、图2说明本实施方式,本实施方式一种基于TPBWT自索引结构滑动窗口压缩方法具体过程为:
步骤一、数据预处理;
步骤二、对步骤一预处理后数据进行分块处理;
步骤三、对步骤二分块处理后的每一块进行分流处理;
步骤四:将步骤三分流处理后的数据整合为一个压缩文件。
具体实施方式二:本实施方式与具体实施方式一不同的是,所述步骤一中数据预处理;具体过程为:
步骤一为数据预处理,就是将sam格式的数据处理成能够压缩的形式。
步骤一一、将每条待压缩的三代DNA测序短读序列碱基按照起始位置比对到参考基因组参考序列上,将比对上的待压缩的三代DNA测序短读序列中碱基转换为数字‘0’,比对不上的待压缩的三代DNA测序短读序列中碱基变为数字‘1’;
在{0,1}序列转换的过程中,‘1’所对应的单核苷酸变异、插入删除变异或结构变异数据(异常值)放入异常值表中;存储在异常值表中的单核苷酸变异、插入删除变异或结构变异数据和参考序列碱基位点存在对应关系;
所述参考基因组将原本的{A,T,C,G}转换为{0,1}序列,将信息熵从2降低到1;
所述单核苷酸变异、插入删除变异或结构变异数据为比对不上的待压缩的三代DNA测序短读序列中碱基;
比对不上是指在该位置短读序列碱基与参考基因组不同,此时我们认为是一个单核苷酸变异、插入删除变异或结构变异位置。每个位点下都存在多个短读测序序列,对应关系指的是该变异在那一个位点下。同时在该位点下不同变异之间的顺序。
压缩过程中将索引信息(相邻列异常值的解压缩位置)包含在异常值间的相对位置(相对位置更加准确一些,每个位置的确定都需要其他序列作为参考)中;
图3就是一个测度短读,比对到参考基因组上之后就是这样排列,压缩是按照纵向进行的,也就是按照列压缩,竖着压缩而不是横着进行;
参考序列是用来还原“0”表示的碱基序列;
步骤一二、设置参数‘2’,作为间隔信息gap的表示形式;通过引入参考序列,可以用于表示短读序列之间未覆盖的gap(间隔区域);
压缩过程中,引入‘2’占据每个待压缩的三代DNA测序短读序列之间未覆盖的gap(间隔区域)位点;将每条待压缩的三代DNA测序短读序列碱基按照起始位置比对到参考基因组参考序列上,没有被参考基因组参考序列覆盖的短读序列碱基是gap(间隔区域);相当于中间空了一块,这个位置参考基因组下没有短读序列;
将每条待压缩的三代DNA测序短读序列碱基按照起始位置比对到参考基因组参考序列上,比对到参考序列上的短读序列在最小起始位置和最大终止位置之间的所有位点,都必须用字符{0,1,2}表示。通过引入参考基因组能够实现全间隔位点的覆盖,并且可以准确无误的还原出所有压缩前信息。
参考基因组和测序短读序列作为预处理模块的输入数据,通过比对算法将数据转换为按照位点对应短读序列存储的{0,1}集合,同时将短读序列不同类型数据进行简单的分类。对于gap区间单独设置标志信息‘2’作为占位符号。处理过程中提取出异常信息,存储到异常信息表中;
步骤一三、设置参数‘3’,作为每条短读序列的终止标志符;
每条短读序列都需要在终止位置末尾增加标志信息‘3’,表示该短读序列到此结束;此时将上述字符集扩展为{0,1,2,3}。由于原字符集每个字符需要2bit进行表示,所以增加‘3’不会增加bit数。解压缩过程可以根据‘3’来确认一条短读序列解压缩完成。
步骤一四、将每条待压缩的三代DNA测序短读序列碱基对应的质量分数进行区分:
每个短读序列是由许多碱基组成。每个碱基{A,T,C,G}到底是哪个,是在测序过程中确定的。但是测序并非100%准确,所以每个碱基会有一质量分数,表示错误率。
每条待压缩的三代DNA测序短读序列碱基对应一质量分数;
能够比对到参考基因组参考序列的短读序列碱基对应的质量分数(正常质量分数);
不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数(异常质量分数);
步骤一五、每条待压缩的三代DNA测序短读序列格式是sam格式,包含每条待压缩的三代DNA测序短读序列的起始位置信息终止位置信息,长度信息;这些信息是待压缩输入文件中包含的信息。
存储每条待压缩的三代DNA测序短读序列的起始位置和终止位置信息;
最终输出的数据是以一条短读序列为基本存储个体,碱基序列{A,T,C,G}转换为{0,1}并用‘2’占位,用‘3’表示一条短读序列的终止,质量分数按照比对上和比对不上进行分类,异常信息单独存储,整型数据进行精简的数据集合。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是,所述步骤二中对步骤一预处理后数据进行分块处理;具体过程为:
步骤二就是设置好参数,设置滑窗进行固定位置的压缩或者进行并行多数据块并行压缩;
设置滑动窗口参数:滑动窗口区间和滑动窗口大小(都是分块);
压缩分为两个分支:指定区间动态压缩和多数据块并行压缩;
所述指定区间为滑动窗口区间的起始位置和终止位置;
所述多数据块并行压缩为根据滑动窗口大小将全部数据划分为多个子数据;这一过程就相当于窗口在不断的向前滑动;多个子数据就组成了多数据块;
滑动窗口第一个作用是区分接下来的两个功能。第二个作用是将大的数据分成子数据,一次处理仅压缩窗口内的数据。滑动窗口表面意思就是指定一个区间范围,类似于一个窗口。窗口可以按照指定步长往前移动。
预处理得到的数据集结合滑动窗口参数才能够进行自索引结构可变窗口压缩。根据滑动窗口参数的设置可以将整个处理流程分为两个分支:指定区间动态压缩和多数据块并行压缩。
步骤二一、当设置滑动窗口区间的起始位置和终止位置坐标时,程序默认进行指定区间的动态压缩;具体过程为:
设置滑动窗口区间初始的起始位置和终止位置坐标为[start1,end1],处在滑动窗口边缘的短读序列采取边缘取舍策略;处理过程中由于边缘序列问题会对该区间进行一定的修改,扩大滑动窗口区间或者对于超出范围短读进行舍弃。初始设定的滑动窗口较大时,在窗体内部中心位置将会包含大量连续完整的短读序列。但是部分短读序列会处在滑动窗口边界位置,这就导致这部分短读序列无法被滑动窗口完全包含。对于一条短读序列如果仅压缩其部分内容将会造成测序数据有效信息的丢失。所以对于处在边缘的无法完全被滑动窗体覆盖的序列需要采取一定的边缘取舍策略。通过设置边缘取舍参数,边缘取舍策略分为以下2种情况:
1)全部舍弃:舍弃处在滑动窗口边缘的短读序列(舍弃滑动窗口边缘无法全部包含的短读序列);
对于所有无法完全包含的序列全部舍弃,会一定程度的缩小滑动索引区间范围。当测序深度较大的情况下,对于压缩开始位点和压缩终止位点对应的碱基序列符合正态分布,即平均长度的序列最为集中,而恰好在该位置开始或者终止的序列较少。算法可压缩测度短读深度现阶段最大可达到100倍以上,并且三代测度短读序列平均长度高达1000bp以上,所以采取全部舍弃的策略将会极大的提高压缩效率。舍弃的序列数量约等于测序深度,对于全部测序短读序列来说只是极小的一部分,不会影响下游有效信息的利用。
2)全部保留:不断延伸滑动窗口区间,直到全部处在滑动窗口边缘的短读序列都被滑动窗口包含在内。
该过程不会加入新的短读序列,仅仅增大原有的滑动窗口大小。在滑动窗口压缩前仍然保留着碱基序列的长度信息和比对起始位点和终止位点信息,通过此类信息可以快速找到序列的起始位置和终止位置,将完整的序列加入到数据集合中。但是需要注意扩大滑动窗口期间的过程会引入新序列的部分内容,此时不保留这些序列,防止过度延伸问题。
步骤二二、当设置滑动窗口的大小时,程序默认进行多数据块并行压缩;具体过程为:
算法会根据设定滑动窗口的大小将短读序列划分为大小相同的数据块(不包括最后一部分,每次划分不可能保证全都大小相同,所以相同大小的就是能够整除的部分。最后一部分就是剩下的,剩下的个数据块大小和之前不同,处理的时候需要单独进行。一样的处理过程。比如说11分为5份,剩1这个数据块大小和之前不同,处理的时候需要单独进行。一样的处理过程,只是该数据块大小和之前不同。);通过设定线程数,确定一次并行处理多少个数据块;
对于划分出来的短读数据块之间是相互独立,后续变换压缩过程相互之间无关联。划分过程按照区间划分,不保留短读序列的完整性,即可以将一条短读序列切断放入两个数据块中。通常来说一个数据块中必然会包含一定数量的短读序列,但由于引入gap占位符号可能会出现一个数据块全是占位符号的情况,此时仅保留一个占位符号表示此数据块。数据块的切分数量要与并行处理的线程数相对应,这样可以达到快速压缩的效果。当过多的切分整个输入数据,并不能提高压缩速度,同时会对解压缩和数据合并过程造成较大的负担。
所述线程数threads=n,对于短读序列区间范围[start2,end2],滑动窗口大小最佳的选取范围是[(end2-start2)/n,(end2-start2)/(n-1)],向下取整;n为线程数;
滑动窗口大小的选取是任意的,但是充分考虑系统可利用线程数采用上述滑动窗口区间,可以充分利用系统资源,达到最佳压缩速度。
算法在进行压缩前需要设置滑动窗口大小,或者是滑动窗体区间。这是该算法与LYZip压缩算法最为显著的区别。通过设置滑动窗口大小可以使程序默认进行数据分块处理,使压缩过程从串行改为并行处理。通过设置滑动窗体的区间范围默认进行指定区间的短读序列压缩处理。通过设置区间参数可以灵活的对于所需要处理的区间进行压缩。滑动窗体参数和滑动窗体区间参数在压缩过程中必须指定一个,才能发挥出该算法的优势,但两者不能同时存在。默认不设置参数情况下,进行全部短读序列的压缩且不分块。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是,所述步骤三中对步骤二分块处理后的每一块进行分流处理;具体过程为:
步骤三就是之前确定的压缩区间或者是多个数据块并行压缩的具体压缩过程;分为两个步:分流处理和压缩变换。
第一步准备数据,第二步设置参数确定要压缩的子数据。第三步开始采用具体的压缩策略进行压缩。
承接上述步骤,会确定一个滑动窗体区间,称之为整体数据的子区间。算法进行一次仅会处理该子区间的数据,通过分流处理对于不同数据采用不同策略压缩。
步骤三一、对步骤二一或步骤二二分块处理后的每一块中碱基序列进行压缩;
步骤三二、对步骤二一或步骤二二分块处理后的每一块中单核苷酸变异、插入删除变异或结构变异数据进行压缩;
步骤三三、对步骤二一或步骤二二分块处理后的每一块中能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;
步骤三四、对步骤二一或步骤二二分块处理后的每一块中不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;
步骤三五、对步骤二一或步骤二二分块处理后的每一块中短读序列包含的起始位置信息,终止位置信息,长度信息数据进行压缩。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是,所述步骤三一中对步骤二一或步骤二二分块处理后的每一块中碱基序列进行压缩;具体过程为:
指定区间的动态压缩和多数据块并行压缩对于每条待压缩的三代DNA测序短读序列碱基都是按照子区间(子区间为滑动窗口区间)进行压缩处理;
对子区间进行指定区间的动态压缩或多数据块并行压缩为对子区间进行TPBWT转换;
将转换后的压缩数据进行游程编码,使用keys和values将游程编码后的游程段转换为比特数据。
三代重测序数据具备三个显著特点:短读序列长,测序通量大,碱基错误率高。基于TPBWT滑动窗口压缩算法只有在序列较长,覆盖度较大的情况才能更好地设置滑窗,发挥出算法的优势。该算法对于测序通量大的数据有明显的优势。在测序深度较大的情况下,通过TPBWT变换,然后使用游程编码可以最大程度的压缩每一列碱基。该算法在压缩过程中会将质量分数信息提取出来单独进行压缩。由于质量分数测序过程本身就存在一定的错误,所需采用有损压缩形式,使得质量分数数值变换较小,更为固定。这使得压缩该部分的信息熵大大降低,最终能够提高整体的压缩效果。
因为之前的处理,将比对上的碱基转换为了0,将比对不上的碱基转换为了1.所以这里就是对{0,1}进行压缩。包含了对比对不上碱基的压缩,但是此时表示为1.而步骤2就是对于表示为1的具体单核苷酸变异、插入删除变异或结构变异数据的压缩方法。举个例子吧,步骤一压缩的序列是000010,这其中0表示比对上的碱基,这里假设是A;1表示比对不上的碱基,这里假设是T吧。步骤一就是对000010进行压缩,步骤二是对T进行压缩;步骤三一只知道单核苷酸变异、插入删除变异或结构变异数据的位置,不知道具体是{A,T,C,G}中的谁,步骤三二确定单核苷酸变异、插入删除变异或结构变异数据的碱基是谁或者是ATCG的组合中的谁。
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是,所述步骤三二中对步骤二一或步骤二二分块处理后的每一块中单核苷酸变异、插入删除变异或结构变异数据进行压缩;具体过程为:
指定区间的动态压缩对于三代DNA测序短读序列碱基仅压缩子区间单核苷酸变异、插入删除变异或结构变异数据信息;
多数据块并行压缩则需要对三代DNA测序短读序列碱基的全部单核苷酸变异、插入删除变异或结构变异数据压缩处理,此时异常值不参与到数据块划分的过程中,作为一个整体进行压缩处理;
单核苷酸变异、插入删除变异或结构变异数据采用哈希表的方式进行存储,对于单核苷酸变异、插入删除变异或结构变异数据的{A,T,C,G,N}字符采用霍夫曼编码进行压缩。
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是,所述步骤三三中对步骤二一或步骤二二分块处理后的每一块中能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;具体过程为:
指定区间的动态压缩仅压缩子区间的能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据;
数据块并行压缩则需要对全部能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据压缩处理,此时能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据不参与到数据块的划分过程中,作为一个整体进行压缩处理;
能够比对到参考基因组参考序列的短读序列碱基对应的质量分数采用有损压缩策略;
所述有损压缩策略为使用illumina的8级分箱策略进行分箱均值化处理;
步骤三一碱基序列压缩是字符的压缩比如0,1,步骤三三能够比对到参考基因组参考序列的短读序列碱基对应的质量分数压缩是数值的压缩比如25,35,25,是不同的,所以要分成步骤三一和步骤三三的压缩;两者表示形式有差别,采用一种压缩方式会降低最终的压缩比。
其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是,所述步骤三四中对步骤二一或步骤二二分块处理后的每一块中不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;具体过程为:
指定区间的动态压缩仅压缩子区间的不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据;
数据块并行压缩则需要对全部不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据压缩处理,此时不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据不参与到数据块的划分过程中,作为一个整体进行压缩处理;
不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数采用的策略与能够比对到参考基因组参考序列的短读序列碱基对应的质量分数的压缩策略类似;
不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数采用有损压缩策略;
所述有损压缩策略为使用离散化分箱处理。
步骤三二和步骤三四两者表示形式有差别,采用一种压缩方式会降低最终的压缩比;
其它步骤及参数与具体实施方式一至七之一相同。
具体实施方式九:本实施方式与具体实施方式一至八之一不同的是,所述步骤三五中对步骤二一或步骤二二分块处理后的每一块中短读序列包含的起始位置信息,终止位置信息,长度信息数据进行压缩;具体过程为:
指定区间的动态压缩仅处理指定区间的信息,舍弃每个短读序列碱基的起始、终止位置和长度信息,仅保留子区间最小起始位点信息(最小起始位点信息指的是指定区间的第一个短读的起始位置信息);最终只需要保留指定区间一个位置坐标。
对子区间最小起始比对位点信息采用算术编码方式进行压缩;
数据块并行压缩则需要保留划分区间的数量信息(划分区间数量就是指数据块的数量)和最小起始比对信息(最小起始比对信息指的是第一个数据块的第一个短读的起始位置信息),舍弃其他全部信息;最终需要保留第一个数据块的最小比对起始坐标和划分数据块的数量两个整型信息。
对划分区间的数量信息和最小起始比对信息采用算术编码方式进行压缩。
其它步骤及参数与具体实施方式一至八之一相同。
具体实施方式十:本实施方式与具体实施方式一至九之一不同的是,所述步骤四中将步骤三分流处理后的数据整合为一个压缩文件;具体过程为:
将步骤三分流处理后的数据中相同类型的数据放在一起作为一个文件,一共五个类型,得到五个文件,将五个文件压缩为一个整体文件,在整体文件的起始位置添加头文件;
所述五个类型分别为:碱基序列压缩结果、单核苷酸变异、插入删除变异或结构变异数据压缩结果、能够比对到参考基因组参考序列的短读序列碱基对应的质量分数压缩结果、不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数压缩结果和短读序列包含的起始位置信息,终止位置信息,长度信息数据压缩结果;
所述整体文件为2进制文件;
分块之后分为了A1,A2,A3。这里假设分为了三块。然后分流处理就是对其中每块的具体划分,目的是把不同数据类型的数据放在一起处理。以A1为例,分流处理就进一步划分为A1_碱基序列、A1_异常值、A1_质量分数等。
头文件对每一部分在最终压缩文件的起始位置(bit文件中的起始位置)进行记录。这样才能保证后续解压缩工作的顺利进行。
之前分块处理得到一些数据块,然后分流处理又得到一些数据。压缩之后合并到一个文件。解压缩时候看到的全是bit信息,之后能够确定这部分bit信息原本的意思才能够采用正确的策略解压缩还原。所以需要知道他们在压缩文件中,该类数据的范围。我们知道每块数据的起始位置就可以对原文件进行划分,将不同部分切割出来。
其它步骤及参数与具体实施方式一至九之一相同。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (3)
1.一种基于TPBWT自索引结构滑动窗口压缩方法,其特征在于:所述方法具体过程为:
步骤一、数据预处理;
步骤二、对步骤一预处理后数据进行分块处理;
步骤三、对步骤二分块处理后的每一块进行分流处理;
步骤四:将步骤三分流处理后的数据整合为一个压缩文件;
所述步骤二中对步骤一预处理后数据进行分块处理;具体过程为:
设置滑动窗口参数:滑动窗口区间和滑动窗口大小;
压缩分为两个分支:指定区间动态压缩和多数据块并行压缩;
所述指定区间为滑动窗口区间的起始位置和终止位置;
所述多数据块并行压缩为根据滑动窗口大小将全部数据划分为多个子数据;多个子数据就组成了多数据块;
步骤二一、当设置滑动窗口区间的起始位置和终止位置坐标时,进行指定区间的动态压缩;具体过程为:
设置滑动窗口区间初始的起始位置和终止位置的区间范围为[start1,end1],处在滑动窗口边缘的短读序列采取边缘取舍策略;
边缘取舍策略分为以下2种情况:
1)全部舍弃:舍弃处在滑动窗口边缘的短读序列;
2)全部保留:不断延伸滑动窗口区间,直到全部处在滑动窗口边缘的短读序列都被滑动窗口包含在内;
步骤二二、当设置滑动窗口的大小时,进行多数据块并行压缩;具体过程为:
根据设定滑动窗口的大小将短读序列划分为大小相同的数据块;通过设定线程数,确定一次并行处理多少个数据块;
所述步骤三中对步骤二分块处理后的每一块进行分流处理;具体过程为:
步骤三一、对步骤二一或步骤二二分块处理后的每一块中碱基序列进行压缩;
步骤三二、对步骤二一或步骤二二分块处理后的每一块中单核苷酸变异、插入删除变异或结构变异数据进行压缩;
步骤三三、对步骤二一或步骤二二分块处理后的每一块中能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;
步骤三四、对步骤二一或步骤二二分块处理后的每一块中不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;
步骤三五、对步骤二一或步骤二二分块处理后的每一块中短读序列包含的起始位置信息,终止位置信息,长度信息数据进行压缩;
所述步骤三一中对步骤二一或步骤二二分块处理后的每一块中碱基序列进行压缩;具体过程为:
指定区间的动态压缩和多数据块并行压缩对于每条待压缩的三代DNA测序短读序列碱基都是按照子区间进行压缩处理;
对子区间进行指定区间的动态压缩或多数据块并行压缩为对子区间进行TPBWT转换;
将转换后的压缩数据进行游程编码,使用keys和values将游程编码后的游程段转换为比特数据;
所述步骤三二中对步骤二一或步骤二二分块处理后的每一块中单核苷酸变异、插入删除变异或结构变异数据进行压缩;具体过程为:
指定区间的动态压缩对于三代DNA测序短读序列碱基仅压缩子区间单核苷酸变异、插入删除变异或结构变异数据信息;
多数据块并行压缩则需要对三代DNA测序短读序列碱基的全部单核苷酸变异、插入删除变异或结构变异数据压缩处理;
单核苷酸变异、插入删除变异或结构变异数据采用哈希表的方式进行存储,对于单核苷酸变异、插入删除变异或结构变异数据的{A,T,C,G,N}字符采用霍夫曼编码进行压缩;
所述步骤三三中对步骤二一或步骤二二分块处理后的每一块中能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;具体过程为:
指定区间的动态压缩仅压缩子区间的能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据;
数据块并行压缩则需要对全部能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据压缩处理;
能够比对到参考基因组参考序列的短读序列碱基对应的质量分数采用有损压缩策略;
所述有损压缩策略为使用illumina的8级分箱策略进行分箱均值化处理;
所述步骤三四中对步骤二一或步骤二二分块处理后的每一块中不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数进行压缩;具体过程为:
指定区间的动态压缩仅压缩子区间的不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据;
数据块并行压缩则需要对全部不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数数据压缩处理;
不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数采用有损压缩策略;
所述有损压缩策略为使用离散化分箱处理;
所述步骤三五中对步骤二一或步骤二二分块处理后的每一块中短读序列包含的起始位置信息,终止位置信息,长度信息数据进行压缩;具体过程为:
指定区间的动态压缩仅处理指定区间的信息,舍弃每个短读序列碱基的起始、终止位置和长度信息,仅保留子区间最小起始位点信息;
对子区间最小起始比对位点信息采用算术编码方式进行压缩;
数据块并行压缩则需要保留划分区间的数量信息和最小起始比对信息,舍弃其他全部信息;
对划分区间的数量信息和最小起始比对信息采用算术编码方式进行压缩。
2.根据权利要求1所述一种基于TPBWT自索引结构滑动窗口压缩方法,其特征在于:所述步骤一中数据预处理;具体过程为:
步骤一一、将每条待压缩的三代DNA测序短读序列碱基按照起始位置比对到参考基因组参考序列上,将比对上的待压缩的三代DNA测序短读序列中碱基转换为数字‘0’,比对不上的待压缩的三代DNA测序短读序列中碱基变为数字‘1’;
‘1’所对应的单核苷酸变异、插入删除变异或结构变异数据放入异常值表中;存储在异常值表中的单核苷酸变异、插入删除变异或结构变异数据和参考序列碱基位点存在对应关系;
所述参考基因组将{A,T,C,G}转换为{0,1}序列,将信息熵从2降低到1;
所述单核苷酸变异、插入删除变异或结构变异数据为比对不上的待压缩的三代DNA测序短读序列中碱基;
步骤一二、压缩过程中,引入‘2’占据每个待压缩的三代DNA测序短读序列之间未覆盖的gap间隔区域位点;
步骤一三、设置参数‘3’,作为每条短读序列的终止标志符;
步骤一四、将每条待压缩的三代DNA测序短读序列碱基对应的质量分数进行区分:
每条待压缩的三代DNA测序短读序列碱基对应一质量分数;
能够比对到参考基因组参考序列的短读序列碱基对应的质量分数;
不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数;
步骤一五、每条待压缩的三代DNA测序短读序列格式是sam格式,包含每条待压缩的三代DNA测序短读序列的起始位置信息终止位置信息,长度信息。
3.根据权利要求2所述一种基于TPBWT自索引结构滑动窗口压缩方法,其特征在于:所述步骤四中将步骤三分流处理后的数据整合为一个压缩文件;具体过程为:
将步骤三分流处理后的数据中相同类型的数据放在一起作为一个文件,一共五个类型,得到五个文件,将五个文件压缩为一个整体文件,在整体文件的起始位置添加头文件;
所述五个类型分别为:碱基序列压缩结果、单核苷酸变异、插入删除变异或结构变异数据压缩结果、能够比对到参考基因组参考序列的短读序列碱基对应的质量分数压缩结果、不能够比对到参考基因组参考序列的短读序列碱基对应的质量分数压缩结果和短读序列包含的起始位置信息,终止位置信息,长度信息数据压缩结果;
所述整体文件为2进制文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110380222.0A CN113035278B (zh) | 2021-04-08 | 2021-04-08 | 一种基于tpbwt自索引结构滑动窗口压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110380222.0A CN113035278B (zh) | 2021-04-08 | 2021-04-08 | 一种基于tpbwt自索引结构滑动窗口压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113035278A CN113035278A (zh) | 2021-06-25 |
CN113035278B true CN113035278B (zh) | 2023-03-24 |
Family
ID=76456044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110380222.0A Active CN113035278B (zh) | 2021-04-08 | 2021-04-08 | 一种基于tpbwt自索引结构滑动窗口压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113035278B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514375B (zh) * | 2022-11-18 | 2023-03-24 | 江苏网进科技股份有限公司 | 一种缓存数据压缩方法 |
CN115987294B (zh) * | 2023-03-17 | 2023-07-25 | 北京悦知未来科技有限公司 | 一种物联网的多维数据处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831222B (zh) * | 2012-08-24 | 2014-12-31 | 华中科技大学 | 一种基于重复数据删除的差量压缩方法 |
CN109684284A (zh) * | 2018-12-29 | 2019-04-26 | 南方电网科学研究院有限责任公司 | 基于边缘计算的滑动分块重复数据删除方法 |
-
2021
- 2021-04-08 CN CN202110380222.0A patent/CN113035278B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113035278A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113035278B (zh) | 一种基于tpbwt自索引结构滑动窗口压缩方法 | |
KR20190062541A (ko) | 참조 서열을 사용한 생물정보학 데이터의 표현 및 처리를 위한 방법 및 시스템 | |
US20130166518A1 (en) | Compression Of Genomic Data File | |
AU2004307044B2 (en) | Data compression system and method | |
CN110299187A (zh) | 一种基于Hadoop的并行化基因数据压缩方法 | |
CN111628779B (zh) | 一种fastq文件的并行压缩和解压方法及系统 | |
CN1536068A (zh) | 编码脱氧核糖核酸序列的方法和装置及计算机可读介质 | |
CN110428868B (zh) | 基因测序质量行数据压缩预处理、解压还原方法及系统 | |
EP1115089A3 (en) | Method of run-length encoding | |
CN109979537B (zh) | 一种面向多条序列的基因序列数据压缩方法 | |
CN105760706A (zh) | 一种二代测序数据的压缩方法 | |
CN113268459A (zh) | 基于fastq基因大数据的批量分布式压缩方法 | |
CN103746706A (zh) | 基于双游程交替编码的测试数据压缩与解压缩方法 | |
CN111405294B (zh) | 一种图像栅格数据的存储及传输方法 | |
CN111028897B (zh) | 一种基于Hadoop的基因组索引构建的分布式并行计算方法 | |
CN115438114A (zh) | 存储格式转换方法、系统、装置、电子设备及存储介质 | |
KR100537523B1 (ko) | Dna 서열 부호화 장치 및 방법 | |
CN110704408A (zh) | 一种基于聚类的时序数据压缩方法及系统 | |
CN108287985A (zh) | 一种gpu加速的dna序列压缩方法及系统 | |
CN106651972A (zh) | 一种二值图像编码、解码方法及装置 | |
CN110442557B (zh) | 数据压缩及解压缩方法、电子设备和计算机可读存储介质 | |
CN114416751B (zh) | 一种基于倍增位图的rbac优化算法 | |
CN114678074B (zh) | 一种隐藏寻址的dna存储编码设计方法 | |
CN110311687B (zh) | 一种基于集成算法的时序数据无损压缩方法 | |
CN112863600B (zh) | 一种基于外显子区域插入的数据压缩方法 |
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 |