View a markdown version of this page

HealthOmics ETag 和数据来源 - AWS HealthOmics

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

HealthOmics ETag 和数据来源

HealthOmics ETag(实体标签)是序列存储中摄取内容的哈希值。这简化了数据检索和处理,同时保持了所摄取数据文件的内容完整性。ETag 反映的是对象语义内容的变化,而不是其元数据的变化。指定的读取集类型和算法决定 ETag 的计算方式。ETag 计算不会改变实际文件或基因组数据。当读取集的文件类型架构允许时,序列存储会更新与数据来源相关的字段。

文件具有按位标识和语义标识。按位标识表示文件的位相同,语义标识表示文件的内容相同。语义身份能够捕捉文件的内容完整性,因此能够适应元数据变化和压缩变化。

HealthOmics 序列存储中的读取集在对象的整个生命 compression/decompression 周期中都会经历周期和数据来源跟踪。在此处理过程中,所摄取文件的按位标识可能会发生变化,并且预计每次激活文件时都会发生变化;但是,文件的语义标识将保持不变。语义身份以 HealthOmics 实体标签的形式捕获,即在序列存储摄取期间计算的 ETag,可用作读取集元数据。

当读取集的文件类型架构允许时,序列存储更新字段将与数据来源相关联。对于 ubAM、BAM 和 CRAM 文件,会在标题中添加新的@COComment标记。注释包含序列存储 ID 和摄取时间戳。

亚马逊 S3 电子标签

使用 Amazon S3 URI 访问文件时,亚马逊 S3 API 操作也可能会返回 Amazon S3 ETag 和校验和值。Amazon S3 ETag 和校验和值与 HealthOmics ETag 不同,因为它们代表文件的按位身份。要了解有关描述性元数据和对象的更多信息,请参阅 Amazon S3 对象 API 文档。Amazon S3 ETag 值会随着读取集的每个激活周期而变化,您可以使用它们来验证文件的读取。但是,不要在文件生命周期中缓存 Amazon S3 ETag 值以用于文件身份验证,因为它们无法保持一致。相比之下, HealthOmics ETag 在读取集的整个生命周期中保持一致。

如何 HealthOmics 计算 ETag

ETag 由摄取的文件内容的哈希值生成。默认情况下,ETag 算法系列设置为 MD5up,但在序列存储创建期间可以进行不同的配置。计算 ETag 时,算法和计算出的哈希值将添加到读取集合中。文件类型支持的 MD5 算法如下所示。

  • Fastq_md5up — 计算未压缩的完整 FASTQ 读取集源的 MD5 哈希值。

  • bam_md5up — 根据链接的引用(如果有)计算 SAM 中表示的未压缩 BAM 或 uBam 读取集源的对齐部分的 MD5 哈希值。

  • cram_md5up — 根据链接的引用,计算 SAM 中表示的未压缩 CRAM 读取集源的对齐部分的 MD5 哈希值。

注意

众所周知,MD5 哈希很容易发生冲突。因此,如果两个不同的文件是为了利用已知碰撞而制造的,则它们可能具有相同的 ETag。

SHA256 系列支持以下算法。算法的计算方式如下:

  • Fastq_SHA256UP — 计算未压缩的完整 FASTQ 读取集源的 SHA-256 哈希值。

  • bam_sha256up — 根据链接的引用(如果有)计算 SAM 中表示的未压缩 BAM 或 uBam 读取集源的对齐部分的 SHA-256 哈希值。

  • CRAM_SHA256UP — 根据链接的引用,计算 SAM 中表示的未压缩 CRAM 读取集源的对齐部分的 SHA-256 哈希值。

SHA512 系列支持以下算法。算法的计算方式如下:

  • Fastq_SHA512UP — 计算未压缩的完整 FASTQ 读取集源的 SHA-512 哈希值。

  • bam_sha512up — 根据链接的引用(如果有)计算 SAM 中表示的未压缩 BAM 或 uBam 读取集源的对齐部分的 SHA-512 哈希值。

  • cram_sha512up — 根据链接的引用,计算 SAM 中表示的未压缩 CRAM 读取集源的对齐部分的 SHA-512 哈希值。