跳到主要内容

Fasta / Q数据压缩机用于Mapreduce-Hadoop基因组学:空间和时间储蓄变得简单

摘要

背景

基因组数据的存储是生命科学的主要成本,可以通过专门的数据压缩方法有效地解决。由于数据生产的丰富,大数据技术的使用被视为基因组数据存储和处理的未来,MapReduce-Hadoop是领导者。有些令人惊讶的是,在Hadoop中没有专门的FASTA/Q压缩器可用。事实上,他们并没有立即部署到那里。这种技术状态是有问题的。

结果

我们提供两个不同方向的主要进步。方法论地图中,我们提出了两个具有相应软件的一般方法,使得在MapReduce-Hadoop中可以很容易地部署专门的Fasta / Q压缩机,以处理存储在分布式Hadoop文件系统上的文件,具有很少的Hadoop知识。实际上,我们提供了证据表明,到目前为止,无需在Hadoop内部提供这些专门压缩机,导致更好的节省空间,甚至在压缩数据上的更好的执行时间,特别是在Hadoop中使用的通用压缩机,特别是对于FASTQ文件。最后,我们观察到这些结果也适用于Apache Spark框架,用于处理存储在Hadoop文件系统上的FastA / Q文件。

结论

我们的方法和相应的软件基本上有助于实现Hadoop和Spark中的FastA / Q文件的存储和处理的空间和时间节省。作为我们的方法,很可能也可以应用于将来出现的FastA / Q压缩方法。

可用性

该软件和数据集可在https://github.com/fpalini/fastdoopc.

背景

