本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
HealthOmics ETags 和数据来源
HealthOmics ETag (实体标签)是序列存储中摄取内容的哈希值。这简化了数据检索和处理,同时保持了摄取的数据文件的内容完整性。 ETag 反映的是对象语义内容的变化,而不是其元数据的变化。指定的读取集类型和算法决定 ETag 如何计算。 ETag 计算结果不会改变实际文件或基因组数据。当读取集的文件类型架构允许时,序列存储会更新与数据来源相关的字段。
文件具有按位标识和语义标识。按位标识意味着文件的各个位是相同的,而语义标识意味着文件的内容是相同的。语义标识可以捕获文件的内容完整性,因此可以抵御元数据更改和压缩更改。
HealthOmics 序列存储中的读取集在对象的整个生命 compression/decompression 周期中经历周期和数据来源跟踪。在此处理过程中,载入文件的按位标识可能会发生变化,并且预计每次激活文件时都会发生变化;但是,文件的语义标识会保持不变。语义标识被捕获为 HealthOmics 实体标签 ETag ,或者在序列存储摄取期间计算出来并作为读取集元数据使用。
当读取集的文件类型架构允许时,序列存储更新字段将与数据来源相关联。对于 uBam、BAM 和 CRAM 文件,标题中会添加一个新的@CO
或Comment
标签。注释包含序列存储 ID 和摄取时间戳。
亚马逊 S3 ETags
使用 Amazon S3 URI 访问文件时,Amazon S3 API 操作也可能返回亚马逊 S3 ETag 和校验和值。Amazon S3 ETag 和校验和值之所以与不同, HealthOmics ETags 是因为它们代表文件的按位标识。要了解有关描述性元数据和对象的更多信息,请参阅 Amazon S3 对象 API 文档。Amazon S3 的 ETag 值可能会随着读取集的每个激活周期而变化,您可以使用它们来验证文件的读取。但是,不要缓存 Amazon S3 ETag 值以在文件生命周期中用于文件身份验证,因为它们不会保持一致。相比之下,在读取集的整个生命周期中都 HealthOmics ETag 保持一致。
如何 HealthOmics 计算 ETags
ETag 是根据提取的文件内容的哈希值生成的。 MD5up 默认情况下, ETag 算法系列设置为,但在创建序列存储期间可以对其进行不同的配置。计算 ETag 完毕后,算法和计算出的哈希值将添加到读取集合中。支持的文件类型 MD5 算法如下。
-
FASTQ_ MD5up — 计算未压缩、完整 FASTQ 读取集源的 MD5哈希值。
-
BAM_ MD5up — 根据链接的引用(如果有)计算 SAM 中表示的未压缩 BAM 或 uBam 读取集源的对齐部分的 MD5 哈希值。
-
CRAM_ MD5up — 根据链接的 MD5 引用,计算 SAM 中表示的未压缩 CRAM 读取集源的对齐部分的哈希值。
注意
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 哈希值。