CN105940611A - 优化数据缩合器和方法 - Google Patents

优化数据缩合器和方法 Download PDF

Info

Publication number
CN105940611A
CN105940611A CN201580006203.4A CN201580006203A CN105940611A CN 105940611 A CN105940611 A CN 105940611A CN 201580006203 A CN201580006203 A CN 201580006203A CN 105940611 A CN105940611 A CN 105940611A
Authority
CN
China
Prior art keywords
data
data object
condensation
file
group
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
CN201580006203.4A
Other languages
English (en)
Other versions
CN105940611B (zh
Inventor
安德鲁·J·古德温
马修·P·费舍尔
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.)
Relliken Analysis Ltd
Original Assignee
Relliken Analysis 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 Relliken Analysis Ltd filed Critical Relliken Analysis Ltd
Publication of CN105940611A publication Critical patent/CN105940611A/zh
Application granted granted Critical
Publication of CN105940611B publication Critical patent/CN105940611B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种数据缩合器和方法用于将数字、字母、词语、短语和其它标志无损缩合成数据对象值,这使得文件大小减小。所述数据缩合器和方法将数据分类为单个的数据对象或数据对象群组,并且区分重复(例如重现)的项目。根据分类数据的数量优化参考库以使存储要求最小化。向所述分类数据指派唯一值,所述唯一值填充所述参考文件。所述数据缩合器使用所述参考库创建输出文件以实现最优无损缩合。一种数据恢复器和方法用于将例如数字、字母、词语、短语和其它标志的缩合数据对象恢复成未缩合数据对象,以便实现高效并且准确的使用,而不会损失数据对象。

Description

