CN116472675A - 用于能自动配置数据压缩框架的系统和方法 - Google Patents
用于能自动配置数据压缩框架的系统和方法 Download PDFInfo
- Publication number
- CN116472675A CN116472675A CN202180078078.3A CN202180078078A CN116472675A CN 116472675 A CN116472675 A CN 116472675A CN 202180078078 A CN202180078078 A CN 202180078078A CN 116472675 A CN116472675 A CN 116472675A
- Authority
- CN
- China
- Prior art keywords
- compression
- attribute
- data
- data file
- configurations
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000013144 data compression Methods 0.000 title description 5
- 238000007906 compression Methods 0.000 claims abstract description 389
- 230000006835 compression Effects 0.000 claims abstract description 389
- 230000006837 decompression Effects 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 30
- 230000015654 memory Effects 0.000 description 19
- 230000001419 dependent effect Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000009466 transformation Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000009472 formulation Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 238000007907 direct compression Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 108090000623 proteins and genes Proteins 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种用于压缩和解压缩数据文件的方法(100),包括:(i)接收(120)用于压缩的数据文件,所述数据文件包括多个不同属性;(ii)识别(130)所述多个不同属性中的第一属性;(iii)选择(140)多个压缩类型和/或压缩配置;(iv)使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来压缩(150)来自所接收的数据文件的针对所识别的第一属性的数据中的至少一些数据;(v)确定(160)所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩;(vi)生成(170)压缩参数数据结构,所述压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置的识别;(vii)压缩(180)来自所接收的数据文件的针对所述第一属性的数据以生成压缩数据文件;并且(viii)存储(190)所述压缩参数数据结构和所述压缩数据文件。
Description
技术领域
本公开内容总体上指向用于使用文件压缩/解压缩系统来压缩数据文件的方法和系统。
背景技术
鉴于许多数据文件的大小不断增长,高效的文件压缩方法和系统变得越来越重要。例如,单个基因组数据文件能够包括大量样本的基因组中的数百万或数十亿个位置的测序结果并带有注释和其他数据属性。例如,变体调用格式(VCF)文件能够包括基因序列变体,其具有包括数据属性的数百万行和许多列。这些数据文件必须被存储很长时间,并且大小非常大,有时会达到100或1000千兆字节。
数据文件的压缩通常包括一个或多个数据压缩器。虽然有许多通用压缩器能够直接应用于数据文件,但是它们的压缩性能通常不是最优的,因为它们没有充分利用数据集内的个体字段的数据的相似性或可预测性来有效地移除数据冗余。因此,一种用于提高压缩比的方法是首先将数据集划分成具有不同特性的字段,然后使用能够充分利用字段的特定数据模型的压缩器个体地压缩字段中的每个字段。然而,这通常要求针对每种文件类型预先确定数据字段及其相关联的压缩器,并且编码过程和解码过程被相应地硬编码在用于压缩和解压缩的软件中。这样的方法的僵化使得它很难适应新兴的数据类型或采用新的算法。
发明内容
一直需要用于对数据文件进行高效和自适应的压缩和解压缩的方法和系统。本公开内容指向用于基于压缩性能使用数据压缩器的自动识别和/或配置来压缩数据文件的创造性方法和系统。文件压缩/解压缩系统接收用于压缩的数据文件,该数据文件包括针对多个不同样本中的每个样本的多个不同属性。该系统识别多个不同属性中的第一属性,并且基于第一属性从预定的多个压缩类型和配置中选择多个不同的压缩类型和/或压缩配置。该系统单独使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来压缩来自所接收的基因组数据文件的针对所识别的第一属性的数据,并且确定所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩。然后,该系统生成压缩参数数据结构,该压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第一属性的压缩的一个压缩类型和/或压缩配置的识别;并且使用所识别的压缩类型和/或压缩配置来压缩来自所接收的基因组数据文件的用于第一属性的数据,以生成压缩的基因组数据文件。然后存储压缩参数数据结构和所压缩的基因组数据文件并且能够将其用于解压缩。
通常,在一个方面,提供了一种用于使用文件压缩/解压缩系统来压缩/解压缩基因组数据文件的方法。所述方法包括:(i)接收用于压缩的数据文件,所述数据文件包括多个不同属性;(ii)识别所述多个不同属性中的第一属性,并且将所识别的第一属性的规范存储在属性参数数据结构中;(iii)基于所识别的第一属性从预定的多个压缩类型和/或压缩配置中选择多个压缩类型和/或压缩配置;
(iv)使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来个体地压缩来自所接收的数据文件的针对所识别的第一属性的数据中的至少一些数据,其中,针对每个个体压缩测量一个或多个度量;(v)基于所述个体压缩中的每个个体压缩的所述一个或多个度量来确定所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩;(vi)生成压缩参数数据结构,所述压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第一属性的压缩的一个压缩类型和/或压缩配置的识别;(vii)使用所识别的压缩类型来压缩来自所接收的数据文件的针对所述第一属性的数据,以生成压缩数据文件;并且(viii)存储所述属性参数数据结构、所述压缩参数数据结构和所述压缩数据文件,其中,所存储的压缩参数数据结构被配置为被检索并用于对所述压缩数据文件的解压缩。
根据实施例,所述方法还包括对所述多个不同属性中的至少第二属性重复所述识别、所述选择、所述压缩和所述确定的步骤,其中,所述压缩参数数据结构包括所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第二属性的压缩的一个压缩类型和/或压缩配置的规范。
根据实施例,所述方法还包括解压缩所存储的压缩数据文件,其中,解压缩包括查询所述压缩参数数据结构以识别用于所述第一属性的解压缩类型。
根据实施例,选择所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置,因为每个压缩类型和/或压缩配置能够压缩来自所接收的数据文件的针对所识别的第一属性的数据。
根据实施例,所述数据文件是基因组数据文件。
根据实施例,所述一个或多个度量包括以下各项中的一项或多项:压缩比,以及用于所述压缩的处理时间。
根据实施例,当对应的压缩相对于所选择的多个压缩类型和/或压缩配置中的其他压缩类型和/或压缩配置包括更高的压缩比和/或更快的处理时间时,压缩类型是最适合的。
根据实施例,所述方法还包括经由用户接口提供关于所生成的压缩参数数据结构和/或所述压缩数据文件的信息。
根据实施例,所述方法还包括经由用户接口向用户提供关于所识别的压缩类型和/或压缩配置中的一个或多个压缩类型和/或压缩配置的信息,使得所述用户能够选择要被应用以压缩属性的压缩器类型和/或配置。
根据第二方面,提供了一种用于压缩/解压缩数据文件的系统。所述系统包括:用于压缩的数据文件,所述数据文件包括多个不同属性;以及处理器,其被配置为:(i)识别所述多个不同属性中的第一属性,并且将所识别的第一属性的规范存储在属性参数数据结构中;(ii)基于所识别的第一属性从预定的多个压缩类型和/或压缩配置中选择多个压缩类型和/或压缩配置;(iii)使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来个体地压缩来自所接收的数据文件的针对所识别的第一属性的数据中的至少一些数据,其中,针对每个个体压缩测量一个或多个度量;(iv)基于所述个体压缩中的每个个体压缩的所述一个或多个度量来确定所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩;(v)生成压缩参数数据结构,所述压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第一属性的压缩的一个压缩类型和/或压缩配置的识别;(vi)使用所识别的压缩类型来压缩来自所接收的数据文件的针对所述第一属性的数据,以生成压缩数据文件;并且(vii)存储所述属性参数数据结构、所述压缩参数数据结构和所述压缩数据文件,其中,所存储的压缩参数数据结构被配置为被检索并用于对所述压缩数据文件的解压缩。
根据实施例,所述系统包括用户接口,所述用户接口被配置为提供关于所生成的压缩参数数据结构和/或所述压缩数据文件的信息。
在各种实施方式中,处理器或控制器可以与一个或多个存储介质(本文中统称为“存储器”,例如,易失性和非易失性计算机存储器(例如,RAM、PROM、EPROM和EEPROM)、软盘、压缩盘、光盘、磁带等)相关联。在一些实施方式中,存储介质可以用一个或多个程序来编码,所述一个或多个程序当在一个或多个处理器和/或控制器上被运行时执行本文所论述的功能中的至少一些功能。各种存储介质可以被固定在处理器或控制器内,或者可以是可转移的,使得被存储在存储介质上的一个或多个程序能够被加载到处理器或控制器中,以便实施本文讨论的各个方面。在本文中使用术语“程序”或“计算机程序”的一般含义,以指代能够用于对一个或多个处理器或控制器进行编程的任何类型的计算机代码(例如,软件或微代码)。
应当理解,以下更加详细讨论的前述概念与额外概念的所有组合(假设这样的概念并不相互矛盾)都被认为是本文公开的发明主题的部分。特别地,出现在本公开内容的结尾的所要求保护的主题的所有组合都被认为是本文公开的发明主题的部分。还应当理解,本文明确采用的术语也可以出现在通过引用而并入的任何公开内容中,其应当被赋予与本文公开内容的特定概念最一致的含义。
参考下文描述的(一个或多个)实施例,各个实施例的这些方面和其他方面将是明显的并且得到阐明。
附图说明
在附图中,贯穿不同的视图,相同的附图标记通常指代相同的部分。而且,附图不一定是按比例绘制的,而是将重点通常放在说明各个实施例的原理上。
图1是根据实施例的用于使用文件压缩/解压缩系统来压缩基因组数据文件的方法的流程图。
图2是根据实施例的文件压缩/解压缩系统的示意图。
图3是根据实施例的数据文件的示意图。
具体实施方式
本公开内容描述了用于数据文件的高效和自适应的压缩的系统和方法的各个实施例。申请人已经认识到并意识到,提供采用基于压缩性能来自动识别和/或配置数据压缩器的数据文件压缩方法和系统将是有益的。数据文件压缩/解压缩系统接收用于压缩的基因组数据文件,该基因组数据文件包括针对多个不同基因组样本中的每个基因组样本的多个不同属性(或数据字段)。该系统识别多个不同属性中的第一属性,并且基于该属性从预定的多个压缩类型和压缩配置中选择多个压缩类型和/或压缩配置,其中,所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置都能够压缩来自所接收的基因组数据文件的针对所识别的第一属性的数据。数据文件压缩系统使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来个体地压缩来自所接收的基因组数据文件的针对所识别的第一属性的数据中的至少一些数据,其中,针对每个个体压缩测量一个或多个度量,所述一个或多个度量包括以下各项中的一项或多项:压缩比,以及所述压缩的处理时间。基于个体压缩中的每个个体压缩的一个或多个度量,该系统确定所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩。根据实施例,当对应的压缩相对于所选择的多个压缩类型和/或压缩配置中的其他压缩类型和/或压缩配置包括更高的压缩比和/或更快的处理时间时,压缩类型是最适合的。然后,该系统生成压缩参数数据结构,所述压缩参数数据结构包括针对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第一属性的压缩的一个压缩类型和/或压缩配置的识别和/或处理指令,并且压缩来自所接收的基因组数据文件的针对第一属性的数据以生成压缩的基因组数据文件。存储压缩参数数据结构和所压缩的基因组数据文件,其中,所存储的压缩参数数据结构被配置为被检索并用于对所压缩的基因组数据文件的解压缩。
根据实施例,本文描述的或设想的新颖的方法和系统提供了用于基于压缩器的性能来针对数据字段自动配置压缩器的框架,并且使得能够明确指定压缩器并将压缩器与压缩数据一起存储。为了访问属性数据,解码器能够基于在与属性相关联的压缩器配置中指定的处理步骤和参数来运行解压缩和逆变换算法。本文描述的或设想的新颖的方法和系统提供了许多优点。例如,该方法和系统提供了为文件定制压缩器配置的灵活性,并且易于采用新的变换和压缩算法。第二,该方法和系统通过识别和提供压缩器配置来适应任何新的文件类型。因为处理指令被包含在压缩器配置中,而不是被硬编码在软件中,所以解码器能够容易地处理文件,而不需要修改代码。第三,压缩器设置的自动配置有助于提高压缩性能,而不需要用户的知识或经验。该方法和系统还提供了许多其他优点。
根据实施例,压缩器配置框架系统包括以下部件中的一项或多项:(i)用于指定压缩器(例如,由数据变换和压缩步骤的序列及其默认参数组成的压缩过程)的统一数据接口;(ii)用于指定数据属性并将其与具有定制参数的压缩器相关联的统一数据接口;(iii)用于基于在相关联的压缩器配置中指定的处理步骤对属性数据进行编码的算法;(iv)用于基于在相关联的压缩器配置中指定的处理步骤对属性数据进行解码的算法;以及(v)用于基于性能来自动确定压缩器配置的机制。
参考图1,在一个实施例中,提供了用于使用文件压缩/解压缩系统来压缩基因组数据文件的方法100的流程图。结合附图描述的方法仅作为示例提供,并且应被理解为不限制本公开内容的范围。文件压缩/解压缩系统能够是本文描述的或设想的任何系统。文件压缩/解压缩系统能够是单个系统或多个不同的系统。
在该方法的步骤110处,提供文件压缩/解压缩系统200。参考图2所描绘的文件压缩/解压缩系统200的实施例,该系统包括处理器220、存储器230、用户接口240、通信接口250和存储装置260中的一项或多项,它们经由一条或多条系统总线212互连。应当理解,图2在某些方面构成了一种抽象,并且系统200的部件的实际组织方式可以不同于所图示的情况并且比所图示的情况更加复杂。另外,文件压缩/解压缩系统200能够是本文描述的或设想的任何系统。在本文中公开了或在其他地方设想了文件压缩/解压缩系统200的其他元件和部件。
根据实施例,文件压缩/解压缩系统200包括文件数据库270,或者与文件数据库270直接或间接通信。除了其他可能的数据之外,文件数据库还包括能够使用文件压缩/解压缩系统200压缩或已经压缩的一个或多个文件。根据实施例,一个或多个文件包括基因组文件,其中,基因组文件包括具有包含数据属性的数百万行和许多列的基因序列变体,其潜在地用于许多不同的基因组样本。文件数据库可以是任何这样的数据库,包括但不限于本文描述的或设想的数据库和系统。
根据实施例,文件压缩/解压缩系统200包括压缩和解压缩算法数据库280,或者与压缩和解压缩算法数据库280直接或间接通信。压缩和解压缩算法数据库包括不同的压缩算法和解压缩算法的库。数据文件系统能够利用这些压缩和解压缩算法来压缩和解压缩数据文件。能够随时将新的压缩算法和解压缩算法添加到数据库。压缩和解压缩算法数据库能够是任何这样的数据库,包括但不限于本文描述的或设想的数据库和系统。
在该方法的步骤120处,文件压缩/解压缩系统接收用于压缩的未压缩数据文件,该数据文件包括针对多个不同样本中的每个样本的多个不同属性。例如,对于基因组数据文件,基因组数据文件包括针对多个不同基因组样本中每个样本的多个不同属性。能够从任何源(包括但不限于文件数据库270,其本身能够是本地数据库或远程数据库)本地或远程地接收数据文件。
在该方法的步骤130处,文件数据系统识别数据文件中的多个不同属性中的第一属性。属性能够是来自数据文件的任何信息。参考图3,在数据文件的一个非限制性示例中,提供了基因组数据文件的部分300,它包括多个列310,其中,每一列是一个属性。文件数据系统能够被配置为识别数据文件内的已知属性,或者能够被配置为预测或估计或者确定数据文件内的新的或未识别的属性。因此,文件数据系统能够被配置为使用各种各样的不同方法来识别数据文件中的多个不同属性中的第一属性。根据实施例,在识别了属性之后,该系统在属性参数数据结构(例如本文描述的属性参数集)中指定属性。
在步骤140处,数据文件压缩/解压缩系统从预定的多个压缩类型、算法和配置中选择多个压缩类型或算法(“压缩器”)和/或压缩配置。压缩器或压缩配置能够包括例如压缩算法的序列和与压缩算法相关联的(一个或多个)参数。能够从任何源(包括但不限于压缩和解压缩算法数据库280,其本身能够是本地数据库或远程数据库)本地或远程地选择压缩类型、算法和压缩配置。根据实施例,至少部分地基于所识别的属性,从预定的多个压缩类型、算法和压缩配置中选择多个压缩类型、算法和压缩配置中的一个或多个压缩类型、算法和压缩配置。例如,可以基于压缩器的能力来选择压缩器或配置,以压缩来自所接收的数据文件的针对所识别的第一属性的数据。因此,该系统可以优先识别能够压缩第一属性数据的压缩器或配置,并且/或者可以优先排除不能压缩第一属性数据的压缩器。
在步骤150处,文件数据系统使用所识别的压缩器来压缩数据。根据实施例,文件压缩/解压缩系统个体地压缩第一属性数据。多个压缩器的这种个体压缩能够顺序地执行或同时地执行。根据实施例,每个压缩器仅压缩第一属性数据的子集,其中,该子集针对每个压缩器是完全相同的子集,以便允许对多个压缩器之间的压缩度量的更客观的比较。根据另一实施例,每个压缩器压缩所有的第一属性数据。
根据实施例,文件压缩/解压缩系统测量或者获得或识别针对由每个压缩器进行的每个个体压缩的一个或多个压缩度量。这使得能够客观地比较多个压缩器之间的压缩性能,并且针对第一属性数据选择优选的压缩器。根据实施例,压缩度量能够是压缩比、处理时间、压缩准确度和/或任何其他压缩度量。
在该方法的步骤160处,文件压缩/解压缩系统使用所测量或获得的度量来确定所选择的多个压缩类型、算法或压缩配置中的哪个压缩类型、算法或压缩配置最适合用于压缩。因此,文件压缩/解压缩系统比较、排列或利用与每个个体压缩器相对应的度量,并且选择优选的压缩器。例如,压缩器或配置在以下情况下可以最适合用于压缩或优先用于压缩:相对于所选择的多个压缩类型和/或压缩配置中的其他压缩类型和/或压缩配置,该压缩或配置包括更高或最佳的压缩比和/或更快的处理时间。根据第一实施例,文件压缩/解压缩系统被配置为选择具有最佳压缩比的压缩器。根据第二实施例,文件压缩/解压缩系统被配置为选择具有最快的压缩或处理时间的压缩器。根据第三实施例,文件压缩/解压缩系统被配置为选择具有压缩比与压缩或处理时间的最佳组合的压缩器。这些配置能够被预先编程、能够被学习或者能够由系统的用户来确定等。
根据实施例,文件压缩/解压缩系统对一个或多个额外的属性重复这些识别、选择、压缩和确定的步骤。例如,该系统能够被配置为针对在数据文件内找到的一些或所有属性识别优选的压缩器。
在该方法的步骤170处,文件压缩/解压缩系统生成压缩参数数据结构,例如,压缩参数数据文件。根据实施例,所生成的压缩参数数据结构包括对针对至少第一识别的属性所选择的压缩器和/或压缩配置的识别和/或(一个或多个)规范,并且任选地包括对针对数据文件中的多个属性选择的(一个或多个)压缩器和/或(一个或多个)压缩配置的识别(例如,针对多个属性指定压缩器的使用)。压缩参数数据文件能够包括利用压缩器所必需的任何信息,包括压缩器设置和其他信息。
在该方法的步骤180处,文件压缩/解压缩系统使用所识别的(一个或多个)压缩器和/或(一个或多个)压缩配置来压缩来自所接收的数据文件的数据以生成压缩数据文件。因此,这能够包括对文件中的第一属性数据、针对多个属性的数据或针对所有属性的数据进行压缩。一旦该系统生成了压缩数据文件,就能够立即使用该文件,例如发送或传输或使用该压缩文件,或者能够将该压缩文件存储在本地或远程存储装置中,以用于该方法的其他步骤。许多其他选项是可能的。
在该方法的步骤190处,存储所生成的压缩参数数据结构,使得所存储的文件能够被检索并用于对压缩数据文件的解压缩。压缩参数数据结构能够被存储在远程或本地数据库中,该远程或本地数据库能够是文件压缩/解压缩系统200的部件或者与文件压缩/解压缩系统200通信。例如,能够将压缩参数数据结构与压缩数据文件一起存储,或者与压缩数据文件互为引用地一起存储。
参考图2,在一个实施例中,图2是文件压缩/解压缩系统200的示意图。系统200可以是本文描述的或设想的任何系统,并且可以包括本文描述的或设想的任何部件。应当理解,图2在某些方面构成了一种抽象,并且系统200的部件的实际组织方式可以不同于所图示的情况并且比所图示的情况更加复杂。
根据实施例,系统200包括处理器220,处理器220能够运行在存储器230或存储装置260中存储的指令或者处理数据以例如执行该方法的一个或多个步骤。处理器220可以由一个或多个模块形成。处理器220可以采取任何合适的形式,包括但不限于微处理器、微控制器、多个微控制器、电路、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、单个处理器或多个处理器。
存储器230能够采取任何合适的形式,包括非易失性存储器和/或RAM。存储器230可以包括各种存储器,例如,L1、L2或L3高速缓冲存储器或系统存储器。正因如此,存储器230可以包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、闪速存储器、只读存储器(ROM)或其他类似的存储器设备。除了别的以外,存储器还能够存储操作系统。处理器使用RAM来临时存储数据。根据实施例,操作系统可以包含代码,所述代码在由处理器运行时控制系统200的一个或多个部件的操作。显而易见的是,在处理器以硬件实施本文描述的功能中的一种或多种功能的实施例中,可以省去在其他实施例中被描述为与这样的功能相对应的软件。
用户接口240可以包括一个或多个用于实现与用户通信的设备。用户接口能够是允许传送和/或接收信息的任何设备或系统,并且可以包括用于接收用户命令的显示器、鼠标和/或键盘。在一些实施例中,用户接口240可以包括命令行接口或图形用户接口,可以经由通信接口250将命令行接口或图形用户接口呈现给远程终端。用户接口可以与该系统的一个或多个其他部件处于一处,或者可以位于远离该系统的位置,并且经由有线和/或无线通信网络进行通信。
通信接口250可以包括一个或多个用于实现与其他硬件设备通信的设备。例如,通信接口250可以包括被配置为根据以太网协议进行通信的网络接口卡(NIC)。另外,通信接口250可以实施用于根据TCP/IP协议进行通信的TCP/IP栈。针对通信接口250的各种替代或额外的硬件或配置将是显而易见的。
存储装置260可以包括一个或多个机器可读存储介质,例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备或类似的存储介质。在各个实施例中,存储装置260可以存储用于由处理器220运行的指令或者处理器220可以对其操作的数据。例如,存储装置260可以存储用于控制系统200的各种操作的操作系统261。
显而易见的是,被描述为在存储装置260中存储的各种信息可以额外地或替代地被存储在存储器230中。在这方面,存储器230也可以被认为构成存储设备,并且存储装置260可以被认为是存储器。各种其他布置将是显而易见的。另外,存储器230和存储装置260都可以被认为是非瞬态机器可读介质。如本文所使用的术语“非瞬态”将被理解为排除瞬态信号,而是包括所有形式的存储,包括易失性存储器和非易失性存储器这两者。
虽然系统200被示为针对每个描述的部件包括一个部件,但是在各个实施例中,各个部件可以成倍增加。例如,处理器220可以包括多个微处理器,所述多个微处理器被配置为独立地运行本文描述的方法,或者被配置为执行本文描述的方法的步骤或子例程,使得多个处理器协作来实现本文描述的功能。另外,在云计算系统中实施系统200的一个或多个部件的情况下,各个硬件部件可以属于单独的物理系统。例如,处理器220可以包括第一服务器中的第一处理器和第二服务器中的第二处理器。许多其他变化和配置是可能的。
根据实施例,文件压缩/解压缩系统200包括文件数据库270,或者与文件数据库270直接或间接通信。除了其他可能的数据之外,文件数据库还包括能够使用文件压缩/解压缩系统200压缩或已经压缩的一个或多个文件。根据实施例,一个或多个文件包括基因组文件,其中,基因组文件包括具有包含数据属性的数百万行和许多列的基因序列变体,其潜在地用于许多不同的基因组样本。
根据实施例,文件压缩/解压缩系统200包括压缩和解压缩算法数据库280,或者与压缩和解压缩算法数据库280直接或间接通信。压缩和解压缩算法数据库包括不同的压缩算法和解压缩算法的库。数据文件系统能够利用这些压缩和解压缩算法来压缩和解压缩数据文件。能够随时将新的压缩算法和解压缩算法添加到数据库。
根据实施例,系统200的存储装置260可以存储一个或多个算法、模块和/或指令,以执行本文描述的或设想的方法的一种或多种功能或一个或多个步骤。例如,除了其他指令或数据之外,存储装置260还可以包括属性识别指令262、压缩器制定指令263、压缩器选择指令264、存储指令265和/或报告指令266。
根据实施例,属性识别指令262指导该系统识别系统接收的数据文件中的多个不同属性中的一个属性。属性能够是来自数据文件的任何信息。文件数据系统能够被配置为识别数据文件内的已知属性,或者能够被配置为预测或估计或者确定数据文件内的新的或未识别的属性。因此,文件数据系统能够被配置为使用各种各样的不同方法来识别数据文件中的多个不同属性中的第一属性。
根据实施例,压缩器制定指令263指导该系统从预定的多个压缩类型、算法和/或(一个或多个)压缩配置中选择多个压缩器。能够从任何源(包括但不限于压缩和解压缩算法数据库280)本地或远程地选择压缩类型、算法和/或(一个或多个)压缩配置。压缩器制定指令263还指导该系统使用所识别的压缩器和/或(一个或多个)压缩配置来个体地压缩一些或所有属性数据。多个压缩器的这种个体压缩能够顺序地执行或同时地执行。根据实施例,每个压缩器仅压缩第一属性数据的子集,其中,该子集针对每个压缩器是完全相同的子集,以便允许对多个压缩器之间的压缩度量的更客观的比较。根据另一实施例,每个压缩器压缩所有的第一属性数据。
根据实施例,压缩器制定指令263还指导该系统测量或者获得或识别针对由每个压缩器进行的每个个体压缩的一个或多个压缩度量。这使得能够客观地比较多个压缩器和/或(一个或多个)压缩配置之间的压缩性能,并且针对第一属性数据选择优选的压缩器和/或压缩配置。根据实施例,压缩度量能够是压缩比、处理时间、压缩准确度和/或任何其他压缩度量。
根据实施例,压缩器选择指令264指导该系统使用测量或获得的度量来确定所选择的多个压缩类型、算法和/或(一个或多个)压缩配置中的哪个压缩类型、算法和/或压缩配置最适合用于压缩。文件压缩/解压缩系统能够比较、排列或利用与每个个体压缩器和/或压缩配置相对应的度量,并且选择优选的压缩器和/或压缩配置。例如,压缩器和相关联的配置在以下情况下可以最适合用于压缩或优先用于压缩:相对于所选择的多个压缩类型中的其他压缩类型,该压缩包括更高或最佳的压缩比和/或更快的处理时间。根据实施例,能够通过用户接口将不同的压缩器配置和对应的度量呈现给用户,以便促进手动选择要应用于属性的压缩器。
根据实施例,存储指令265指导该系统生成压缩参数数据结构,例如,压缩参数数据文件。根据实施例,所生成的压缩参数数据结构包括对所选择的用于至少第一识别属性的压缩器和/或(一个或多个)压缩配置的识别和/或规范。压缩参数数据文件能够包括利用压缩器所必需的任何信息,包括压缩器设置和其他信息。存储指令265还能够指导该系统存储所生成的压缩参数数据结构,使得所存储的文件能够被检索并用于对压缩数据文件的解压缩。压缩参数数据结构能够被存储在远程或本地数据库中,该远程或本地数据库能够是文件压缩/解压缩系统200的部件或者与文件压缩/解压缩系统200通信。例如,能够将压缩参数数据结构与压缩数据文件一起存储,或者与压缩数据文件互为引用地一起存储。
根据实施例,报告指令266指导该系统经由该系统的用户接口240提供关于压缩、数据文件和/或压缩器的信息。所提供的信息能够是本文描述的或设想的任何信息。该系统可以经由任何机制向用户提供信息,包括但不限于视觉显示、听觉通知、文本消息、电子邮件、页面或任何其他通知方法。
用于指定压缩器的统一接口
根据实施例,文件压缩/解压缩系统包括压缩器参数集。压缩器参数集是包含压缩器配置(包括编码和解码属性数据所要求的所有指令和默认参数)的数据结构,并且应当与压缩数据一起存储。每个压缩器配置都带有一个唯一的ID(以用于指定其与属性的关联)以及压缩器步骤的序列,每个步骤都由以下元素中的一个或多个元素组成:
(i)压缩器步骤的唯一ID。
(ii)要在该步骤中应用的算法的类型和ID。根据实施例,有两大类算法:变换和压缩,它们涉及改变数据表示的格式,以及借助于概率建模将固定长度的符号转换成压缩的比特流。算法ID是引用指定类型的已知算法的预定义代码。为了处理数据,必须安装引用的所有算法并使编码器或解码器可以访问这些算法。
(iii)算法的默认参数列表。每个参数由参数名称、数据类型、参数中的值的数量以及(一个或多个)参数值组成。
(iv)算法的输入变量数量和输入变量名称。注意,变量名称仅用于引用要从一个压缩器步骤传递到另一个压缩器步骤的数据对象。对于算法来说,识别的是输入数据对象的顺序,这是由输入变量名称的顺序指定的。对于第一步骤,由于输入数据必须是原始属性值,因此不需要指定输入变量名称,并且输入变量的数量能够被设置为0。从第二步骤开始,每个输入变量名称必须与前面步骤中的输出变量名称相匹配。
(v)用于保持由算法生成的数据对象的有序列表的输出变量的数量,以及每个输出变量的状态和名称。如果一个输出变量不要求进一步的处理,那么它的状态是完整的,并且它的变量名称能够省去,因为数据对象应当直接进入压缩器的输出缓冲区。如果输出变量需要由后续步骤处理,那么变量状态是不完整的且必须指定变量名称。
(vi)运行算法需要其值的依赖属性的数量。应当在相关联的属性的配置中提供依赖属性的ID。
参考表1,表1是压缩器参数集的示例语法,其捕获了如上所述的压缩器配置的关键元素,并且在该表之后提供了关于语义的解释。请注意,能够改变个体字段的名称、排序和数据类型,而不会对功能产生任何影响。关于数据类型的符号,u(n)表示使用n位的无符号整数;u(v)表示其位数取决于其他语法元素的值的无符号整数;f(n)表示使用n位的固定模式位串;并且st(v)表示具有可变长度的空终止字符串。
表1压缩器参数集语法
根据实施例,以下是压缩器参数集语义:
compressor_ID是注释表内的压缩器的唯一识别符。请注意,值0是为无压缩而保留的。
n_compressor_steps是该压缩器配置中的处理步骤的总数。对于每个压缩器步骤i,指定以下字段:(i)compressor_step_ID[i]是压缩器步骤的识别符;(ii)algorithm_ID[i]是要在该步骤中应用的算法的识别符。每个算法类型都应当有自己的ID地图;(iii)use_default_pars[i]是一个标志,如果将其设置为1,那么其指示使用了算法的默认参数,因此不需要改变参数。
n_in_vars[i]是针对算法的输入变量的数量。对于第一步骤(i==0),应当将它的值设置为0,因为输入必须是原始属性值。
对于算法的每个输入变量j,指定以下字段:(i)in_var_ID[i][j]是算法已知的输入变量的预定义ID;以及(ii)prev_step_ID[i][j]、prev_out_var_ID[i][j]分别是前一压缩器步骤的ID和对应的输出变量的ID,该对应的输出变量包含要通过由in_var_ID[i][j]指定的输入变量传递给当前算法的数据。
n_completed_out_vars[i]是算法的已完成输出变量的数量,该输出变量不要求任何进一步的处理就能够直接进入压缩器的输出缓冲器。
completed_out_var_ID[i][j]指定算法已知的输出变量的预定义ID,该输出变量是已完成的并且不要求任何进一步的处理。
nesting_zero_bit是一个被设置为0的位,根据需要将其插入以确保数据结构的字节对齐。
根据实施例,算法参数是用于指定由algorithm_ID引用的算法的参数设置的数据结构。参考表2,表2是针对算法参数的示例语法。
表2算法参数语法
根据实施例,以下是算法参数语义:
n_pars是运行由algorithm_ID引用的算法时需要修改的参数的数量。其值不得大于算法中定义的参数的数量。
对于每个被修改的参数i,下列字段是必需的:(i)par_ID[i]是算法中定义的参数之一的ID;(ii)par_type[i]是参数的数据类型ID;(iii)par_num_array_dims[i]是参数的维度数,如果是标量值则为0;(iv)par_array_dims[i][]包含元素,每个元素指定数组维度的大小。如果attribute_num_array_dims=0,那么省去它;(v)par_val[i][][]包含(一个或多个)参数值。它的维度数等于(par_array_dims+1),并且任何额外的维度数都能够省去。
用于指定数据属性和相关联的压缩器配置的统一接口
根据实施例,文件压缩/解压缩系统包括属性参数集。属性参数集是包含属性配置的数据结构,包括一些基本信息和用于处理属性的压缩器设置。以下是关键元素:(i)属性的唯一ID和名称;(ii)数据类型信息,以及属性的默认值和缺失值;(iii)用于属性处理的压缩器的ID,它必须是压缩器参数集中定义的压缩器ID之一;(iv)对压缩器步骤的选定参数的修改;以及(v)因变量(属性或描述符)的ID,一些压缩器步骤需要其数据进行处理。
参考表3,表3是属性参数集的示例语法,其捕获了如上所述的属性配置的关键元素,并且在该表之后提供了关于语义的解释。请注意,能够修改个体字段的名称、排序和数据类型,而不会对功能产生任何影响。数据类型符号与表1相同。属性参数集包含额外属性的定义,包括它们的参数、分组、排序和相关联的压缩器。
表3属性参数集语法
根据实施例,以下是属性参数集语义:
attribute_ID是属性的识别符,在注释参数集中是唯一的。
attribute_name_len是属性名称的长度。
attribute_name是属性名称,其长度为attribute_name_len。
attribute_type指定属性的数据类型。
attribute_num_array_dims指定属性条目的数组维度数,如果是标量值则为0。
attribute_array_dims[]包含元素,每个元素指定数组维度的大小。如果attribute_num_array_dims=0,那么省去它。
attribute_default_value是属性的默认值(即,当排除了大多数等于默认值的值时,它能够用于稀疏编码)。
attribute_missing_value是属性的缺失值,其用于在解码过程后的输出中代替空值。
compressor_ID是用于处理当前属性的compressor_parameter_set中定义的compressor_ID。
n_steps_with_dependencies是compressor_ID引用的压缩器中涉及因变量的步骤的数量。
对于需要指定(一个或多个)因变量的每个压缩器步骤i:(i)compressor_step_ID[i]是压缩器步骤的ID;以及(ii)n_dependencies[i]是压缩器步骤的算法所要求的因变量的数量。
对于算法的每个因变量j;(i)dependency_var_ID[i][j]是算法已知的因变量的预定义ID;(ii)dependency_is_attribute[I][j]是一个标志,如果将其设置为1,那么其指示依赖性数据被存储在属性中;否则,依赖性数据被存储为描述符;以及(iii)dependency_ID[i][j]指定包含依赖性数据的属性或描述符的ID。注意,ID的长度对于属性是16位,对于描述符是8位。
nesting_zero_bit是一个被设置为0的位,根据需要将其插入以确保数据结构的字节对齐。
基于压缩器配置的编码算法
根据实施例,原始属性数据的编码是通过顺序地运行相关联的压缩器配置中定义的压缩器步骤来完成的。编码算法概述如下:
1、检索正在处理的属性及其相关联的压缩器的配置(参数集)。
2、通过用属性配置中特定于属性的参数值覆写来自压缩器配置的默认参数值来获得针对属性定制的压缩器设置。
3、从第一步骤到最后的步骤序列地运行每个压缩器步骤。对于每个压缩器步骤i:
a.使用算法ID来查找转换/压缩算法。
b.如果找不到算法ID,那么提示用户允许通过安全传输通道从经过认证的软件存储库中下载对应的算法并安装该算法。
c.如果针对该步骤定义了任何因变量,那么从由dependency_is_attribute[i][]和dependency_ID[i][]指定的对应的属性或描述符中获得因变量的解码数据。
d.使用参数值和与该步骤相关联的因变量的数据对象,对输入变量的数据对象应用变换/压缩算法。如果这是第一步骤,那么原始属性数据是唯一的正在处理的输入数据对象。所生成的输出由数据对象及其对应的变量ID的列表组成。
e.如果输出变量被指定为已完成,那么它的数据对象应当被放在压缩器的输出缓冲区中。否则,它应当被存储在数据地图中,以便后续步骤通过其步骤和变量ID对其进行查找来进行进一步处理。注意,每个编码的数据块/对象都是使用本文指定的typed_data结构来存储的,以保持其数据类型和数组形式。
f.对于最后的步骤,返回输出缓冲区的内容,它是编码块的级联。
表4类型化数据语法
根据实施例,在表5中提供了基于相关联的压缩器配置的上述属性数据编码算法的伪代码。
表5属性数据编码算法的伪代码
基于压缩器配置的解码算法
根据实施例,文件压缩/解压缩系统包括属性解码过程。对压缩属性数据的解码涉及通过从最后的步骤开始到第一步骤执行算法的逐步反向操作来反转相关联的压缩器配置中定义的压缩器步骤。
解码算法概述如下:
1、检索正在处理的属性及其相关联的压缩器的配置(参数集)。
2、从压缩属性流中提取一个或多个编码块,每个编码块对应于压缩器步骤中定义的完整输出变量。每个编码块都是使用如表4中指定的typed_data结构来存储的,以保留其数据类型和数组形式。
3、以反向顺序执行每个压缩器步骤的反向操作,从最后的步骤开始,直到到达第一步骤。对于每个压缩器步骤i:
a.从上述步骤2中的编码块或从其上游解码步骤的(一个或多个)输出变量中收集当前步骤的所有输入变量数据。
b.如果针对当前步骤定义了任何因变量,那么从由dependency_is_attribute[i][]和dependency_ID[i][]指定的对应的属性或描述符中获得因变量的解码数据。
c.从压缩器参数集中检索对针对当前步骤的默认参数设置的任何改变。
d.使用相关联的参数设置和任何因变量数据对输入变量数据应用针对当前步骤指定的算法的反向操作。
e.如果没有到达第一步骤,那么存储输出变量数据,以供后续的解码步骤使用步骤ID和变量ID的对作为查找的关键字来进行进一步处理。
f.如果已经到达第一步骤,那么填充任何缺失值,并且将反向操作的输出变量数据返回为由压缩器解码的属性数据。
下表提供了基于相关联的压缩器配置的属性解码过程的步骤。请注意,attribute_stream的初始值是其索引所引用的图块中的编码属性数据。在与属性相关联的压缩器ID所引用的压缩器参数集中定义代码内未声明或初始化的其他变量。
表6属性解码过程
用于自动确定压缩器配置的机制
虽然对于已知的和流行的文件类型,一组数据压缩专家能够预先定义压缩器配置并且社区能够采用该压缩器配置,但是有时需要指定压缩器配置,例如,当处理新的或专用的文件类型时,或者当已知类型的文件允许包括尚未规划的属性时。一种可能的方式是让用户手动指定压缩器配置,也许借助于提供不同选项和解释的图形工具。然而,这种方法要求很多关于数据压缩的用户知识和经验,并且经常导致次优配置。
因此,提供了一种用于基于性能来自动确定压缩器配置的机制。该系统能够包括可供选择的可用的变换和压缩算法的列表,并且对于每种算法,该算法能够处理的数据类型以及算法之间的可能联系是已知的。该机制能够以如下方式工作。对于文件中的每个属性:
1、了解可用的算法和其他约束条件,例如,压缩器步骤的最大允许数量和步骤序列中的禁止循环,识别属性的所有可能的压缩器配置。
2、利用压缩比和处理时间等度量来评估每个压缩器配置的性能。它能够在被压缩文件的数据子集上完成,也可以在训练文件上完成,以便为特定文件类型构建压缩器配置模板。为了加速该过程,能够并行运行该评估。
3、基于性能准则为该属性选择最佳的压缩器配置,例如,在所有配置中具有最高压缩比和第一个四分位数内的处理时间的压缩器配置。
在为每个属性选择最佳压缩器配置之后:
4、生成包含处理文件所需的所有指令和参数的属性和压缩器参数集数据结构。
5、如果所生成的属性和压缩器配置要应用于相同类型的其他文件,那么能够将它们的数据结构存储在存储库中,并且通过文件类型或文件扩展名进行查找以供将来使用。
6、为了压缩文件,编码器能够使用所生成的配置对每个属性应用前述编码算法,并且将配置数据结构与压缩的属性数据一起存储。
7、为了解码压缩文件,解码器能够使用文件附带的配置数据对每个属性应用前述解码算法。
示例1-针对稀疏表达数据的压缩器配置
以下是应用属性和压缩器配置来压缩稀疏单细胞RNA表达数据的非限制性示例。评估了两种压缩器配置。
表7用于压缩单细胞表达数据的压缩器配置1
对于表7中总结的压缩器配置1,表达值的输入矩阵首先经历稀疏变换而生成三个输出变量:row_idx、col_idx和value,它们只登记具有非零值的细胞。然后,对步骤1中的输出变量中的每个输出变量独立应用BSC压缩,从而产生由三个数据块组成的编码数据流,这三个数据块按照在压缩器步骤中定义它们的顺序级联在一起。
表8用于压缩单细胞表达数据的压缩器配置2
对于表8中总结的压缩配置2,像第一配置一样,表达值的输入矩阵首先经历稀疏变换而生成三个输出变量:row_idx、col_idx和value。对row_idx应用德尔塔变换以生成在变量row_idx_delta中存储的增量值,然后通过BSC算法对其进行压缩。对col_idx应用行程编码(RLE)以生成两个输出变量:col_idx_val和col_idx_count,然后通过BSC对它们进行独立压缩。BSC直接压缩第一步骤中value变量中的数据。这将产生由四个数据块级联而成的编码数据流,如在压缩器步骤中定义的那样。
为了评估性能,将两种压缩器配置应用于以Market Matrix格式的文件存储的单细胞RNA表达数据,压缩前大小为152MB。经过Gzip和BSC的直接压缩,文件大小分别变成了47MB和42MB。
表9总结了在使用编码算法应用压缩器配置1和2之后的各种数据大小。参考通过BSC的直接压缩后的文件大小42MB,压缩器配置1和2的压缩比分别为5.19和3.68。因为压缩器配置1在压缩比方面具有更好的性能,所以通常应当选择它来用于对稀疏表达数据的压缩。
表9针对压缩器配置1和2的压缩数据大小
该示例表明,相对于现有技术的方法(例如通过BSC进行的直接压缩),该方法显著减小了压缩数据文件的大小。这改进了文件压缩/解压缩系统的功能并提高了效率,并且彻底改变了计算机系统或数据库的存储能力。另外,当处理包括针对一个或多个属性中的每个属性的数百万或数十亿个数据点的文件时,压缩包括数百万或数十亿次计算,这是人类大脑不具备的执行能力,即使使用钢笔和铅笔也不行。
本文定义和使用的所有定义应当被理解为控制字典定义、通过引用并入的文献中的定义和/或定义术语的普通含义。
除非明确指出相反情况,否则本说明书和权利要求书中使用的词语“一”和“一个”应当被理解为表示“至少一个”。
本说明书和权利要求书中使用的短语“和/或”应当被理解为表示如此结合的元件中的“任一个或两个”,即,在某些情况下结合存在而在其他情况下分离存在的元件。用“和/或”列出的多个元件应当以相同的方式进行解释,即,如此结合的元件中的“一个或多个”元件。除了用“和/或”分句具体标识的元件之外,还可能任选地存在其他元件,无论是与具体标识的那些元件相关还是不相关都可以。
本文在说明书和权利要求书中使用的“或”应当被理解为具有与上文所定义的“和/或”相同的含义。例如,在分隔列表中的项目时,“或”或“和/或”应当被解读为包含性的,即,包含至少一个,但也包含多个元件或元件列表的多于一个的元件以及(任选的)额外的未列出的项目。只有明确指示相反情况的术语(例如,“中的仅一个”或“中的恰好一个”或者在权利要求中使用的“由……组成”)将指代包括多个元件或元件列表中的恰好一个元件。一般而言,当在本文使用的术语“或”前面有排他性术语(例如,“任一个”、“中的一个”、“中的任一个”或“中的恰好一个”)时,术语“或”应当仅被解读为表示排他性替代方案(即,“一个或另一个但不是两者”)。
本文在说明书和权利要求书中使用的引用一个或多个元件的列表的短语“至少一个”应当被理解为表示选自元件列表中的元件中的任何一个或多个元件中的至少一个元件,但不一定包括元件列表中具体列出的每个元件中的至少一个元件,并且不排除元件列表中元件的任何组合。该定义还允许除了在短语“至少一个”所指的元件列表中具体标识的元件之外的任选存在的元件,无论是与具体标识的那些元件相关还是不相关都可以。
还应当理解,除非明确指出相反情况,否则在本文要求保护的包括多于一个步骤或动作的任何方法中,该方法的步骤或动作的顺序不一定限于记载该方法的步骤或动作的顺序。
在权利要求以及上面的说明书中,所有过渡短语(例如,“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”、“持有”、“带有”等)应当被理解为开放式的,即,意指包括但不限于。只有过渡短语“由……组成”和“基本上由……组成”应当分别为闭合或半闭合过渡短语。
虽然本文已经描述和说明了若干发明实施例,但是本领域普通技术人员将容易想到用于执行功能和/或获得结果和/或本文描述的优点中的一个或多个优点的各种其他单元和/或结构。这样的变化和/或修改中的每个变化和/或修改都被认为是在本文描述的发明实施例的范围内。更一般地,本领域技术人员将容易理解,本文描述的所有参数、尺寸、材料和配置均旨在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于一个或多个使用本发明教导的具体应用。本领域技术人员将认识到或者能够使用不超过常规的实验手段来确定本文描述的具体发明实施例的许多等同物。因此,应当理解,前述实施例仅作为示例呈现,并且在权利要求及其等同物的范围内,本发明的实施例可以以不同于具体描述和要求保护的方式来实践。本公开内容的发明实施例涉及本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。另外,如果这样的特征、系统、物品、材料、套件和/或方法并不相互矛盾,则两个或更多个这样的特征、系统、物品、材料、套件和/或方法的任何组合能够被包括在本公开内容的发明范围内。
Claims (15)
1.一种用于使用文件压缩/解压缩系统来压缩/解压缩数据文件的方法(100),包括:
接收(120)用于压缩的数据文件,所述数据文件包括多个不同属性;
识别(130)所述多个不同属性中的第一属性,并且将所识别的第一属性的规范存储在属性参数数据结构中;
基于所识别的第一属性从预定的多个压缩类型和压缩配置中选择(140)多个压缩类型和/或压缩配置;
使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来个体地压缩(150)来自所接收的数据文件的针对所识别的第一属性的数据中的至少一些数据,其中,针对每个个体压缩测量一个或多个度量;
基于所述个体压缩中的每个个体压缩的所述一个或多个度量来确定(160)所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩;
生成(170)压缩参数数据结构,所述压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第一属性的压缩的一个压缩类型和/或压缩配置的识别;
使用所识别的压缩类型来压缩(180)来自所接收的数据文件的针对所述第一属性的数据,以生成压缩数据文件;并且
存储(190)所述属性参数数据结构、所述压缩参数数据结构和所述压缩数据文件,其中,所存储的压缩参数数据结构被配置为被检索并用于对所述压缩数据文件的解压缩。
2.根据权利要求1所述的方法,还包括:
对所述多个不同属性中的至少第二属性重复所述识别、所述选择、所述压缩和所述确定的步骤,其中,所述压缩参数数据结构包括所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第二属性的压缩的一个压缩类型和/或压缩配置的规范。
3.根据权利要求1所述的方法,还包括解压缩所存储的压缩数据文件的步骤,其中,解压缩包括查询所述压缩参数数据结构以识别用于所述第一属性的解压缩类型。
4.根据权利要求1所述的方法,其中,选择所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置,因为每个压缩类型和/或压缩配置能够压缩来自所接收的数据文件的针对所识别的第一属性的数据。
5.根据权利要求1所述的方法,其中,所述数据文件是基因组数据文件。
6.根据权利要求1所述的方法,其中,所述一个或多个度量包括以下各项中的一项或多项:压缩比,以及用于所述压缩的处理时间。
7.根据权利要求1所述的方法,其中,当对应的压缩相对于所选择的多个压缩类型和/或压缩配置中的其他压缩类型和/或压缩配置包括更高的压缩比和/或更快的处理时间时,压缩类型是最适合的。
8.根据权利要求1所述的方法,还包括以下步骤:经由用户接口提供关于所生成的压缩参数数据结构和/或所述压缩数据文件的信息。
9.根据权利要求1所述的方法,还包括以下步骤:经由用户接口向用户提供关于所识别的压缩类型和/或压缩配置中的一个或多个压缩类型和/或压缩配置的信息,使得所述用户能够选择要被应用以压缩属性的压缩器类型和/或配置。
10.一种用于压缩/解压缩数据文件的系统(200),包括:
用于压缩的数据文件,所述数据文件包括多个不同属性;
处理器(220),其被配置为:(i)识别所述多个不同属性中的第一属性,并且将所识别的第一属性的规范存储在属性参数数据结构中;(ii)基于所识别的第一属性从预定的多个压缩类型和/或压缩配置中选择多个压缩类型和/或压缩配置;(iii)使用所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置来个体地压缩来自所接收的数据文件的针对所识别的第一属性的数据中的至少一些数据,其中,针对每个个体压缩测量一个或多个度量;(iv)基于所述个体压缩中的每个个体压缩的所述一个或多个度量来确定所选择的多个压缩类型和/或压缩配置中的哪个压缩类型和/或压缩配置最适合用于压缩;(v)生成压缩参数数据结构,所述压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第一属性的压缩的一个压缩类型和/或压缩配置的识别;(vi)使用所识别的压缩类型来压缩来自所接收的数据文件的针对所述第一属性的数据,以生成压缩数据文件;并且(vii)存储所述属性参数数据结构、所述压缩参数数据结构和所述压缩数据文件,其中,所存储的压缩参数数据结构被配置为被检索并用于对所述压缩数据文件的解压缩。
11.根据权利要求10所述的系统,其中,所述处理器被配置为对所述多个不同属性中的至少第二属性重复所述识别、所述选择、所述压缩和所述确定的步骤,其中,所述压缩参数数据结构包括对所选择的多个压缩类型和/或压缩配置中最适合用于所识别的第二属性的压缩的一个压缩类型和/或压缩配置的识别。
12.根据权利要求10所述的系统,其中,所述处理器被配置为解压缩所存储的压缩数据文件,其中,解压缩包括查询所述压缩参数数据结构以识别用于所述第一属性的解压缩类型。
13.根据权利要求10所述的系统,其中,选择所选择的多个压缩类型和/或压缩配置中的每个压缩类型和/或压缩配置,因为每个压缩类型和/或压缩配置能够压缩来自所接收的数据文件的针对所识别的第一属性的数据。
14.根据权利要求10所述的系统,其中,所述一个或多个度量包括以下各项中的一项或多项:压缩比,以及用于所述压缩的处理时间。
15.根据权利要求10所述的系统,其中,所述系统包括用户接口(240),所述用户接口被配置为提供关于所生成的压缩参数数据结构和/或所述压缩数据文件的信息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/116,203 | 2020-11-20 | ||
US202163226791P | 2021-07-29 | 2021-07-29 | |
US63/226,791 | 2021-07-29 | ||
PCT/EP2021/081320 WO2022106289A1 (en) | 2020-11-20 | 2021-11-11 | System and method for auto-configurable data compression framework |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116472675A true CN116472675A (zh) | 2023-07-21 |
Family
ID=87182923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180078078.3A Pending CN116472675A (zh) | 2020-11-20 | 2021-11-11 | 用于能自动配置数据压缩框架的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116472675A (zh) |
-
2021
- 2021-11-11 CN CN202180078078.3A patent/CN116472675A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5870036A (en) | Adaptive multiple dictionary data compression | |
CN104040542B (zh) | 用于在易失性存储器内保持关系型数据的列向量的技术 | |
CN104283567B (zh) | 一种名称数据的压缩、解压缩方法及设备 | |
TW502178B (en) | Efficient and lossless conversion for transmission or storage of data | |
CN106407285B (zh) | 一种基于rle和lzw的优化比特文件压缩与解压缩方法 | |
CN103995887A (zh) | 位图索引压缩方法和位图索引解压方法 | |
US20120130965A1 (en) | Data compression method | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
US20120150877A1 (en) | Efficient database compression | |
JP7006966B2 (ja) | ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(nns)方法 | |
RU2633178C2 (ru) | Способ и система базы данных для индексирования ссылок на документы базы данных | |
US9236881B2 (en) | Compression of bitmaps and values | |
CN114567331A (zh) | 一种基于lz77的压缩方法、装置及其介质 | |
WO2023015831A1 (zh) | 一种哈夫曼校正编码方法、系统及相关组件 | |
CN102843142B (zh) | 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 | |
CN108829872B (zh) | 无损压缩文件的快速处理方法、设备、系统及存储介质 | |
CN116472675A (zh) | 用于能自动配置数据压缩框架的系统和方法 | |
US6388585B1 (en) | Method for data compression and decompression using decompression instructions | |
JP2021145281A (ja) | 圧縮装置、伸張装置及び方法 | |
US20240013864A1 (en) | System and method for auto-configurable data compression framework | |
CN110442557A (zh) | 数据压缩及解压缩方法、电子设备和计算机可读存储介质 | |
Mahmood et al. | A feasible 6 bit text database compression scheme with character encoding (6BC) | |
CN115407942A (zh) | 一种适用于单片机芯片的数据处理方法 | |
US20230207069A1 (en) | System and method for storing and transporting diverse genomic data | |
JP4334955B2 (ja) | 生物情報のロスレス符号化装置 |
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 |