数据压缩,以及来自信息论的相关技术,在生物数据的存储和挖掘方面有着悠久而非常有影响力的历史[1].近年来,由于(a)高温超导技术产生的海量数据,存储成本已变得相当可观(见[2]对于启发性分析,这仍然有效[3.4]);(b)通用压缩机,甚至广泛接受的领先方法,例如,LZ4 [5],bzip2 [6,不足以完成生物数据压缩的任务。有关技术现状的良好分析性评论载于[478]但虽然没有明确的赢家压缩机出现了。在这里,我们专注于FastA / Q文件,因为这些格式包括未组装的基因组读数,具有在生物信息学中普遍存在。

生物信息学中大数据技术与FASTA/Q数据压缩的关系

由于大量数据生产的相同原因,基因组学和生命科学的大数据技术的开发和使用已被指出为积极追求的方向[9],mapreduce [10.], Hadoop [11.]及Spark [12.是首选的[13.].这不仅仅是在其他科学领域成功的“大数据趋势”中的一个问题,因为基于这些技术的生物信息学解决方案可以比经典的HPC系列更有效,因为它们具有可用硬件的可扩展性以及他们的容易性使用。对于以后的参考,值得指出这些技术通过内置通用数据压缩机具有“压缩能力”,例如,BZIP2 [6].相应的软件被称为技术术语编解码器,其中压缩就是编码,解压缩就是解码。此外,尽管掌握了这些技术的一些知识,但还是可以向Hadoop添加其他压缩器,即额外的编解码器。需要补充的是,并不是所有的数据压缩器都适合有利可图的合并,由于需求可剥离压缩:一个文件被分成(un)压缩数据块,这些数据块可以被单独压缩和解压,在任何情况下保证整个文件的完整性。实际上,在Hadoop下仍然可以处理使用不可分割格式压缩的文件,但代价是解压缩时间很长(数据没有显示,但在请求时可用)。关于这些主题的进一步讨论见“初步”一节。我们将前一类数据压缩器称为可剥离编解码器。

使用这个术语标准在此以及以下内容中,引用在顺序计算机上执行的压缩机,即PC,我们观察到,为了使压缩机可分段,当其标准版本不是时,需要重大代码重组和重写。

鉴于上述关于数据压缩的讨论,它相当令人惊讶地令人惊讶的是,大数据技术中的生物数据的专业压缩机的部署是焦点的,特别是对于FastA / Q文件格式,例如,[14.],宿主大部分基因组数据。

方法论贡献

我们为MapReduce-Hadoop中的Fasta / Q文件部署了两种贡献,以及相应的软件。

  • 可剥离压缩机Meta-Codec当标准压缩器是可拆分的时,我们提供了一种方法来促进它在Hadoop中的合并。使用与该方法相关的软件库,为相当复杂的任务节省了大量编程时间。直观地,可剥离压缩机Meta-Codec在Hadoop可拆分编解码器中对标准可拆分压缩器执行转换。

  • 通用压缩机元编解码器不管是否可分割,只要满足一些关于输入/输出处理的温和假设,我们提供了一种方法在Hadoop中合并数据压缩器,使其可分割。值得指出的是,绝大多数标准专用FASTA/Q压缩机是不可分割的。直觉上,通用压缩机元编解码器在Hadoop可拆分编解码器中对标准压缩器执行转换。

这里有几点建议。的可剥离压缩机Meta-Codec提供了一种用于加速和简化专门的Hadoop编解码器的开发的模板。的通用压缩机元编解码器允许在Hadoop中支持任何不需要编程的标准压缩器,只要它可以作为命令行应用程序使用。如果想要获得尽可能好的性能,就必须选择第一种方法,其代价是分析压缩器处理的文件所使用的内部格式,并编写所需的集成代码。第二种选择几乎可以立即支持任何命令行压缩器,但代价可能是性能降低,与直接使用相比,我们测量的性能可以忽略不计可剥离压缩机Meta-Codec.当它使用Hadoop文件系统时,这两种方法也适用于Spark。

值得注意的是,支持两个建议的元编解码器的方法和软件不变地保持标准压缩机的压缩能力。实际上,正如在“HADOOP可分段编解码器的设计一般指南”​​中给出的技术演示中明确讨论,转换限于将标准压缩机端口到Hadoop,标准压缩和减压程序被视为黑匣子。这对于FASTQ文件尤其重要,其中即使在相同的标准压缩机内,也可以用不同的方法压缩不同的字段,例如,[15.].事实上,这一领域的领先研究已经彻底研究了FASTQ文件的各个字段对压缩的各种贡献。有兴趣的读者可在[815.].因此,重要的是,这里提出的转换不改变任何标准压缩机的内在能力,以表现良好(参见补充材料第5节)。

最后,鉴于实施新标准专业压缩机的步伐,我们的方法可以轻松支持部署Hadoop中的未来实现。

以后使用时,我们参考的是在Hadoop中使用的带有HS前缀的标准压缩机版本可剥离压缩机Meta-Codec或者Hadoop可分割编解码器已经可用,例如,LZ4变成HS_LZ4。类似地,我们使用前缀HU,当通用压缩机元编解码器已经用过。

实际的贡献

我们提供的实验证据表明,我们的方法是在大数据技术选择之一的基因组学中处理大规模数据生产的重大进步。事实上,通用压缩机元编解码器,我们通过实验比较分析显示以下涉及专门的FastA / Q压缩机的实验比较分析,VS Hadoop已经提供的通用压缩编解码器。

  • 磁盘空间储蓄与Hadoop中可用的通用HS编解码器相比,使用专门的HU编解码器可以显著减少FASTA/Q文件的大小。因此,将它们存储在Hadoop文件系统中所需的硬件成本降低了。

  • 阅读时间储蓄当使用专门的HU时,在内存中解压FASTA/Q文件所需的额外时间与从Hadoop文件系统加载该文件所需的更少的时间相平衡。这将显著减少整体阅读时间。

  • 节省网络通信时间开销以分布式方式处理通过HU压缩的FASTA/Q文件所需的并发任务数量大大减少,从而大大减少了重组输出所需的网络通信时间开销。

至于可剥离压缩机Meta-Codec,我们得到了与上述相同的结论,但实验有一定的局限性:对于具有可拆分格式的FASTA/Q文件,唯一的标准专用压缩器是DSRC [16.].最后,磁盘空间和读取时间储蓄也适用于Apache Spark Framework,用于处理存储在Hadoop文件系统上的Fasta / Q文件。

方法

本节的组织如下。“预备”部分专门介绍了Hadoop的一些基本概念,这对我们的方法的表示很有用。“Hadoop可拆分编解码器设计的一般指导方针”部分概述了Hadoop可拆分编解码器设计的一些技术问题,并提出了我们的解决方案。最后两部分将专门描述我们的两种元编解码器。

初步的

MapReduce是一种编程范式,用于开发能够在分布式系统上高效、可扩展地处理大数据的算法。它是基于序列的定义地图减少执行的函数,如任务在分布式系统的节点上。连续任务之间的数据通信由底层分布式计算框架自动处理,包括洗牌操作,需要将数据从一个节点移动到分布式系统的另一个节点。

在补充材料的第1节中,我们提供了关于这个主题的更多信息,包括Hadoop,最流行的MapReduce实现之一。这里我们只描述文件是如何存储在Hadoop文件系统(即HDFS)中的。

当上传大文件到HDFS时(默认大于128MB),会自动将大文件分区成大小相等的几个部分,每个部分称为HDFS数据块.每个块被物理分配给一个Datanode, Datanode是分布式系统中执行map和reduce任务的节点。

出于容错原因,可以根据用户定义的多个数据区在多个数据区上复制HDFS数据块复制因子.即使最初包含它变得不可用的DataNode也允许处理HDFS数据块。默认情况下,Hadoop假定每个映射任务仅处理一个特定HDFS数据块的内容。然而,可能发生,因为上述分区,将一个地图任务分析的记录被切割成位于两个不同的HDFS数据块中的两个部分。我们指的是这些案件解除责任

这种情况通过HDF通过引入来管理输入拆分概念或分裂为短。在应用程序层面,它可以用于逻辑上重新定义每个map任务要处理的数据范围,从而允许map任务处理与它正在处理的数据不同的HDFS数据块上的数据。

Hadoop支持输入压缩文件

目前,Hadoop支持两种类型的编解码器:

  • 面向数据流。该类中的编解码器要求在解压整个文件之前,每个映射任务都可以使用它。由于这个原因,当映射任务开始执行时,将向集群的其他节点发出请求。因此,要处理的文件的所有部分都从这些节点收集起来,并合并到一个本地文件中。这种类型的编解码器可以通过创建一个实现标准Hadoop的新Java类来开发CompressionCodec界面。

  • 面向块。该类中的编解码器允许每个映射任务只解压缩输入文件的一部分,而不需要解压缩其余部分。他们假设压缩文件在逻辑上被分割成数据块,这里称为压缩数据块,其中每个人可以独立于其他人减压。假设知道每个压缩数据块的边界的可能性,地图任务可以自主地提取和解压缩其HDFS数据块中存在的所有压缩数据块。通过创建实现标准Hadoop的新Java类,可以开发这种类型的编码SplitablecompressionCodec.界面。

值得注意的是,以汇流定向的方法意味着一个重要的计算开销,因为与处理它的映射任务的数量相同的文件,相同的文件被解压缩。它也意味着显着的通信开销,因为必须在运行至少一个地图任务的每个计算节点上复制相同的文件。最后,它可能会阻止工作运行,因为映射任务可能没有足够的内存来处理输入文件的解压缩(例如,处理大文件时)。出于这个原因,在这项研究中,我们专注于面向块的编解码器,即事实上的可剥离的编解码器。

Hadoop可分段编解码器设计的一般指南

在这里,我们考虑程序员必须面对的一些问题,以便获得Hadoop可分段压缩编解码器,提供解决方案。我们专注于基因组文件,尽管这些指导方针适用于任何文本压缩机。我们正在寻求的解决方案不得要求对要支持的编解码器的内部压缩/解压缩程序进行任何修改。也就是说,必须保留给定压缩算法的压缩属性,因此先前的基准测试评估压缩机对数据集类的压缩机的程度无效,用户可以做出明智的选择。例如,对于FASTQ文件,压缩机已经广泛基准,也在FASTQ文件的不同字段上的压缩给予的贡献,例如,[815.].这样的知识应该被保留。

从可分割的压缩文件中提取基因组序列有两个问题要面对。第一个是关于推断压缩文件的逻辑内部组织,以确定压缩数据块的相对位置。第二个是关于文件的物理分区(由HDFS决定)和压缩文件在压缩数据块中的内部逻辑组织之间可能存在的脱节的管理。分别在“确定压缩文件的内部结构”和“管理压缩数据块与HDFS数据块的脱节”小节中对这些问题进行了详细的描述,并给出了我们提出的解决方案。突出显示给定压缩器的压缩例程不在我们的解决方案中。

确定压缩文件的内部结构

map任务只有知道其所分析的HDFS数据块中的压缩数据块的大小和相对位置,才能对其进行提取和解压。然而,这些信息可以存储在其他地方(例如,在压缩文件的页脚),或者可以隐式编码。

在下面,我们提供了一个解决方案,以有效地处理最常见的场景,即,压缩数据块列表显式可用的场景。我们请感兴趣的读者参考[6,以了解隐式编码此列表的解决方案示例。

显式表示。在一个辅助文件中维护一个包含压缩文件中存在的所有压缩数据块的显式列表指数数据结构。后者可以位于文件的开头或末尾(例如,DSRC [16.]),或者它可以沿着文件中的多个副本保存。在一些其他情况下,该数据结构可以保存在补充压缩文件的外部文件中。

在这种情况下,这里提出的解决方案是让一个进程在处理压缩文件之前检索索引,并使用标准Hadoop将副本发送到分布式系统的所有节点配置班级。然后,每个计算节点将该信息提供给它运行的地图任务,从而允许它们在其HDFS数据块中确定压缩数据块的列表和相对位置。

管理压缩数据块与HDFS数据块的不对齐

图1
图1

上传到HDF时,面向块导向的压缩数据文件的布局。在图中,一个原始文件包括标题,页脚和8个压缩数据块。b上传到HDFS时,它将被分成4个HDFS数据块。c作为分区的结果,压缩数据块标记为CB5分为两部分并分配给两个不同的HDFS数据块。使用压缩块拆分策略,每个压缩数据块都被建模为不同的分割。d使用增强的分裂策略,几个压缩数据块分组成更少的输入分割

当在HDFS上上传一个大的压缩可分割文件时,由于分布式文件系统使用的分区策略,很可能它的几个压缩数据块会被分成位于不同HDFS数据块上的部分。图中讨论了这样一个例子。1,下面给出了亮点。该文件最初在本地文件系统上作为整体存储(图。1一种)。如果在不指定任何拆分策略的情况下上传,则它将独立于压缩数据块分隔成分隔部分,如图4所示。1b.这将意味着在读取跨不同部分生成的压缩数据块的内容时存在严重的性能开销,因为在这种情况下,每个节点只有在获取和解压该文件的所有其他部分后才能处理其数据块。

解决此类开销的第一个可能的解决方案,记为压缩块拆分策略,是在输入分割压缩文件中存在的所有压缩数据块时进行建模(见图)。1c).然而,这种策略也可能意味着性能开销,因为压缩数据块的典型大小通常比HDFS数据块的大小小几个数量级。因此,输入分割的数量将远远大于HDFS数据块的数量。

更有效的解决方案,这里表示为增强的分裂策略,是将若干压缩数据块分成同一Hadoop输入分割,然后,具有每个地图任务查询的本地索引列出了分割中存在的所有单个压缩数据块的偏移量(参见图4。1d).此时,在分割处理压缩数据块时,可能会出现两种情况:

  • 标准情况下压缩后的数据块完全包含在单个HDFS数据块中。在这种情况下,使用索引中包含的信息检索它,然后使用所考虑的编解码器进行解压缩。

  • 特殊情况压缩的数据块被HDFS物理地分成两部分,\ (p_ {1} \)\(p_ {2} \).这些部分位于两个HDFS数据块上,但分配给相同的输入拆分。在这种情况下,副本\(p_ {2} \)自动从持有它的DataNode中扣除。然后,\ (p_ {1} \)\(p_ {2} \)是否正确连接以获得p.使用编解码器解压缩函数解压缩所得到的压缩数据块。

可拆分压缩元编解码器的结构

此Meta-Codec由一个抽象的Java类库库和接口,实现标准Hadoop可分段编解码器,用于压缩FastA / Q文件,但具有空的压缩/解压缩例程。

它的架构基于Hadoop自带的通用压缩器和解压器接口的专门化,并针对基于块的编解码器。它提供了将压缩文件自动组装为一组压缩数据块的可能性,同时使用显式表示维护它们的索引,如“确定压缩文件的内部结构”小节所述。此外,压缩数据块是根据Enhanced Split策略组织的(参见“管理压缩数据块和HDFS数据块之间的脱节”小节)。压缩/解压缩使用目标编解码器的原始例程,而不需要对其内部实现进行任何修改。也压缩的数据块的创建索引是我们Meta-Codec自动管理的,也能够与所有节点共享的内容索引的Hadoop分布式系统允许为每个节点知道的确切边界压缩的数据块处理。图中给出了关于这个元编解码器架构的其他细节。1补充资料。这里我们只提到它包括以下Java类。

  • CodeCinputFormat。它获取压缩文件中存在的压缩数据块列表,并将其发送到Hadoop集群的所有节点以及其解压缩所需的指令。然后,它将输入分割定义为压缩数据块的容器。这些操作是依赖于压缩机的,并且需要实现几种抽象方法extractmetadata.,从输入文件中提取元数据,getDataPosition.,指向第一个压缩数据块的起始地址。

  • nativesplittablecodec。假设特定编解码器的压缩/解压缩例程可用作在基础操作系统上安装的标准库,它简化了在开发中的编解码器中的集成。

  • CodeCinputStream。根据定义的输入分割策略,读取HDFS数据块中存在的压缩数据块CodeCinputFormat..通过调用所考虑的压缩机的解压缩功能并返回主应用程序,通过调用该压缩功能来解压缩压缩数据块。这些操作中的一些是压缩机相关的,并要求实施setParameters抽象方法。此方法用于向Codec传递压缩器所需的命令行参数,例如执行标志,以便正确地解压压缩的数据块。

  • CodecDecompressor。它解压缩了所提供的压缩数据块CodeCinputStream..它需要实施解压缩抽象方法。

  • NativeCodecdec压缩机。它解压缩了所提供的压缩数据块CodeCinputStream..它需要实施解压缩方法。

通用压缩元编解码器的结构

该元编解码器是一种软件组件,能够自动暴露为HU可分段编解码器由给定标准压缩机提供的压缩/解压缩程序。而不是可剥离压缩机Meta-Codec,需要一些编程,它用作现成的黑匣子,因为它需要的唯一信息是用于通过标准压缩机压缩和解压缩输入文件的一组命令行。这意味着在给定压缩机的内部程序上没有进行修改。

假设有一个输入文件要以可分割的方式压缩,这种方法的工作原理是将文件分割成未压缩的数据块,然后根据配置时给出的命令行使用外部压缩应用程序压缩每个未压缩的数据块。至于可剥离压缩机Meta-Codec,压缩数据块按照Enhanced Split策略组织(参见“管理压缩数据块和HDFS数据块之间的脱节”小节)。

结果文件使用一个索引来显式表示其中存在的压缩数据块(参见“确定压缩文件的内部结构”小节),该索引基于以下格式。

  • compression_format:唯一的ID号,讲述该文件的编解码器格式。

  • compreting_data_blocks_number.:文件中存在的压缩数据块数。

  • blocks_sizes_list.:文件中包含的所有压缩数据块的大小列表。

  • 解压缩_block_size.:用于解压缩压缩数据块的数据结构的大小。

通过利用上述指数中包含的信息来实现减压。

这个元编解码器的使用假定了将(un)压缩数据块的内容作为文件驻留在本地设备上的可能性。出于效率考虑,这些存储在本地RAM磁盘上,这是一个可用作磁盘的虚拟设备,但具有与内存相同的性能。

该元编解码器的Java类,如图2所示。2在补充材料中,是以下内容。

  • algo.包含通过配置文件定义的特定压缩器的命令行指令。

  • UniversencyCodec..包含用于管理数据压缩和解压缩的字段和方法。

  • UniversendInputFormat..延伸到CodeCinputFormat.类,根据压缩文件结构实现方法。

  • UniversalDecompressor..延伸到CodecDecompressor.类,实现该方法解压缩,根据命令行命令algo目的。

实验环境

选择压缩编解码:标准专门或在Hadoop中提供

对于我们的实验,Hadoop可用的所有标准可分段通用压缩编解码器已被认为是:BZIP2 [6], LZ4 [5]及ZSTD [17.].

至于专门的FastA / Q文件压缩机,我们开发了一组基于Spring的压缩编解码器[15.], DSRC [16.], Fqzcomp [18.], MFCompress [19.].这些已被选中,具有独立实验,因为它们在权衡压缩和时间方面涵盖了可能性范围。表中报告了所有这些编解码器的列表1,以及与本研究相关的特征。

表1在我们的实验中考虑的可分段编解码器列表

值得注意的是,尽管通用压缩机的设计是为了压缩效果好,压缩/解压速度快,但专用压缩机的设计标准却不那么统一。例如,HU_SPRING压缩得非常好,但在压缩/解压时间上非常慢,而HU_DSRC提供了这些方面的良好平衡。为了将每个压缩机放在一个对等的位置,我们使用它们的默认设置。

数据集

我们已经用于我们的实验两种类型的数据集。它们都包含读数集合的文件,因此是HTS技术最终产品的文件的好代表。关于这些数据集的详细信息在补充材料的第4节中。

第一种类型的数据集,这里称为1型数据集,是不同大小的FASTQ和FASTA文件的集合。FASTQ文件包含一组从Taeda松基因组序列中均匀随机提取的reads [20.],而FASTA文件包含一组均匀提取的读取,并且从来自人类基因组的基因组序列的集合随机提取[21.].我们之所以选择这些数据集,是因为它们太大,无法代表我们感兴趣的实验类型的相关基准,允许我们根据预定的文件大小评估压缩器性能的变化。

第二种类型的数据集,这里被称为类型2数据集,是FASTQ文件的集合,提供了不同的覆盖范围H.Sapiens..他们已经习惯了春天,我们已经遵循了[中的补充材料中的相同说明15.].我们选择了这些数据集,因为它们允许我们衡量来自冗余程度的文件处理的潜在性能优势。

硬件

用于我们的实验的测试平台是一个9个基于Linux的Hadoop集群,其中一个节点充当资源管理器剩下的节点作为工人使用。该集群的每个节点都配备了2个8核Intel Xeon E3-12@2.70 GHz处理器和32GB内存。每个节点预留给HDFS的虚拟磁盘容量为200gb,总体容量约为1.6 TB。所有的实验都是使用Hadoop 3.1.1软件发行版进行的。

结果

图2
figure2

实验2:节省阅读时间。类型1数据集FASTA文件。当考虑文件大小增加和不同的压缩器时,HDFS读取时间加快。加速已经按照正文中指定的方式进行了评估。标记行表示“压缩与未压缩”执行的时间相等。大于1的值表示加速,小于1的值表示减速。横坐标表示文件大小,每个压缩器的加速速度用竖条表示,竖条的颜色如图右上角所示

图3
图3

实验2:节省阅读时间。类型1数据集FASTQ文件。图形图例如图所示。2

图4
装具

实验2:节省阅读时间。类型2数据集FASTQ文件。图例图例类似于图1中的图例。2

图5
figure5

实验3:节省网络开销。类型1数据集FASTA文件。执行时间加速基准任务2,在考虑尺寸和不同压缩机的档案时测量。已经在主文本中的规定评估了加速。刻度线表示“压缩VS未压缩”执行的相同时间性能。大于1的值表示加速,而小于1的值表示减速

表2实验1-节省空间。类型1数据集FASTA文件
表3实验1-节省空间

作为初步步骤,我们提供证据,证明通过我们的方法导入Hadoop中的HS和HU编解码器保留了独立压缩器的压缩特性,这是“Hadoop可拆分编解码器设计的一般指导原则”部分所要求的。这一实验及其结果将在补充材料的第5节中给出并简要讨论。然后,为了量化通过我们的方法在Hadoop中部署FASTA/Q编解码器的优势,我们执行了下面详细的实验,下面我们将简要说明。实验1-3的目的是提供证据,证明在MapReduce-Hadoop中采用专门的FASTA/Q压缩器所带来的空间和时间性能优势。最后,为了完整性起见,提供了实验4,因为它评估了可能的空间压缩损失,在下面的开销中,由于使用HS和/或HU编解码器相对于使用同一个独立压缩机,即在非分布式设置中执行时的空间压缩损失。

  • 实验1:对磁盘空间节省的评估这里的目的是通过在Hadoop HDFS分布式文件系统上存储Fasta / FastQ文件时,通过采用专门的HU或HS编解码器来确定可能的磁盘空间节省能力,相对于可用的通用HS编解码器的使用在Hadoop。在HDFS数据块中,根据以下公式计算空间节省(以百分比)已经计算。让F是一个输入基因组文件\ (F ' \)其压缩可分割表示,则节省空间\(1 - \frac{(\text {HDFS块中F的大小)}}{(\text {HDFS块中F的大小})}\).每个HDFS数据块大小为128mb,实验结果如表所示23.4

  • 实验2:节省阅读时间的评估这里的目的是确定是否存在较小的数据读取的数据之间存在正常的折衷,并且读取从HDFS读取和读取和解包压缩的Fasta / Q文件的成本,一旦用HS压缩一次或hu编解码器。遵循[22.]这个实验是通过基准测试一个非常简单的Hadoop应用来实现的。它仅运行映射任务,其目标是计算字母的出现次数\ (\ {A、C、G、T、N \} \)在输入序列中,不产生任何输出。也就是说,该应用程序大部分时间从HDFS读取数据。在下文中,我们将这样的任务称为基准任务1.通过划分相对于同一实验的总体执行时间,但在每个未压缩文件上运行的实验的总体执行时间来评估加速。相同的压缩文件。结果见图。23.4

  • 实验3:对网络通信时间的评估开销节约这里的目标是建立如果小数量的网络流量将减少数量的地图任务需要流程FASTA / Q文件压缩商品或胡编解码器有有益的影响应用程序的总体洗牌时间,比未压缩的情况下,输入文件。这个实验是通过对一个应用程序进行基准测试来实现的,其中每个map任务都计算字母出现的次数\ (\ {A、C、G、T、N \} \),在每个序列中从输入文件中读取。一旦完成,映射任务将输出所考虑的每个序列的总计数。reduce任务收集并聚合所有map任务的输出,并在输出上打印每个不同字母的总出现次数。也就是说,这个实验的执行需要map和reduce任务之间的通信活动,该通信活动与正在使用的map任务的数量成正比。在接下来的内容中,我们将这种任务称为基准测试任务2。通过将在每个未压缩文件上运行的实验的总体执行时间与在同一压缩文件上运行的同一实验的总体执行时间进行分割,可以对加速进行评估。结果见图。5- - - - - -7

  • 实验4:评估使用我们的HS和HU编解码器与独立方法相比的压缩损失这里的目的是通过我们的HS和HU编解码器确定通过我们的HS和HU编解码器使用目标编解码器的可能磁盘空间开销,当在Hadoop HDFS分布式文件系统上存储FastA / FASTQ文件,了解存储所需的空间使用使用原始版本的相同编解码器的非分布式设置上的相同文件。开销已经如下计算。让CS使用独立的压缩器和压缩文件CH使用相应的HS或HU编解码器压缩的相同文件,文件大小开销是\(\ frac {(\ text {ch中的字符串})} {(\ text {bytes中的cs大小})} - 1 \).实验结果见表567

表4实验1 - 空间节省:类型2数据集FASTQ文件
表5实验4-文件大小开销

讨论

实验1:专门的压缩可以在Hadoop上节省大量的磁盘空间。

参考表格23.4,很明显,专门的HU和HS编解码器的能力,即使用我们的方法导入Hadoop的那些,达到了比Hadoop中已经可用的通用HS编解码器更好的空间节省。相对于未压缩文件,存储每个文件的分布式压缩表示所需的HDFS数据块数量要少得多。特别是,所有专用编解码器都比非专用编解码器表现出更好的性能,其中HU_Fqzcomp和HU_SPRING略优于HS_DSRC和HU_DSRC。

表6实验4文件大小开销:Type 1数据集FASTQ文件:Table Legend如Table5

应注意,后一种方法产生几乎相同的压缩结果。这是我们的通用Meta-Codec是有效和值得的重要迹象。实际上,HS_DSRC的发展采用了非琐碎的编程技巧以及几天的工作,而HU_DSRC的发展则花了几分钟才能开发,没有编程。

实验2:仔细使用专门的压缩,在Hadoop for FASTQ文件上会产生显着的阅读时间。

压缩可以显着减少从外部设备读取数据所需的时间量,只要减压过程是“快速”。这种折衷是众所周知的通用标准压缩机。在这里,我们研究了HS和HU专业编解码器。我们的实验表明以下。

  • 类型1数据集的FASTA性能.我们在此注意到压缩空间效率和减压时间之间的权衡。在一边,我们观察表格2与非专用编解码器相比,专用编解码器的使用带来了更好的压缩。然而,这种优势被专用编解码器的慢得多的解压程序抵消了,如图中报告的结果所示。2.为了支持这一结论,值得回顾基准任务1由读取压缩文件,然后解压缩它们。因此,专门编解码器的使用不会在此设置中带来正速度。但是,我们的实验提供了以下新颖和有用的指导方针。当快速阅读时间至关重要时,建议使用Hu_ZSTD,因为它允许在保证一致的空间节省时进行大量时间性能。当空间很重要时,同时考虑阅读时间,Hu_Spring比Hu_mfCompress更好。

  • 类型1和类型2数据集的FASTQ性能.并通过图1和图2中的结果说明。3.4,hs_dsrc和hu_dsrc是顶级表演者之一。实际上,他们的阅读和减压时间性能更好地或非常接近ZSTD等高度工程通用压缩机的性能。这主要是由于它们的显着压缩能力和它们非常快速的减压惯例。此外,随着数据集大小的增长和/或其冗余增加,这两种方法的性能越来越好。要解释这一点,请考虑在管理16G输入文件时,HS_DSRC和HU_DSRC将多个HDFS数据块返回到小于可用处理核的数量的处理。因此,并非集群的所有可用处理能力都被利用。当输入的大小增加到32G时,HDFS数据块的数量变大并且允许使用所有可用的处理核心,从而导致更高的整体效率。我们从我们的实验中获得的新颖迹象是,HS_DSRC和HU_DSRC绝对是FASTQ文件的选择方法,当空间处于溢价并从HDFS阅读时间很重要时。

值得注意的是,这个实验也证实了我们的通用元编解码器的有效性和便利性,因为HS_DSRC和HU_DSRC的读取时间加速与我们所做的所有实验非常接近。

实验3:仔细使用专门的压缩在Hadoop上为FASTA/Q文件产生了巨大的网络通信成本。

图6
figure6

实验3:节省网络开销。类型2数据集FASTQ文件。图形图例如图所示。5

当考虑更复杂的Hadoop应用程序时,比如我们的第二个基准测试任务,我们注意到使用专门的Codecs可以显著提高时间性能(见图)。567).这主要是由于对从Hadoop地图任务流动到Hadoop减少任务的网络流量的有益影响,因此由于处理的HDFS数据块的减少量减少。特别是,我们的实验表明以下评估。

  • 类型1数据集的FASTA性能.根据实验结果如图所示。5,Hu_spring,在保留其相对于其他压缩机的优越压缩性能的同时,在网络流量节省方面还可以提供一些加速(或至少,无明显的性能下降)。然后,这将导致总计节省时间。

  • 类型1和类型2数据集的FASTQ性能.根据实验结果如图所示。67,HS_DSRC和HU_DSRC在顶级表现者中始终如一,出于同样的原因,在讨论之前的实验中概述。

图7
figure7

实验3:节省网络开销。类型1数据集FASTQ文件。图形图例如图所示。5

最后,此实验还支持我们通用编解码器的有效性。

实验4:分布式HS和Hu编解码器相对于独立的HS编解码器的压缩损耗最小,只要这些后者就可以适合分裂性。

表7实验4-文件大小开销:类型2数据集FASTQ文件:表格图例如表中5

参考表格567很明显,在大多数情况下,我们的HS和HU编解码器引入的空间开销将任何标准压缩机带到Hadoop,可忽略不计。这对于本身可分分裂或在某种程度上可在某种程度上可用于分裂性而尤其如此。然而,“全局压缩策略”不适合分裂性,并通过春季说明。实际上,其压缩算法首先重新排序,使得它们大致排序到它们在基因组中的位置,然后,订购的读取用于组装最终压缩的参考基因组,同时去除重复读取。实际上,在处理非常大而冗余的文件时,预计这种方法将非常好。相反,当在每个分区文件上单独工作时,它的压缩效率并不是如此有效,因为HDFS需要。特别是借助

表8数据集压缩性 - 弹簧:1个数据集:在处理升高尺寸的文件时弹簧节省(百分比)(在行上)
表9数据集压缩性 - 弹簧:类型2数据集:表格图例如表中8

桌子89,很明显,相对于独立版本,HU_SPRING引入的开销随着文件的可压缩性而增长。非常值得注意的是,尽管存在巨大的空间开销,HU_SPRING仍然是Hadoop上最好的压缩之一(请参阅有关的讨论)实验1再一次)。

值得注意的是,尽管BZIP是基于Burrows和Wheeler变换[23.,它将这种转换应用于文件的小块(每个900 Kb)。因此,尽管原则上压缩“a la Burrows and Wheeler”可以作为一种全局策略实现,但BZIP压缩是“局部的”,因为它单独对文件的小块进行工作。因此,与独立版本相比,它的分布式版本实际上没有任何开销。

结论

我们提供了两种一般方法,可用于将标准的FastA / Q数据压缩程序转换为Hadoop可分段数据压缩编解码器。作为方法,它们可用于将来开发的专业标准压缩节目。我们的方法的另一个主要特征是它们需要很少,或者根本没有Hadoop的编程和知识,以执行相当复杂的任务。我们的方法也适用于Apache Spark框架,用于处理存储在Hadoop文件系统上的FastA / Q文件。

我们还表明,在这项工作之前,使用专业的Fasta / Q Hadoop编解码器,在节省空间和时间方面,有利。也就是说,我们提供了有效且易于使用的工具,对大数据技术内的基因组数据存储和处理中的节省成本具有不可忽略的影响。

除了通过我们的方法进口到Hadoop的专门压缩机的潜在用户的具体建议外,本研究还突出了专门的压缩机的特性,以便在Hadoop中进行模糊。即,有效的“本地”压缩和快速减压时间。

可用性数据和材料

项目名称:FastDoopc

项目主页:欧宝直播官网apphttps://github.com/fpalini/fastdoopc.

操作系统:平台独立

编程语言:Java

其他要求:Java 8或更高,Hadoop 3.1.1或更高/火花2.3.3或更高

License: Apache License: Apache License

非学术界使用的任何限制:无

在FastDoopc项目网站上提供了在当前研究期间分析的数据集副本,https://github.com/fpalini/fastdoopc.

缩写

CB:

压缩块

HDFS:

Hadoop文件系统

高性能计算:

高性能计算

高温超导:

高通量测序

参考

  1. 1。

    王志强,王志强,王志强。基于文本数据压缩的计算生物学研究进展。生物信息学。2009;25:1575 - 86。

    中科院文章谷歌学术搜索

  2. 2。

    Hsi-Yang Fritz M,Leinonen R,Cochrane G,Birney E.使用基于参考的压缩高通量DNA测序数据的高效存储。Genome Res。2011; 21:734-40。

    文章谷歌学术搜索

  3. 3。

    拯救基因组学的探索:除非研究人员解决迫在眉睫的数据压缩问题,否则生物医学科学可能停滞不前。IEEE Spectr。2018;第27 - 31(9):55。

    文章谷歌学术搜索

  4. 4。

    陈志强,王志强,王志强,等。基因组数据压缩。生物医学数据科学。2019;2:19-37。

    文章谷歌学术搜索

  5. 5。

    夹头扬。LZ4;2011年(可从:https://github.com/lz4/lz4).

  6. 6。

    西德朱利安。bzip2;1996年(可从:http://www.bzip.org/).

  7. 7.

    Giancarlo R, Rombo SE, Utro F.高通量测序技术时代的压缩生物序列分析和归档。短暂的Bioinform。2014;15:390 - 406。

    中科院文章谷歌学术搜索

  8. 8.

    Numanagići,Bonfield JK,Hach F,Voges J,Ostermann J,Alberti C等人。高吞吐量测序数据压缩工具的比较。NAT方法。2016; 13:1005-9。

    文章谷歌学术搜索

  9. 9.

    卡恩SD。基因组数据的未来。科学。2011;331(6018):728 - 9。

    中科院文章谷歌学术搜索

  10. 10。

    Dean J, Ghemawat S. MapReduce:在大型集群上简化数据处理。Commun ACM。2008; 51:107-13。

    文章谷歌学术搜索

  11. 11.

    白色T. Hadoop:权威指南。北京:O 'Reilly;2015.

    谷歌学术搜索

  12. 12.

    Chambers B, Zaharia M. Spark:权威指南:简化大数据处理。“O ' reilly Media, Inc .)”;2018.

  13. 13。

    Cattaneo G,Giancarlo R,Ferraro Petrillo U,Roscigno G. MapReduce通过Hadoop和Spark在计算生物学中。在:ranganathan,s n,k sc,gribskov m,编辑。生物信息学和计算生物学的百科全书。卷。牛津:elestvier;2019,p。221-229。

  14. 14。

    Shi H,朱y,萨姆杜林J.基于参考的基因组数据压缩在云中的基因组。在:第二次沟通和信息处理会议的诉讼程序;2016. p。55-59。

  15. 15。

    SPRING:用于FASTQ数据的下一代压缩机。生物信息学,2019,35(15):2674 - 6。

    中科院文章谷歌学术搜索

  16. 16。

    RoguskiŁ,Deoroyicz S. DSRC 2:以行业为导向的FASTQ文件压缩。生物信息学。2014; 30(15):2213-5。

    中科院文章谷歌学术搜索

  17. 17。

    夹头扬。ZSTD;2015.(可以从:https://github.com/facebook/zstd.).

  18. 18.

    Bonfield JK,Mahoney MV。压缩FASTQ和SAM格式测序数据。Plos一个。2013; 8(3)。

  19. 19.

    MFCompress: FASTA和多FASTA数据的压缩工具。生物信息学。2013;30(1):117 - 8。

    文章谷歌学术搜索

  20. 20。

    Wegrzyn JL,Lin By,Zieve JJ,Dougherty WM,Martinez-Garcia PJ,Koria1m M,等。洞察遗布松树基因组:BAC和FOSMID序列的表征。Plos一个。2013; 8(9)。

  21. 21。

    Bentley博士,Balasubramanian S, Swerdlow HP, Smith GP, Milton J, Brown CG,等。精确的全人类基因组测序使用可逆终止化学。大自然。2008;456(7218):53-9。

    中科院文章谷歌学术搜索

  22. 22。

    Ferraro Petrillo U,Roscigno G,Cattaneo G,Giancarlo R. FastDoop:用于MapReduce Hadoop BioinfinoInformatics应用程序的Fasta和FastQ文件的多功能和高效的库。生物信息学(牛津,Engl)。2017; 33(10):1575-7。

    谷歌学术搜索

  23. 23。

    Burrows M, Wheeler DJ。一种块排序无损数据压缩算法1994.

下载参考

致谢

所有作者都要感谢GARR在前沿OpenStack虚拟数据中心上为这项研究付出的计算时间。在这项研究的早期阶段,与西蒙娜·伊斯特·龙博(Simona Ester Rombo)的讨论是有帮助的。

资金

g.c.、R.G.和U.F.P.部分得到GNCS项目2019“医疗和生物大数据解决方案创新方法”的支持。R.G.还得到了MIUR-PRIN项目的“多标准数据结构和算法:从压缩到学习索引,以及超越”的资助,第2017WR7SHH号。U.F.P.和F.P.部分得到Università di Roma - La Sapienza 2018研究项目“Analisi, sviluppo e sperimentazione di algoritmi praticamente efficienti”的支持。利用资金对本文提出的不同压缩编解码器进行规划、设计和实验。

作者信息

隶属关系

作者

贡献

U.F.P, f.p., G.C和R.G对本文研究的设计做出了贡献。特别地,f.p.和u.f.p.设计了在MapReduce-Hadoop中部署FASTA/Q文件的标准专用压缩器的方法,并进行了实验。U.F.P, f.p., G.C和R.G对这篇论文的写作有贡献。所有作者阅读并批准了手稿。

通讯作者

对应到Umberto费拉罗Petrillo

伦理宣言

伦理批准和同意参与

该研究不需要惯例。

同意出版

不适用。

相互竞争的利益

两位作者宣称他们没有相互竞争的利益。

额外的信息

出版商的注意

欧宝体育黑玩家施普林格《自然》杂志对已出版的地图和机构附属机构的管辖权要求保持中立。

权利和权限

开放访问本文根据创意公约归因于4.0国际许可证,这允许在任何中或格式中使用,共享,适应,分发和复制,只要您向原始作者和来源提供适当的信贷,提供了一个链接到Creative Commons许可证,并指出是否进行了更改。除非信用额度另有说明,否则本文中的图像或其他第三方材料包含在文章的创造性公共许可证中,除非信用额度另有说明。如果物品不包含在物品的创造性的公共许可证中,法定规定不允许您的预期用途或超过允许使用,您需要直接从版权所有者获得许可。要查看本许可证的副本,请访问http://creativecommons.org/licenses/by/4.0/.Creative Commons公共领域奉献豁免(http://creativecommons.org/publicdomain/zero/1.0/)适用于本文中提供的数据,除非另有用入数据的信用额度。

再版和权限

关于这篇文章

通过CrossMark验证货币和真实性

引用这篇文章

费拉罗·佩特里罗,美国,帕利尼,F.卡塔尼奥,G。等等。用于MapReduce-Hadoop基因组学的FASTA/Q数据压缩器:节省空间和时间变得容易。欧宝娱乐合法吗22,144(2021)。https://doi.org/10.1186/s12859-021-04063-1.

下载引用

关键词

  • Mapreduce.
  • Hadoop
  • 序列分析
  • 数据压缩