优化数据缩合器和方法
背景技术
数据存储是面临解释太字节、拍字节范围和更高范围的大量基因体和其它数据集的令人怯步的难题的研究人员等人的重点问题。例如研究机构和临床机构之间的协作和数据的关键共享(在本地和远程)需要处理大量涌入的数据集,并且需要使得能够高效并且准确地比较例如日志文件或参考基因组的无损数据压缩的策略,联邦政府需要其用于审计和报告目的。这些日志文件或参考基因组的数据存储和安全传送已通过将物理硬盘驱动器送到本地或远程位置得以实现,但是这种做法繁琐、成本高而且越来越不可持续。
在涉及大型数据文件的选择性压缩、译码、编索引、注解、映射和对准的算法和方法领域存在可以自由获得的基于研究的工具,还有其它申请和公开案,所述数据文件包含(但不限于)重复序列集合、文本、二元文本图像和数据库。
高产量下一代测序技术的快速进步,产生了以指数速率累积的基因体数据集(完整基因组和群体型基因组)。可以公开获得的基因体数据集通常存储为纯文本文件,数字存储、分析和安全传输的负担越来越大。例如基因信息或其它大数据等大型数据文件的远程存储、共享、分析或下载是费力的并且对于许多机构几乎是不可能的,尤其是世界上不能高速接入因特网的地方。当今,大型存储站点花费数百万美元在存储上,并且大规模数据传送始终是服务器和因特网的强制性负担。技术上迫切地需要一种使得能够进行大型数据集的存储、共享、传输等而且数据不会发生损失或破坏的方案。使用目前的技术,这样充其量是费力的,而且在许多情况下,对于例如机构尤其是研究中心、医院等许多实体几乎是不可能的。
发明内容
一种优化数据缩合器和方法减少存储媒体上的负担(所述存储媒体例如(但不限于)是磁盘、固态、或任何形式的存储媒体、固定或便携式),还有与数据存储相关联的数据传送开销(例如从下一代全基因组测序导出的)。输入文件可以包含但不限于BLAST格式、日志/错误文件、数据库和其它常见文件格式。
优化数据缩合器和方法将例如数字、字母、词语、短语和其它标志的数据(也被称作数据对象)缩合成由手动限定的和/或自动优化的十六进制、二百五十六进制(Base-256)或其它NBase值限定的一或多个值。NBase(Nb)被定义为可变数字基础系统,其具有两个基础单元(二进制)的最小量度,并且没有较高数字基础限制。视需要,可以解码这个新缩合十六进制、Base-256或其它NBase文件的完整恢复,以将数据恢复成原始格式,而数据没有任何损失。出于清楚起见,缩合过程不是一些zip档案中看到的压缩,而是产生缩合文件大小的缩合。
库含有一或多个参考文件。每个参考文件含有数据和/或数据分组与相关联的所指派的唯一十六进制、Base-256或其它用于与所识别的数据对象相关的NBase代码。这样的所识别的数据对象以及复制的(即重复的)和库中未找到的其它数据对象(被指派相关联的唯一代码)添加到包含于库中的原始参考文件的优化版本。
与所指派的代码相关联的所产生的十六进制、Base-256或其它NBase值存储于格式化的参考文件中,其中数据对象与可以经由简单请求(例如X轴、Y轴)定位的唯一十六进制、Base-256或其它NBase值相关联。缩合文件能够水平地和垂直地扩展,这一点不同于具有需要增加的页面以扩展的限定的并且有限的列的文本文档或数据库。缩合文件以无损格式存储。这样允许向数据对象指派缩合文件内的十六进制、Base-256或其它NBase值。通过修改参考文件,可以设计专用版本和通用版本,而核心引擎保持一样。基于文件大小选择构造格式可以进一步优化文件存储和处理。
缩合文件实际上隐藏了嵌入数据对象的真正性质,这是因为用于在文件中表示数据对象的各种十六进制、Base-256、或其它NBase值不容易辨别,由此提供自然状态的加密。即使通过使用计算机分析区分了十六进制、Base-256或其它NBase值,也没办法分辨它们代表哪些数据对象,或者是否施加了交替的对准顺序。虽然可以在X、Y轴上创建缩合文件,并且默认从左到右、从上到下填充缩合文件,但是并没有限制数据缩合器和方法使其在中间开始并且逆时针填充的机制或者任何其它开始位置和/或填充方法。
在本申请的一个方面中,一种用于减少数据存储和处理要求的无损数据缩合器包括:数据存储器,其包含:源文件,其具有有待缩合的数据对象;预定参考文件,其具有预定数据对象和预定数据对象群组;高级参考文件,其具有从所述源文件和所述预定参考文件中的至少一个获得的以算法方式选择的数据对象和以算法方式选择的数据对象群组;缩合文件,其包含缩合数据对象和缩合数据对象群组;以及数组文件,其包含所述缩合数据对象与所述缩合数据对象群组的数组;以及缩合处理器,其操作以:至少部分地基于所述数据对象的计数,选择至少一个数字基础译码系统;至少部分地基于所述数据对象的所述计数,选择所述数组文件的包深度;至少部分地基于所述数据对象的所述计数,限制所述至少一个数字基础译码系统;分析所述源文件中的所述数据对象,以定位一或多个重现数据对象和重现数据对象群组;向所述预定参考文件中的所述数据对象和数据对象群组指派第一唯一代码;向所述高级参考文件中的所选的重现数据对象和数据对象群组以及所选的非重现数据对象和数据对象群组指派第二唯一代码;将所述译码的数据对象和所述译码的数据对象群组放入在所述缩合文件中;以及在所述数组文件中构建所述缩合数据对象的数组,其中所述无损数据缩合器允许高效并且准确的无损数据存储和传送,其中所述缩合处理器具有指派给预定数据对象和数据对象群组的base-256译码系统,以及指派给非预定数据对象和数据对象群组的base-16译码系统,并且所述存储器数组由译码的数据对象和数据对象群组的总数的平方根限定,所述总数的平方根必要时舍入为整数,并且必要时用空值数据对象填充所述数组。
在本申请的另一方面中,一种用于执行无损缩合操作的设备包括:数据源存储器,其具有包含数据对象的输入数据的至少一个数据文件;缩合处理器,其被配置成区分数据对象群组与单个数据对象,并且区分重复次数超出所选阈值的重复数据对象群组;以及参考库,其包含定制文件,所述定制文件包含预定义数据对象和预定数据对象群组,其中所述缩合处理器被进一步配置成向所述重复数据对象和数据对象群组以及非重复数据对象和数据对象群组指派唯一代码以提供缩合文件。
在本申请的另一个方面中,一种用于减少数据存储和处理要求的无损数据缩合器包括:数据源存储器,其具有包含数据对象的输入数据的至少一个数据文件;缩合存储器,其具有数据对象群组,每个数据对象群组包含根据所述数据源存储器中的数据对象的重复模式的一或多个数据对象;缩合处理器,其操作以基于所述数据源存储器中的数据对象和数据对象群组的数目,选择多个数字基础译码系统中的至少一个;定制参考库存储器,其具有被指派来自所选数字基础译码系统中的至少一个的唯一代码的预定义数据对象和预定义数据对象群组;以及经过制定的参考库存储器,其具有被指派来自所述数字基础译码系统中的至少一个的唯一代码的重现和非重现数据对象和数据对象群组,连同所选的经过译码的预定义数据对象群组;以及所述制定的参考库存储器具有存储器数组,所述存储器数组由经过译码的数据对象和数据对象群组的总数的平方根限定,所述总数的平方根必要时舍入成整数,并且必要时用空值数据对象填充所述数组,所述存储器数组的包深度基于所述制定的参考库中的经过译码的数据对象和数据对象群组的总数的计数。
在本申请的另一个方面中,一种用于减少数据存储和处理要求的无损数据缩合器包括:数据存储器,其具有至少一个源文件,所述源文件存储包含有待缩合的多个重现和非重现数据对象的输入数据;接口存储器,其操作以从输入数据接收和读取数据对象;参考库,其存储与对应的数据对象相关的经过译码的值;缩合处理器,其连接到所述参考库以优化所述输入数据;以及缩合存储器,其经过连接以接收优化输入数据并且提供缩合输出数据。
在本申请的另一方面中,一种无损数据缩合系统包括:缩合处理器,其被配置成基于数据对象群组的重复模式的所述数目从多个数字基础译码系统中选择至少一个数字基础译码系统,并且向每个数据对象群组指派来自所述所选的数字基础译码系统中的所述至少一个的唯一代码;以及缩合存储器,其具有经过译码的数据对象群组以提供缩合数据存储和数据传送。
在本申请的另一方面中,一种无损数据缩合系统包括:缩合处理器,其被配置成向包含数据对象的重复图案的数据对象群组指派唯一代码;以及存储器数组,其存储经过译码的数据对象群组,所述经过译码的数据对象群组具有选择成减少所述存储器数组的存储要求的包深度。
在本申请的另一方面中,一种用以将缩合数据对象恢复成未缩合形式的设备包括:数据存储器,其包含:缩合文件,其具有缩合数据对象;用于未缩合数据对象的至少一个目的地模式;参考文件,其具有经过译码的重现和非重现缩合数据对象,以及识别与所述缩合文件相关联的至少一个或多个数字译码系统和适用的情况下的包深度的信息;以及恢复处理器,其操作以:选择有待恢复的所述缩合数据对象的至少一部分;选择用于使用未缩合数据对象的所述目的地模式;以及将所述缩合文件与所述参考文件链接,以将所述缩合数据对象恢复成未缩合数据对象,以便高效并且准确的使用,而不会损失所述数据对象。
在本申请的另一方面中,一种用于例如数字、字母、词语、短语和其它标志的数据对象的无损数据缩合以允许高效并且准确安全的数据评估、数据存储和数据传送的方法包括:获得有待缩合的数据对象集合;将所述数据对象集合放入源文件中;进行所述源文件的分析,包含所述数据对象的所述总数的计数;读取所述源文件,并且响应于所述源文件内的数据对象的重复模式,创建数据对象群组,每个数据对象群组包含一或多个数据对象;为数据对象群组的所述总数计数;基于数据对象群组的所选数量,选择一或多个数字基础译码系统;建立预定义数据对象群组的一或多个库参考文件;向每个预定义数据对象群组指派来自所述所选译码系统的第一唯一代码;识别各个重现数据对象群组与非重现数据对象群组区分开来;向并非预定义数据对象群组的每个重现和非重现数据对象群组指派来自所述所选译码系统的第二唯一代码;将经过译码的数据对象群组放入一或多个库参考文件中;读取所述源文件并且为经过译码的数据对象群组的所述总数计数;选择用于存储器数组的所述包深度;形成所述存储器数组,所述存储器数组由所选的经过译码的数据对象群组的所述总数的平方根限定,并且必要时舍入以建立整数;添加空值的经过译码的数据对象以填充所述数组;以及将所述数组放入存储媒体上。
在本申请的另一方面中,一种缩合数据以提供减少的数据存储和处理的方法包括:读取包含多个数据对象的数据文件;识别重现数据对象群组与非重现数据对象群组区分开来,每个重现数据对象群组包含一或多个数据对象;向每个重现和非重现数据对象群组指派代码;制定最佳大小的参考库;以及将所述经过译码的数据对象群组放入所述参考库中以用于数据存储和处理。
在本申请的另一方面中,一种用于例如数字、字母、词语、短语和其它标志的缩合数据对象的无损数据恢复的方法包括:获得缩合数据对象的缩合文件;选择有待恢复的所述缩合数据对象的至少一部分;选择用于恢复数据对象的目的地模式;获得具有指派给重现和非重现缩合数据对象的代码的参考文件,所述参考文件具有识别与所述缩合文件相关联的至少一个或多个数字译码系统和适用的情况下的包深度的信息;以及基于与所述参考文件的链接,读取所述缩合文件,以将所述缩合数据对象恢复成未缩合数据对象,以便实现高效并且准确的使用,而不会损失所述数据对象。
附图说明
图1是描绘本申请的数据文件的缩合方法的实施例的流程图。
图2是描绘本申请的将缩合文件恢复成其原始未缩合状态的方法的实施例的流程图。
图3是本申请的优化数据缩合器系统的示例性实施例的系统图。
具体实施方式
在本描述中,
为了简洁、清晰和理解所以使用了某些术语。不应由其施加超出现有技术要求的不必要的限制,因为这些术语仅仅是用于描述目的并且希望得到广义的解释。本文所述的不同系统和方法可单独使用或结合其它系统和方法使用。在所附权利要求书的范围内,各种等效物、替代方案和修改是可能的。只有在相应限制中明确列举了“用于……的装置”或“用于……的步骤”这些术语时,所附权利要求书中的每项限制才希望援引35U.S.C.§112第六段的解释。
在以下具体实施方式中,参考随附图式,其构成本文的一部分且其中以说明方式展示可实践的具体实施例。足够详细地描述这些实施例以使所属领域的技术人员能够实践所述实施例,并且应理解可利用其它实施例,并且可在不背离实施例的范围的情况下做出逻辑、结构、机械、电气以及其它变化。因而以下具体实施方式不应视为限制本发明的范围。
本申请的系统和方法利用数据无损缩合(使得文件大小减小),其将单个数字、字母、词语、短语和其它标志缩合成十六进制的Base-256或其它对于测序技术不可知的NBase值以形成一或多个缩合文件。本申请的系统和方法利用无损缩合文件以保留其被读取和写入的能力。本申请的系统和方法利用无损缩合文件使其恢复成其先前的原始未缩合状态,以用于不能够与缩合文件(或数组文件)交互的应用程序。因而,本申请的系统和方法利用这样的设备和系统:(a)尤其是对于大型数据文件明显地减少存储要求;(b)允许更快的数据传输,尤其是大型文本或数据库文件的数据传输;(c)允许包含其它数据(例如电子医疗记录、临床元数据、相关审计记录等)并且文件大小极少增加;(d)允许快速分析和修改缩合文件;(e)提供自然状态加密;和/或(f)充当进一步开发用的平台,以便能够实施基于GPU的处理和数学/科学分析。缩合数据的较小文件大小允许经常存储在专门系统上的大型文件现在更广泛地存储在较小容量的系统上,并且还减小网络业务或通信中的必需带宽。
“数据对象”这个术语可以在最广泛的意义上用于包含表示为电子信号承载的α数(即数字)值的最小单个组成部分。每个数据对象被指派一或多个十六进制、Base-256或其它NBase(即数字)值。
“包深度”这个术语用于限定Base-16、Base-256或打包(存储)在数组文件中的其它NBase数据对象的数目。包深度的值必须是正整数+i,并且可以在转换成缩合形式时被系统设置成大于或等于一(≥1)的默认值,或者手动地设置成大于或等于一(≥1)的值。
本文所述的优化缩合器的技术优点或技术效果是,缩合文件大小是比操作方式非常不同的当前压缩系统中实现的原始文件大小要小很多的部分。这一点不仅仅有用而且实际上必需的一些显而易见的实例包含(但不限于)遗传学。
大多数当前计算机利用二元数字(即“位”),其也被称作“base-2”。一些计算机使用8位集合(即“字节”)操作,每个8位集合具有256个值。当使用ASCII(Unicode)格式时,值0到127总体上涉及特定的字符,而值128到255总体上涉及特殊项目,例如外语中的重音字符。Windows里的记事本每个字符或空格使用一个字节的存储空间。本文中所揭示的优化数据缩合器和方法可以使用各种基于数字的系统,例如十六进制、Base-256或其它NBase,这些系统是针对优化手动地或自动地选择的,并且不限于其中包含的实例中提供的以前称为十六进制的base-16。
如果利用二进制base-2系统,则每个数据对象可包含一位或多个位来限定通过位测量的值,或者在8位集合的情况下可包含一个字节。十六进制是base-16系统,并且每个单个的十六进制值等于4位的二元代码。例如并且不限于:
1个十六进制值=16个潜在的数据对象或4个位
2个十六进制值=256个潜在的数据对象或8位/1个字节
3个十六进制值=4096个潜在的数据对象或12个位
4个十六进制值=65536个潜在的数据对象或16位/2个字节
5个十六进制值=1048576个潜在的数据对象或20个位
6个十六进制值=16777218个潜在的数据对象或24个位/3个字节
7个十六进制值=268435456个潜在的数据对象或28个位
8个十六进制值=4294967296个潜在的数据对象或32个位/4个字节
十六进制中需要用四分之一(1/4)的空间表示二进制中的相同数目个数据对象。
在另一个实施例中,如果利用二进制base-2系统,则每个数据对象可包含一位或多个位来限定通过位测量的值,或者在8位集合的情况下可包含一个字节。二百五十六进制(Duocentosexapentagesimal)是base-256系统并且每个单个的值等于8位的二进制代码。例如并且不限于:
1个二百五十六进制值=256个潜在的数据对象或8位/1个字节
2个二百五十六进制值=65536个潜在的数据对象或16位/2个字节
3个二百五十六进制值=16777216个潜在的数据对象或24位/3个字节
4个二百五十六进制值=4294967296个潜在的数据对象或32个位/4个字节
在另一个实施例中,如果利用二进制base-2系统,则每个数据对象可包含一位或多个位来限定通过位测量的值,或者在8位集合的情况下可包含一个字节。NBase是可变基础系统,base-N,其中N被定义为任何大于或等于一(≥1)的正整数(+i),并且每个单个的值是大于或等于二进制代码的一个(≥1)位的正整数(+i)。数据对象可以通过包深度缩合,其中包深度是大于或等于一(≥1)的正整数(+i)。
1个NBase值≥+i数据对象/s并且≥+i包深度中的+i位
图1和图2是分别描绘将数据文件缩合成基本上更小大小的方法100和将更小大小的文件恢复成原始数据文件大小而且不会发生数据损失(即无损)的方法200的示范性实施例的流程图。图3中说明的优化数据缩合器系统300总体上是计算系统,其可以包含(但不限于)台式计算机、手持装置、多处理器系统、个人数字助理(PDA)、膝上型计算机、网络计算机、云端服务器、微型计算机、大型主机计算机等等。缩合器系统300包含接口301、一或多个处理器302和耦合到处理器302的存储器303。处理器302从存储器303加载和执行软件。当由缩合器系统300执行时,模块304引导过程302如结合本文所述的缩合方法100或恢复方法200所述般工作。
接口301可包含鼠标、键盘、语音输入装置、用于从用户接收手势的触摸输入装置、用于检测用户的非触摸手势和其它运动的运动输入装置,以及其它相当的输入装置和能够从用户接收用户输入的相关联的处理元件。例如视频显示器或图形显示器的输出装置可以显示另外与本文所揭示的系统和方法的实施例相关联的界面。扬声器、打印机、触觉装置和其它类型的输出装置也可包含于用户接口301中。另外,接口301可以使得系统300能够与例如网络服务器和外部数据库的其它装置通信。接口301可以便于多种多样的网络和协议类型内的多种通信,这些网络和协议类型包含有线网络,例如局域网(LAN)、电缆等,和无线网络,例如无线LAN(WLAN)、蜂窝网络或卫星。为此目的,接口301可以包含一或多个端口,用于将多个计算系统彼此连接或连接到另一服务器计算机。
处理器302可以是单个处理单元或多个单元,其中所有处理单元可以包含多个计算单元。处理器302可以实施为一或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或任何基于操作指令操控信号的装置。处理器302被配置成提取和执行存储于存储器303中的计算机可读指令和数据,当然还有其它功能。
存储器303可以包含所属领域中已知的任何计算机可读媒体,包含例如:易失性存储器,例如静态随机存取存储器(static random access memory,SRAM)和动态随机存取存储器(dynamic random access memory,DRAM);和/或非易失性存储器,例如只读存储器(read only memory,ROM)、可擦除可编程ROM、快闪存储器、硬盘、光盘以及磁带。存储器303还包含模块304和数据305。
模块304尤其包含例程、程序、对象、组件、数据结构等,其执行特定任务或实施特定数据类型。模块304进一步包含接口模块306、缩合模块307、库定制模块308、可视查看器模块309、恢复模块310和可能其它需要的模块。其它模块可以包含补充系统300上的应用程序的程序,例如操作系统中的程序。另一方面,数据存储器305尤其充当用于存储模块304中的一或多个处理、接收和产生的数据的储存库。数据存储器305包含:输入数据311,其可以包含源文件;库数据312,其由参考文件314(例如预定参考文件和/或高级参考文件)组成;以及例如缩合文件和/或数组文件内的输出数据313。输出数据313包含因为以上模块中的一或多个的执行而产生的数据。
为了执行缩合,系统300与输入数据311相关联。例如源文件之类的输入数据311可以包含(但不限于)文本、图像、电子表格或数据库格式,并且由接口模块306选择且被提供到系统300用于经由模块307缩合。模块307将任选地激活库定制模块308以分析输入数据311并且优化库312。缩合模块307接着将使用库312将输入数据311缩合成输出数据313。接口模块306以数据305的缩合文件(或数组文件)的形式返回输出数据313,这些文件可以从存储器303中的固定或便携式存储媒体存取。
为了执行恢复,系统300与例如缩合文件之类的输入数据311相关联。在这种情况下输入数据是在上文具体描述的过程中产生的缩合文件(或数组文件)。输入数据311由接口模块306选择,并且被提供到系统300用于经由模块310恢复。接口模块306将提供目的地模式选项以恢复到文件或屏幕。如果选择的是文件,则接口模块306将激活恢复模块310。恢复模块310将使用来自库312的参考文件将输入数据311恢复成输出数据313。接口模块306以数据文件305的形式返回输出数据313,数据文件305可以包含但不限于文本、图像、电子表格或数据库格式,并且可以从存储器303中的固定或便携式存储媒体存取。如果选择的是屏幕,则接口模块306将激活恢复模块310。恢复模块310将使用来自库312的参考文件将输入数据311恢复成输出数据313。接口模块306将输出数据313返回到可视查看器模块309,其使用接口模块301在计算机监视器或其它能够用视觉上未缩合的可查看格式显示的装置上显示输出数据313。
配合缩合模块307,处理器302读取源文件中的所有形式的数据,例如字母、数字、空格等,并且区分空格与其它类型的数据(例如字母、数字等)。配合缩合模块307,处理器302接着确定数据对象在整个源文件内的重复(例如重现)次数。
基于这个数据,处理器302编辑源文件或产生高级参考文件,并且将这样的参考文件添加到库中。重现不止一次的数据对象将被添加到高级参考文件。数据对象必须出现以便被添加的次数量(阈值)可以由用户手动地限定,或者由缩合模块307自动地确定。
例如,数据缩合器可确定在使用ASCII(Unicode)格式时在用于特定字符的常见128个值之外,20个项目具有重复20次的5个字符,15个项具有重复15次的10个字符,并且5个项目具有重复5次的50个字符。在这个过程期间,数据缩合器确定存在总共40个内部结构,其符合超出ASCII格式内的128个常见特定字符的阈值要求。
下文提供利用十六进制法的实施例在数据文件中找到的5个、10个和50个字符的优化实例:
5个字符项目的数据对象(20),其中‘r’指代重复次数。
每个项目以项目数据对象的1:1形式被写入到库312一次,并且将表示超过阈值计数的重现项目。每个项目数据对象将需要识别十六进制数据对象加指针十六进制数据对象。这将需要(20x5)+20个十六进制数据对象,或总共120个十六进制数据对象。
10个字符的项目(15),其中‘r’指代重复次数。
每个项目以项目的1:1形式被写入到库312一次,并且将表示超过阈值计数的重现项目。每个项目将需要标识十六进制数据对象加指针十六进制数据对象。这将需要(15x10)+15个十六进制数据对象,或总共165个十六进制数据对象。
50个字符的项目(5),其中‘r’指代重复次数。
项目01-r70项目02-r50项目01-r90项目01-r80项目01-r60
每个项目以项目的1:1形式被写入到库312一次,并且将表示超过阈值计数的重现项目。每个项目将需要识别十六进制数据对象加指针十六进制数据对象。这将需要(5x50)+5(位)十六进制数据对象,或总共255个十六进制数据对象。
对于如上文所说明限于5个、10个和50个字符的项目的重现优化,对于将供应到虚拟存储器前缀文件的总计540个十六进制数据对象,被写入到库312的总内容是120+165+255。这样的所说明的重现过程因而将52,500个字符替换成缩合数据中的540个十六进制数据对象。
代替使用阈值优化,例如通过将重现过程限制于5个、10个和50个字符的项目,数据缩合器和方法可以感测两个或更多个字符的所有重现,这将使得必需使用的十六进制(或其它NBase)数据对象的总数明显减少,并且仍然提供整个文件的无损缩合。
每个所识别的不重复的单个字符或字符群组与单个十六进制(或其它NBase)数据对象相关联。在词语错误拼写的情况下,系统检查所声称的词语的字母,直到该词语不再能够继续为止;然后将单个字母缩合成十六进制(或其它NBase)数据对象而不是完整的词语。这样允许补偿内部数据对象错误和缺陷,而没有软件故障或错误输出。
在重现过程完成时,数据缩合器和方法执行库312中包含的缩合数据的第二次计数,这个数目总体上因为重现而相对于初始计数明显减小。
优化库可以使用用于存储通过重现识别的实体的缩合文件,并且经过优化以减少存储缩合数据的容量要求。如果例如使用平方缩合数组文件,则数据缩合器和方法确定缩合数据的总计数的平方根。如果平方根包含分数,则将平方根数调整成下一个更高整数以防止数据损失。例如,456,840的平方根是675.8x 675.8。但是,数据缩合器和方法舍入成676x 676(舍入的下一个最接近的整数)。之后,在数组文件中填充来自缩合文件的所有十六进制、Base-256或其它NBase数据对象,而其余的空间中填充无值(例如空)数据对象直到文件末尾。
在十六进制实施例中,数据缩合器和方法提供但不限于通过各个十六进制值的数字标示的多个预定十六进制数据对象。这样的格式简称为“每个对象的十六进制(Hex PerObject,HPO)”,它可以基于缩合数据自动和/或手动地选择以进一步优化数据处理和存储。
数据缩合器和方法因而将通过选择结构化格式以便进一步优化,借此减少存储要求。例如,利用6hpo格式提供16,777,216个值,可能太多了,无法高效地优化。如果假设英语有大约130,000个常见词语,包含变形(ing、ed、est等),则使用4hpo格式(65,536个值)太小。相反,数据缩合器和方法可以选择5hpo格式1,048,576个值以作为优化格式。作为另一实例,外显子/内含子基因组序列的跨度长度大约是45,000,000到260,000,000个字符,数据质量平衡大约是每1,000,000个字符有1,000,000个位。在基因组序列中,仅仅存在8个可能的字符,加上空/未读值(N),以及文件末尾。不需要使用2hpo、4hpo或6hpo格式。相反,提供16个值的1hpo格式已经够用了。在基因组序列中只有总共8个字符的情况下,发生重度重现模式,因而确定优化并且将其直接提供到预定参考文件314或库312。例如染色体16含有大约88,827,255个基因碱基对。当放入文本文件中时,可能必需大约88,830,625位,包含相关联的文件信息。当通过数据缩合器和方法缩合时,文件大小自动调整成9425x 9424,而不会丢失碱基对。选择1hpo格式会使得文件减小为2,683,293位,这大约是原始大小的3%。
数据缩合器和方法可以提供含有预定义数据对象的一或多个预定参考文件。数据缩合器和方法使每个源文件中识别出的重复数据对象与预定参考文件中的预定数据对象相关,由此形成高级参考文件。位于高级参考文件中的新数据对象被指派唯一十六进制(或其它NBase)值,并且这样的新数据对象被加入新缩合文件中。在任一情况下,使用数据缩合器和方法会将数字指针添加到缩合文件中的每个数据对象。例如,一个预定参考文件可以含有130,000个常见的英语词语,其中用5hpo格式提供1,048,576个值。另一预定参考文件可以含有完整染色体的外显子/内含子基因组序列,其中用1hpo格式提供16个值。另一预定参考文件可以含有FastQ多变量格式,其中用3hpo格式提供4096个值。另一预定参考文件可以包含常见语言与世界上每种常见语言的变化形式。可以用5hpo格式或高于5hpo格式为预定参考文件提供优化。回车、例如文件末尾或行尾、细胞符号、列、行、制表键等空值区可以建构到常见库和/或FastQ库中。
预定参考文件可以构造成允许多个数据对象合并以便通过单个十六进制(或NBase)数据对象标示。因而,来自两个(或更多)相关但是不相同的滑尺的值可以合并。当处理基因体数据时,例如碱基对“A(腺嘌呤)”可以与特定链和位置的公差内的“#”Phred分数组合,以创建一个通过单个十六进制(或NBase)数据对象识别的值。
数据缩合器和方法向缩合文件(例如预定和/或高级参考文件)中的每一个指派唯一的十六进制(或NBase)对象代码。作为一实例,数据“O say can you see by the dawn'searly light,”可以被指派如下十六进制数据对象代码值:
数据缩合器和方法通过向存储于库中的缩合数据(例如缩合文件、数组文件等)指派唯一的十六进制、Base-256或其它NBase值而提供固有加密。接收方必须知道这样的十六进制、Base-256或其它NBase值才能使用缩合数据文件。
数据缩合器和方法通过为包含于缩合数据文件中的数据创建交替起始点、位置偏移、错误数据对象、空白和非线性写入模式,借此可以增强加密。
另外,数据缩合器和方法可以利用常规加密技术,其允许选择当前日期、当前时间、关键词或其它通用α/数值输入,以创建一次性密钥对数据的记录进行加密。当然,数据的接收方还必须能存取密钥才能解锁和利用所述数据。数据缩合器和方法还准许用户创建其自身的算法或提供增加的安全措施。例如,一个缩合数据文件可以用另一缩合数据文件或标准数据文件加密。
数据缩合器和方法将在常规计算机处理单元(CPU)上工作,但是还将在比如(例如)图形处理单元(GPU)之类的其它处理单元上工作。
数据缩合器和方法提供的固有或特别加密将支持标准先进先出(FIFO),但并不是用所述格式操作所必需的。有可能在文件的随机区域中开始,然后以非线性方式从坐标跳转到坐标。
在另一个实施例中,可以直接从FastQ文本文件的内容填充缩合数据文件(例如缩合文件、数组文件等)。对于每个FastQ数据包,将行1中的每个单个字符(例如数字或字母)译码,然后是行尾标记。组合每个FastQ数据包的行2和4,以将双字母代码缩合成十六进制(或NBase)数据对象,然后是行尾(EoL)标记,而行3被忽略。当所有FastQ数据包缩合完成时,添加文件末尾标记。接下来,处理器302将每个单个字母或双字母代码翻译成十六进制(或NBase)数据对象,从而使得每个缩合数据文件元素构成单个十六进制(或NBase)数据对象。在缩合数据文件的其余部分中填充无值(例如空)十六进制(或NBase)数据对象,直到文件末尾标记(EOF)。
在恢复过程中,缩合文件(或数组文件)文件中的十六进制(或NBase)数据对象恢复成源文件中的原始数据。在上文所说明的替代实施例中,使用处理器302将每个十六进制(或NBase)数据对象翻译成单字母或双字母未缩合数据对象。每个恢复后的FastQ数据包现在是2行。对于每个FastQ数据包:(a)读取所有十六进制(或NBase)数据对象直到行尾,(b)将每个十六进制(或NBase)数据对象翻译成单个字母,并且用文本填充数据文件,(c)将文本的FastQ包行1写入到未缩合数据对象,(d)读取所有十六进制(或NBase)数据对象直到行尾(EoL),(e)将FastQ包行2读取到未缩合数据文件中(每个元素将具有两个文本字符),(f)将每个未缩合数据文件元素的第一字符写入到文本行(FastQ包行2),(g)写入具有+字符的文本行(FastQ包行3);以及(h)将每个缩合数据文件元素的第二字符写入到文本行(FastQ包行4)。忽略文件末尾标记(EOF)和所有无值十六进制数据对象。所得的文本文件不再缩合,可以保存起来。
数据缩合器和方法可以利用具有不同数字系统的计算机,所述数字系统例如(但不限于)八进制(base-8)、十进制(base-10)、十四进制(base-14)、十五进制(base-15)、十六进制(base-16)、二十四进制(base-24)、三十二进制(base-32)、三十六进制(base-36)、六十四进制(base-64)和二百五十六进制(base-256)。
一些base-2计算机使用base-16(十六进制)代码表示计算机存储器地址。这样的十六进制表示法提供二进制译码值的人类友好型表示。这种表示法使用十六个分区符号(最经常是符号0-9)表示值零到九,并且使用A、B、C、D、E和F(或替代地a-f)表示值十到十五。一个十六进制数字表示半字节,这是一个字节(8位)的一半。字节值的范围可以是从0到255(十进制),但是可以更方便地表示为00到FF范围内的两个十六进制数字。
在Base-256实施例中,利用256个值的预定(例如预定义)参考文件转换和缩合原始数据源文件中可能发生的数据对象。在这个实施例中,包含所有常见字符、α-数值和符号,还有动作字符,例如(但不限于)换行符、制表键、文件末尾和空值。接着添加长项目,由英语中最常用的多字符单词来定义。可以针对任何语言和/或话题构造预定(例如预定义)参考文件并且不限于英语。
以下实例展示Base-256预定参考文件的使用。
用于转换的原始文件:
--The big brown rabbit likes green leafy carrots;he eats them all inthe garden.--
以下词语是在预定参考文件中已经被指派Base-256值的常见词语。
The=130 Likes=131 he=132 them=133 all=134
green=135 brown=136 big=137
预定参考文件还包含所有常见的英语字母数字字符和符号,还有动作字符。
数据缩合器接着将原始源文件转换成缩合数据对象。原始源文件含有81个数据对象(字母数字字符、符号、动作字符)。缩合原始数据对象可以通过以下方法减少所述数目。
两次使用‘the’=数据对象从总共6个减少为2个
‘big’=3个减少为1个
‘brown’=5个减少为1个
‘likes’=5个减少为1个
‘green’=5个减少为1个
‘he’=2个减少为1个
‘them’=4个减少为1个
‘all’=3个减少为1个
总共减少的数据对象(6+3+5+5+5+2+4+3)33得到9个缩合数据对象。
(81个原始数据对象,包含行尾和文件末尾-33)+9个所得缩合数据对象。
总缩合数据对象=总共57个数据对象。
于是用总数据对象计数57而不是81限定数组文件,确定平方根并且将其舍入成最接近的整数,并且如[00047]段中限定地填充数组文件。
NBase实施例的缩合是用可变方法进行的,可以选择通过单个数据对象或许多数据对象的重现(长读取),还有用于单个原始源文件或许多原始文件的优化方法进行优化选择。
短读取NBase在创建优化库时仅仅利用单个字母数字字符、符号和动作字符。
在以下实例中,将使用短读取NBase来优化单个原始源文件。
用于转换的原始源文件:
--AACCTGGTccccTTTCCGGAAAANNNNNCCccttggaaaa--
短读取优化检查文件中的数据对象并且确定总共存在42个,包含行尾和文件末尾变量。NBase接着确定所使用的数据对象是A、C、T、G、a、c、t、g、N、行尾和文件末尾。原始源文件中总共存在11个唯一数据对象,因此,NBase缩合文件将被定义为Base-11集合,仅仅需要使用11个唯一数据对象。如[00047]段中所述创建数组文件。
长读取NBase还读取所有使用的单次使用字母数字字符、符号、和动作字符,且随后接着读取所有词语和/或短语,查找重现次数最多的以填充缩合文件中的其余空间。一旦完成,就使用新缩合文件确定用于创建[00047]段中描述的数组文件的总共正式数据对象。
NBase多文件优化与第[00063]和[00064]段中描述的相同,只是要注意,不是读取单个原始源文件以限定优化缩合文件,而是读取一个以上文件以确定优化缩合文件。
在Base-256(或NBase)实施例中,包深度是通过[00047]段中的方法指派给打包到一个缩合数组文件中以便写入的值的Base-256(和/或NBase)的数目。包深度必须是大于或等于一(≥1)的正整数+i。
在下面的实例中,[DO]中的项目将表示为已经与来自预定参考文件的值相关联的Base-256(或NBase)数据对象的实例。()里面的项目将被视为保持在由包深度限定的单个缩合数据对象中。EoL将保持行尾的数据对象参考,EoF将保持文件末尾的数据对象参考。
1的包深度:
([DO])([DO])([DO])([DO])([DO])([DO])([DO])([DO])([DO])([DO])([DO])([EoL])([EoF])
在以上实例中存在13个用于缩合的数据对象,包含EoL和EoF。因而,将用十三(13)的平方根限定数组文件,从而使得将用[00047]段中描述的方式创建数组文件。
2的包深度:
([DO][DO])([DO][DO])([DO][DO])([DO][DO])([DO][DO])([DO][EoL])([EoF][NULL])
在以上实例中存在7个用于缩合的数据对象,包含EoL和EoF。因而,将用七(7)的平方根限定数组文件,从而使得将用[00047]段中描述的方式创建数组文件。
3的包深度:
([DO][DO][DO])([DO][DO][DO])([DO][DO][DO])([DO][DO][EoL])([EoF][NULL][NULL])
在以上实例中存在5个用于缩合的数据对象,包含EoL和EoF。因而,将用五(5)的平方根限定所述数组文件,从而使得将用[00047]段中描述的方式创建数组文件。
4的包深度:
([DO][DO][DO][DO])([DO][DO][DO][DO])([DO][DO][DO][EoL])([EoF][NULL][NULL][NULL])
在以上实例中存在4个用于缩合的数据对象,包含EoL和EoF。因而,将用四(4)的平方根限定所述数组文件,从而使得将用[00047]段中描述的方式创建数组文件。
在上述两个实施例中可以预设或手动地限定包深度。对于所有意图和目的,以上实例的包深度可以设置成十三(13),并且数组文件的大小将是一个(1)缩合数据对象,十三个Base-256(或NBase)值存储在所述单个数组文件内部。
图1说明一种数据文件缩合方法100。如本申请各种地方所阐述,所述系统和方法可以通过执行存储于存储媒体中的计算机代码的处理器来实现。
所述处理器可以包括微处理器和其它从存储系统检索和执行软件的电路。处理器可以在单个处理装置内实施,但是也可以跨越在执行程序指令时协作的多个处理装置或子系统分布。处理器的实例包含通用中央处理单元、专用处理器和逻辑装置,以及任何其它类型的处理装置、处理装置的组合或其变化形式。
存储装置可以包括任何处理器可读的并且能够存储软件的存储媒体。存储系统可包含在任何方法或技术中实施用于存储例如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性以及可装卸式和非可装卸式媒体。存储系统可以实施为单个存储装置,但是也可以跨越多个存储装置或子系统实施。存储系统可以进一步包含额外元件,例如能够与处理器通信的控制器。
存储媒体的实例包含随机存取存储器、只读存储器、磁盘、光盘、快闪存储器、虚拟存储器和非虚拟存储器、磁性组件、磁带、磁盘存储装置或其它磁性存储装置,或者任何其它可以用于存储期望信息并且可以通过指令执行系统存取的媒体,以及其任何组合或变化形式或任何其它类型的存储媒体。
步骤1.0包括启动缩合软件。用于缩合源文件的代码基于其所在的操作系统平台执行、运行和/或起始。在这个动作时,缩合软件将把适当的组件到有效存储器(RAM)中,并且将辅助组件加载到固定或便携式存储媒体上,以在缩合过程期间在需要时使用。
步骤1.1包括选择要缩合的源文件,下文称为源文件。源文件的选择是通过缩合软件菜单执行的。这可以包含但不限于浏览菜单对话框、将文件拖放到缩合软件中、和/或打开和选择文件选项。这样会加载用于缩合的文件,并且创建源文件的链接以用于缩合过程。
步骤1.2包括分析源文件。源文件分析可以包含以下各项中的一或多项,并且不限于所列的实例:
●为驻留在源文件中的所有数据对象计数。
●估计内部格式化(例如电子表格、FastQ文件等)
●重现数据对象识别(例如限定群组)
●预定/继承数据对象识别(例如来自预定参考文件)
●预定/手动输入的算法(例如数字基础译码系统)
当默认或手动地确定的方法符合所有准则时,将设置并且已知那些数据对象(例如一或多个ASCII文本字符)的总数,从而准许过程移动到下一个缩合步骤。
步骤1.3起始预定参考文件和缩合文件的任选的优化。基于源文件分析,存在这样的选项:通过将十六进制、Base-256或其它NBase值与数据对象相关联,并且为数组文件选择除了默认值3之外的包深度,借此定制预定参考文件(和缩合文件)。定制的缩合优化方法可以手动指定或自动选择。
步骤1.4涉及建立数组文件以保持缩合数据。整个已知数据对象是一个整数。导出数据对象的平方根。这用于确定数组文件的X轴和Y轴的参数。由于大部分平方根利用小数位,所以总缩合数据对象的导出平方根舍入成最接近的整数,从而使得数组文件始终足够大,足以处理源文件的缩合,但是浪费的空间从不多于对少于一个额外行的数据对象的额外需要。在给定舍入至最靠近的整数的数据对象的平方根的情况下,缩合数组文件对于X轴和Y轴将被定义为整数值。这样为形成数组的过程准备虚拟存储器。
步骤1.5起始缩合过程。在源文件上起始缩合是从确认继续开始。
步骤1.6涉及将经过评估的数据对象读取到源文件中以供处理。读取用于缩合的数据对象是作为一或多种方法发生,但不限于所列实例:
●一次一个数据对象
●基于在步骤1.3中执行的优化分析
●预定/继承结构
将数据对象读取到有效存储器中以用于缩合处理。
步骤1.7涉及寻址源文件以获得针对经过评估的数据对象和/或数据对象群组限定的十六进制、Base-256或其它NBase值。将有效存储器中的数据对象与预定参考文件比较,预定参考文件保持对于包含于原始源文件中的数据对象的所标示的十六进制、Base-256或其它NBase值指派。
步骤1.8涉及用译码的数据填充缩合文件。写入十六进制、Base-256或其它NBase值可以用不同的方法写入到缩合文件,但不限于所列的实例:
●从左到右,从上到下(默认);
●从中心逆时针方向;
●自定义设计和指派模式;和/或
●碎片法
●流
●基于在步骤1.3中执行的优化分析
步骤1.9指代转换循环。缩合文件的填充将一直继续到没有额外数据对象要从源文件中读取为止。如果遇到额外数据对象缩合文件将继续填充(参见步骤1.6),并且继续再次执行步骤1.7和1.8。如果未遇到额外数据对象,则过程将继续到步骤1.10,这样结束循环过程。当发生这种情况时,过程进行到文件完成协议。
步骤1.10涉及标记缩合文件的末尾。将十六进制、Base-256或其它NBase值指派给文件末尾终结符。这个十六进制、Base-256或其它NBase值从不与任何其它十六进制、Base-256或其它NBase值指派共用,而是出于多种多样的原因在实际标示的所指派的十六进制、Base-256或其它NBase值方面可能有所不同。这个十六进制、Base-256或其它NBase值在数据文件中仅仅使用一次。
步骤1.11涉及在缩合文件中的其余文件空间中填充用于空值的十六进制、Base-256或其它NBase值。空值也被称作空白空间并且类似于文件末尾,但是,由于文件末尾仅仅可以用作终结符一次,所以根据缩合文件的结构性要求,必须填充虚拟存储器中驻留的缩合文件中的任何其余的空间。将十六进制、Base-256或其它NBase值指派给空值。这个值从不与任何其它十六进制、Base-256或其它NBase值指派共用,而是出于多种多样的原因,可以在实际标示的所指派的十六进制、Base-256或其它NBase值方面是不同的。
步骤1.12涉及为缩合文件命名。缩合输出文件可以存储在任何具有缩合文件必需的充分写入空间的固定或便携式存储媒体上。此时可以为缩合文件确定名称。这个命名没有具体要求,并且可以专门确定或通过外部确定的标准来确定。
步骤1.13将缩合文件写入到磁盘以供存储。有效存储器中的缩合文件被写入到固定或便携式存储媒体上的存储空间,并且现在被称作缩合数据输出文件。缩合文件可以视需要从固定或便携式存储媒体存取,而无需修改其新缩合状态。
步骤1.14关闭源文件和缩合文件。从有效存储器中释放源文件和缩合文件。
步骤1.15关闭缩合软件。从有效存储器中释放缩合软件。删除软件执行中使用的任何临时数据文件。
图2说明将缩合数据恢复成其原始未缩合状态的一种恢复方法200。
步骤2.0涉及启动恢复程序。用于恢复缩合文件的代码基于其所在的操作系统平台执行、运行和/或起始。这个动作后,恢复软件将把适当的组件加载到有效存储器(RAM)中,并且将辅助组件加载到固定或便携式存储媒体上,以便在恢复过程期间需要时使用。恢复使用是围绕这样的需要:在虚拟环境中快速查看一些缩合文件或恢复成完整源文件以供传送到无法使用含糊缩合数据文件技术的系统或实体。
步骤2.1涉及通过恢复软件菜单选择缩合(例如缩合文件或恢复文件)文件。缩合文件的选择是通过恢复软件菜单执行的。这可以包含但不限于浏览菜单对话框、将缩合文件拖放到恢复软件中、和/或打开和选择缩合文件选项。这样会加载要恢复的缩合文件,并且创建缩合文件的链接以用于恢复过程。
步骤2.2涉及要恢复的缩合数据文件数量。用户可以指明小于缩合文件的100%的一定数量来恢复。这个数量可以是所选的百分比、行号或其它未列举的方法。
步骤2.3涉及选择输出方法。用户可以指明输出数据文件(例如目的地或虚拟文件)或可视媒体上的查看窗的输出。输出数据文件可以存储在任何具有输出数据文件必需的充分写入空间的固定或便携式存储媒体上。此时可以为输出数据文件确定名称。这个命名没有具体要求,并且可以专门确定或通过外部确定的标准来确定。
步骤2.4涉及读取缩合文件。缩合文件使用以下方法中的一种方法读取,但不限于所列的实例。
●从左到右从上到下(默认)
●从中心逆时针方向
●以算法方式指派的模式
●碎片法
●通过库确定
●流
步骤2.5涉及从缩合文件中读取十六进制、Base-256或其它NBase值。从缩合文件中读取十六进、Base-256或其它NBase值。
步骤2.6指代协商高级参考文件和缩合文件中指定的包深度。对照库限定十六进制、Base-256或其它NBase值。库将十六进制、Base-256或其它NBase值与跟原始源文件相关联的所指派数据对象链接起来。
步骤2.7指代将所恢复的数据对象写入到存储器中的目的地数据文件。接着用以下方法中的一或多种将所恢复的数据对象填充到目的地文件中,但不限于列表中的实例。
●恢复预定/手动输入的算法
●所识别的重现结构性实体
●格式细节
●通过库确定
●流
目的地文件驻留在有效存储器(RAM)中。目的地文件的填充将一直继续到在缩合文件中遇到文件末尾(EOF)的十六进制、Base-256或其它NBase值(1.11)为止。目的地文件将用与缩合之前的原始源文件相同的方式格式化,这个原始源文件可以是以下类型之一的文件,但不限于所列的实例:
●Word、Excel、文本文件
●数据库文件
●电子医疗记录
●日志文件
●FASTQ/基因组文件
●二进制文件
步骤2.8指代恢复循环。写入循环被定义为单个例子,其中恢复软件必须将信息写入到有效存储器或者固定或便携式存储媒体。如果系统限制将适应将用户规定的数量在2.2或整个目的地文件中写入到有效存储器(RAM),则恢复软件将认识到仅仅需要单个写入循环,并且目的地文件的填充将继续到没有额外的十六进制、Base-256或其它NBase值要从缩合文件中读取为止。如果系统限制将不适应将用户规定的数量在2.2或整个目的地文件中写入到有效存储器(RAM),则恢复程序将计算将容许以多个部分填充目的地文件的大于一(1)的写入循环数量。应当如何计算写入循环大小的确定可以是但不限于以下方法中的一种:
●通过缩合数据文件中的行尾
●通过缩合文件的分数或百分比
●使用可用RAM的分数或百分比
步骤2.9指代恢复软件确定它已达到它的最终写入循环的末尾。如果已达到最终写入循环的末尾,则恢复软件进行到步骤2.10。如果尚未达到最终写入循环的末尾,则恢复软件进行到步骤2.9.5。
步骤2.9.5指代将目的地文件写入到固定或便携式存储媒体上的临时数据文件。临时数据文件特性遵循与步骤2.7中描述的目的地文件相同的规范和限制。
步骤2.10指代数据文件输出或查看器输出的较早选择。(步骤2.3)所述过程此时在到数据文件或查看器的输出之间分叉。
步骤2.11涉及将目的地文件写入到固定或便携式存储媒体的过程的终结。恢复过程中涉及的临时数据文件与有效存储器中的目的地文件组合并且写入到固定或便携式存储媒体。目的地文件现在作为可以视需要从固定或便携式存储媒体存取的数据文件驻留。
步骤2.12关闭源数据文件和输出数据文件。从有效存储器中释放源数据文件和输出数据文件。从固定或便携式存储媒体中删除恢复过程中涉及的临时数据文件。
步骤2.13指代如果已选择可视查看则创建查看窗(步骤2.3)。在有效存储器中创建能够查看目的地文件的过程。
步骤2.14指代将恢复的目的地文件输出到在步骤2.13中创建的查看器窗口。恢复过程中涉及的临时数据文件和有效存储器中的目的地文件经过组合并且准备以便在查看器窗口中查看。这是用于在可视媒体上显示以便检测或诊断/审阅内容的传输过程。
步骤2.15关闭源目的地文件和查看器窗口。从有效存储器中释放目的地文件和查看窗。从固定或便携式存储媒体中删除恢复过程中涉及的临时数据文件。
步骤2.16关闭恢复软件。从有效存储器中释放恢复软件。删除软件执行中使用的任何临时文件。
在前述描述中,为了简洁、清晰和理解所以使用了某些术语。不应由其推断超出现有技术要求的不必要的限制,因为这些术语是用于描述目的并且希望得到广义的解释。本文所述的不同配置、系统和方法步骤可单独使用或结合其它配置、系统和方法步骤使用。预期在所附权利要求书的范围内,各种等效物、替代方案和修改是可能的。

Claims (18)

1.一种用于减少数据存储和处理要求的无损数据缩合器,其包括:
数据存储器,其包含:
源文件,其具有有待缩合的数据对象;
预定参考文件,其具有预定数据对象和预定数据对象群组;
高级参考文件,其具有从所述源文件和所述预定参考文件中的至少一个获得的以算法方式选择的数据对象和以算法方式选择的数据对象群组;
缩合文件,其包含缩合数据对象和缩合数据对象群组;以及
数组文件,其包含所述缩合数据对象与所述缩合数据对象群组的数组;以及
缩合处理器,其操作以:
至少部分地基于所述数据对象的计数,选择至少一个数字基础译码系统;
至少部分地基于所述数据对象的所述计数,选择所述数组文件的包深度;
至少部分地基于所述数据对象的所述计数,限制所述至少一个数字基础译码系统;
分析所述源文件中的所述数据对象,以定位一或多个重现数据对象和重现数据对象群组;
向所述预定参考文件中的所述数据对象和数据对象群组指派第一唯一代码;
向所述高级参考文件中的所选的重现数据对象和数据对象群组以及所选的非重现数据对象和数据对象群组指派第二唯一代码;
将所述译码的数据对象和所述译码的数据对象群组放入在所述缩合文件中;以及
在所述数组文件中构建所述缩合数据对象的数组,
其中所述无损数据缩合器允许高效并且准确的无损数据存储和传送。
2.根据权利要求1所述的无损数据缩合器,其中所述缩合处理器具有指派给预定数据对象和数据对象群组的base-256译码系统,以及指派给非预定数据对象和数据对象群组的base-16译码系统。
3.根据权利要求1所述的无损数据缩合器,其中所述存储器数组由译码的数据对象和数据对象群组的总数的平方根限定,所述总数的平方根必要时舍入为整数,并且必要时用空值数据对象填充所述数组。
4.一种用于执行无损缩合操作的设备,其包括:
数据源存储器,其具有包含数据对象的输入数据的至少一个数据文件;
缩合处理器,其被配置成区分数据对象群组与单个数据对象,并且区分重复次数超出所选阈值的重复数据对象群组;以及
参考库,其包含定制文件,所述定制文件包含预定义数据对象和预定数据对象群组,
其中所述缩合处理器被进一步配置成向所述重复数据对象和数据对象群组以及非重复数据对象和数据对象群组指派唯一代码以提供缩合文件。
5.根据权利要求4所述的设备,其中所述缩合处理器向预定义数据对象和数据对象群组指派base-256译码系统,并且向非预定义数据对象和数据对象群组指派base-16译码系统。
6.根据权利要求4所述的无损数据缩合器,其中所述存储器数组由译码的数据对象和数据对象群组的总数的平方根限定,所述总数的平方根必要时舍入为整数,并且必要时用空值数据对象填充所述数组。
7.一种用于减少数据存储和处理要求的无损数据缩合器,其包括:
数据源存储器,其具有包含数据对象的输入数据的至少一个数据文件;
缩合存储器,其具有数据对象群组,每个数据对象群组包含根据所述数据源存储器中的数据对象的重复模式的一或多个数据对象;
缩合处理器,其操作以基于所述数据源存储器中的数据对象和数据对象群组的数目,选择多个数字基础译码系统中的至少一个;
定制参考库存储器,其具有被指派来自所选数字基础译码系统中的至少一个的唯一代码的预定义数据对象和预定义数据对象群组;以及
经过制定的参考库存储器,其具有被指派来自所述数字基础译码系统中的至少一个的唯一代码的重现和非重现数据对象和数据对象群组,连同所选的经过译码的预定义数据对象群组;以及
所述制定的参考库存储器具有存储器数组,所述存储器数组由经过译码的数据对象和数据对象群组的总数的平方根限定,所述总数的平方根必要时舍入成整数,并且必要时用空值数据对象填充所述数组,所述存储器数组的包深度基于所述制定的参考库中的经过译码的数据对象和数据对象群组的总数的计数。
8.一种用于减少数据存储和处理要求的无损数据缩合器,其包括:
数据存储器,其具有至少一个源文件,所述源文件存储包含有待缩合的多个重现和非重现数据对象的输入数据;
接口存储器,其操作以从输入数据接收和读取数据对象;
参考库,其存储与对应的数据对象相关的经过译码的值;
缩合处理器,其连接到所述参考库以优化所述输入数据;以及
缩合存储器,其经过连接以接收优化输入数据并且提供缩合输出数据。
9.根据权利要求8所述的无损数据缩合器,其中所述缩合处理器基于最优缩合文件大小指派数字基础译码系统。
10.根据权利要求9所述的无损数据缩合器,其中所述缩合处理器向所述参考库数据对象指派base-256译码系统,并且向数据存储器数据对象指派base-16译码系统。
11.根据权利要求9所述的无损数据缩合器,其中所述缩合处理器至少部分地基于数据对象群组的重复模式的数目指派数字基础译码系统。
12.根据权利要求8所述的无损数据缩合器,其中所述缩合存储器具有被选择成减少存储要求的包深度。
13.一种无损数据缩合系统,其包括:
缩合处理器,其被配置成基于数据对象群组的重复模式的数目从多个数字基础译码系统中选择至少一个数字基础译码系统,并且向每个数据对象群组指派来自所述所选的数字基础译码系统中的所述至少一个的唯一代码;以及
缩合存储器,其具有经过译码的数据对象群组以提供缩合数据存储和数据传送。
14.一种无损数据缩合系统,其包括:
缩合处理器,其被配置成向包含数据对象的重复图案的数据对象群组指派唯一代码;以及
存储器数组,其存储经过译码的数据对象群组,所述经过译码的数据对象群组具有选择成减少所述存储器数组的存储要求的包深度。
15.一种用于将缩合数据对象恢复成未缩合形式的设备,其包括:
数据存储器,其包含:
缩合文件,其具有缩合数据对象;
用于未缩合数据对象的至少一个目的地模式;
参考文件,其具有经过译码的重现和非重现缩合数据对象,以及识别与所述缩合文件相关联的至少一个或多个数字译码系统和适用的情况下的包深度的信息;以及
恢复处理器,其操作以:
选择有待恢复的所述缩合数据对象的至少一部分;
选择用于使用未缩合数据对象的所述目的地模式;以及
将所述缩合文件与所述参考文件链接,以将所述缩合数据对象恢复成未缩合数据对象,以便高效并且准确的使用,而不会损失所述数据对象。
16.一种用于例如数字、字母、词语、短语和其它标志的数据对象的无损数据缩合以允许高效并且准确安全的数据评估、数据存储和数据传送的方法,所述方法包括:
获得有待缩合的数据对象集合;
将所述数据对象集合放入源文件中;
进行所述源文件的分析,包含所述数据对象的总数的计数;
读取所述源文件,并且响应于所述源文件内的数据对象的重复模式,创建数据对象群组,每个数据对象群组包含一或多个数据对象;
为数据对象群组的总数计数;
基于数据对象群组的所选数量,选择一或多个数字基础译码系统;
建立预定义数据对象群组的一或多个库参考文件;
向每个预定义数据对象群组指派来自所述所选译码系统的第一唯一代码;
识别各个重现数据对象群组与非重现数据对象群组区分开来;
向并非预定义数据对象群组的每个重现和非重现数据对象群组指派来自所述所选译码系统的第二唯一代码;
将经过译码的数据对象群组放入一或多个库参考文件中;
读取所述源文件并且为经过译码的数据对象群组的所述总数计数;
选择用于存储器数组的包深度;
形成所述存储器数组,所述存储器数组由所选的经过译码的数据对象群组的所述总数的平方根限定,并且必要时舍入以建立整数;
添加空值的经过译码的数据对象以填充所述数组;以及
将所述数组放入存储媒体上。
17.一种缩合数据以提供减少的数据存储和处理的方法,其包括:
读取包含多个数据对象的数据文件;
识别重现数据对象群组与非重现数据对象群组区分开来,每个重现数据对象群组包含一或多个数据对象;
向每个重现和非重现数据对象群组指派代码;
制定最佳大小的参考库;以及
将所述经过译码的数据对象群组放入所述参考库中以用于数据存储和处理。
18.一种用于例如数字、字母、词语、短语和其它标志的缩合数据对象的无损数据恢复的方法,其包括:
获得缩合数据对象的缩合文件;
选择有待恢复的所述缩合数据对象的至少一部分;
选择用于恢复数据对象的目的地模式;
获得具有指派给重现和非重现缩合数据对象的代码的参考文件,所述参考文件具有识别与所述缩合文件相关联的至少一个或多个数字译码系统和适用的情况下的包深度的信息;以及
基于与所述参考文件的链接,读取所述缩合文件,以将所述缩合数据对象恢复成未缩合数据对象,以便实现高效并且准确的使用,而不会损失所述数据对象。
CN201580006203.4A 2014-01-29 2015-01-29 数据缩合器、设备、系统及方法、数据恢复设备及方法 Expired - Fee Related CN105940611B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461933104P 2014-01-29 2014-01-29
US61/933,104 2014-01-29
PCT/US2015/013424 WO2015116762A1 (en) 2014-01-29 2015-01-29 Optimized data condenser and method

Publications (2)

Publication Number Publication Date
CN105940611A true CN105940611A (zh) 2016-09-14
CN105940611B CN105940611B (zh) 2020-09-04

Family

ID=52472607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580006203.4A Expired - Fee Related CN105940611B (zh) 2014-01-29 2015-01-29 数据缩合器、设备、系统及方法、数据恢复设备及方法

Country Status (9)

Country Link
US (1) US10437825B2 (zh)
EP (1) EP3097644A1 (zh)
JP (1) JP2017513252A (zh)
KR (1) KR102227912B1 (zh)
CN (1) CN105940611B (zh)
AU (1) AU2015211043A1 (zh)
CA (1) CA2936485C (zh)
TW (1) TW201535984A (zh)
WO (1) WO2015116762A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580800A (zh) * 2020-04-14 2020-08-25 新浪网技术(中国)有限公司 Golang语言下静态资源打包方法及装置
CN112054805A (zh) * 2020-09-14 2020-12-08 哈尔滨工业大学(深圳) 一种模型数据压缩方法、系统及相关设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867134B2 (en) * 2016-09-02 2020-12-15 Hitachi High-Tech Corporation Method for generating text string dictionary, method for searching text string dictionary, and system for processing text string dictionary
WO2020247243A1 (en) * 2019-06-04 2020-12-10 Delahoussaye Kevin Neuroscience based learning-computing
US11487467B1 (en) * 2021-05-28 2022-11-01 Microsoft Technology Licensing, Llc Layered memory mapped file technology

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US5604495A (en) * 1994-04-22 1997-02-18 Seta Co., Ltd. Data compression method and system
CN1148916A (zh) * 1995-03-24 1997-04-30 摩托罗拉公司 数据压缩编码器/译码器及有效的重复字符串处理的方法
US20050081145A1 (en) * 2003-10-09 2005-04-14 Wade Schwartzkopf Automatic layout generation for photobooks
US20100153467A1 (en) * 2008-12-17 2010-06-17 Oracle International Corporation Array attribute configurator

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL91221A (en) 1989-08-04 1995-03-30 Ibm Israel Binary text compression method
US5742707A (en) 1995-06-27 1998-04-21 Motorola, Inc. Method and system for compressing a pixel map signal using a hybrid polynomial coefficient signal
WO1997031327A1 (en) 1996-02-26 1997-08-28 Motorola Inc. Personal human genome card and methods and systems for producing same
US5854857A (en) 1996-09-26 1998-12-29 Xerox Corporation Using encoding cost data for segmentation and background suppression in JPEG-compressed images
CN1238602A (zh) 1999-03-22 1999-12-15 刘杰 一种以颜色为编码的信息存储方法
MY130357A (en) 1999-05-24 2007-06-29 Tani Electronics Corp Method of expression, recording, reproduction, and communication of computer object using color, apparatus for recording and/or reproduction, recording medium, and method of preparation of code
AU2002259081A1 (en) 2001-05-01 2002-11-11 Amicas, Inc. System and method for repository storage of private data on a network for direct client access
US20100299531A1 (en) 2004-03-17 2010-11-25 Fidelitygenetic Ltd. Methods for Processing Genomic Information and Uses Thereof
US7657383B2 (en) 2004-05-28 2010-02-02 International Business Machines Corporation Method, system, and apparatus for compactly storing a subject genome
US8340914B2 (en) 2004-11-08 2012-12-25 Gatewood Joe M Methods and systems for compressing and comparing genomic data
US8270716B2 (en) 2007-12-04 2012-09-18 Ricoh Company, Limited Selectively compressing picture and text areas of an image to maintain highest quality and effective compaction
WO2009138938A2 (en) 2008-05-15 2009-11-19 Koninklijke Philips Electronics N.V. Method, apparatus, and computer program product for compression and decompression of an image dataset
US10090857B2 (en) 2010-04-26 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for compressing genetic data
US9177100B2 (en) 2010-08-31 2015-11-03 Annai Systems Inc. Method and systems for processing polymeric sequence data and related information
US9027122B2 (en) 2010-12-22 2015-05-05 Yahoo! Inc. Isolation tool for user assistance in solving a captcha test
US9215162B2 (en) 2011-03-09 2015-12-15 Annai Systems Inc. Biological data networks and methods therefor
WO2012175245A2 (en) 2011-06-21 2012-12-27 Illumina Cambridge Limited Methods and systems for data analysis
US8838510B2 (en) 2011-09-16 2014-09-16 International Business Machines Corporation Choosing pattern recognition algorithms and data features using a genetic algorithm
EP2595076B1 (en) 2011-11-18 2019-05-15 Tata Consultancy Services Limited Compression of genomic data
EP2608096B1 (en) 2011-12-24 2020-08-05 Tata Consultancy Services Ltd. Compression of genomic data file

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US5604495A (en) * 1994-04-22 1997-02-18 Seta Co., Ltd. Data compression method and system
CN1148916A (zh) * 1995-03-24 1997-04-30 摩托罗拉公司 数据压缩编码器/译码器及有效的重复字符串处理的方法
US20050081145A1 (en) * 2003-10-09 2005-04-14 Wade Schwartzkopf Automatic layout generation for photobooks
US20100153467A1 (en) * 2008-12-17 2010-06-17 Oracle International Corporation Array attribute configurator

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JARI HEIKKINEN等: ""Dictionary-Based Program Compression on Transport Triggered Architectures"", 《2005 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580800A (zh) * 2020-04-14 2020-08-25 新浪网技术(中国)有限公司 Golang语言下静态资源打包方法及装置
CN112054805A (zh) * 2020-09-14 2020-12-08 哈尔滨工业大学(深圳) 一种模型数据压缩方法、系统及相关设备

Also Published As

Publication number Publication date
CA2936485A1 (en) 2015-08-06
EP3097644A1 (en) 2016-11-30
KR102227912B1 (ko) 2021-03-15
AU2015211043A1 (en) 2016-08-18
CA2936485C (en) 2020-09-01
US10437825B2 (en) 2019-10-08
KR20160113167A (ko) 2016-09-28
JP2017513252A (ja) 2017-05-25
US20150213092A1 (en) 2015-07-30
WO2015116762A1 (en) 2015-08-06
CN105940611B (zh) 2020-09-04
TW201535984A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
Kopylova et al. SortMeRNA: fast and accurate filtering of ribosomal RNAs in metatranscriptomic data
CN105940611A (zh) 优化数据缩合器和方法
CN111090461B (zh) 一种基于机器翻译模型的代码注释生成方法
US8073874B2 (en) Bit string searching apparatus, searching method, and program
US20120102041A1 (en) Genetic information management system and method
US8712977B2 (en) Computer product, information retrieval method, and information retrieval apparatus
US8190591B2 (en) Bit string searching apparatus, searching method, and program
CN103324646A (zh) 检索支援装置及检索支援方法
CN106104541A (zh) 序列数据分析装置、dna分析系统以及序列数据分析方法
Holley et al. Bloom filter trie–a data structure for pan-genome storage
CN115048382A (zh) 基于二叉树的层级数据搜索方法、装置、设备及存储介质
US20100125614A1 (en) Systems and processes for functionally interpolated increasing sequence encoding
CN114528944B (zh) 一种医疗文本编码方法、装置、设备及可读存储介质
White Delimitating species in paleoanthropology
CN113420119B (zh) 基于知识卡片的智能问答方法、装置、设备及存储介质
KR20190062551A (ko) 액세스 유닛으로 구조화된 생물정보학 데이터에 액세스하기 위한 방법 및 장치
Bourdillon et al. Novel machine learning model to predict interval of oral cancer recurrence for surveillance stratification
CN108509764B (zh) 一种基于遗传属性约简的古生物谱系演化分析方法
Greenberg et al. LexicHash: sequence similarity estimation via lexicographic comparison of hashes
WO2011073680A1 (en) Improvements relating to hash tables
CN114556318A (zh) 可定制的分隔文本压缩框架
CN108292307A (zh) 具有对压缩数据的快速操作的前缀Burrow-Wheeler变换
EP3404560A1 (en) Search program, search device, and search method
CN110825846B (zh) 数据处理方法及装置
Bhawna et al. Natural Language Processing Based Two-Stage Machine Learning Model for Automatic Mapping of Activity Codes Using Drilling Descriptions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1229079

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1229079

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200904