

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# HealthOmics ETags和資料來源
<a name="etags-and-provenance"></a>

HealthOmics ETag （實體標籤） 是序列存放區中擷取內容的雜湊。這可簡化資料擷取和處理，同時維持擷取資料檔案的內容完整性。ETag 會反映物件語意內容的變更，而非其中繼資料。指定的讀取集類型和演算法決定如何計算 ETag。ETag 計算不會改變實際的檔案或基因體資料。當讀取集的檔案類型結構描述允許時，序列存放區會更新連結至資料來源的欄位。

檔案具有位元身分和語意身分。位元身分表示檔案的位元相同，語意身分表示檔案的內容相同。語意身分在擷取檔案的內容完整性時，對中繼資料變更和壓縮變更具有彈性。

HealthOmics 序列存放區中的讀取集會在整個物件的生命週期進行壓縮/解壓縮週期和資料來源追蹤。在此處理期間，擷取檔案的位元身分可能會變更，並預期每次啟動檔案時都會變更；不過，會維護檔案的語意身分。語意身分會擷取為 HealthOmics 實體標籤，或在序列存放區擷取期間計算的 ETag，並以讀取集中繼資料的形式提供。

當讀取集的檔案類型結構描述允許時，序列存放區更新欄位會連結至資料來源。對於 uBAM、BAM 和 CRAM 檔案，新的 `@CO`或 `Comment`標籤會新增至 標頭。註解包含序列存放區 ID 和擷取時間戳記。

## Amazon S3 ETags
<a name="s3-etags"></a>

使用 Amazon S3 URI 存取檔案時，Amazon S3 API 操作也可能傳回 Amazon S3 ETag 和檢查總和值。Amazon S3 ETag 和檢查總和值與 HealthOmics ETags 不同，因為它們代表檔案的位元身分。若要進一步了解描述性中繼資料和物件，請參閱 Amazon S3 [物件 API 文件](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)。Amazon S3 ETag 值可能會隨著讀取集的每個啟用週期而變更，您可以使用它們來驗證檔案的讀取。不過，請勿快取用於檔案生命週期內檔案身分驗證的 Amazon S3 ETag 值，因為這些值無法保持一致。相反地，HealthOmics ETag 在整個讀取集的生命週期中保持一致。

## HealthOmics 如何計算 ETags
<a name="how-etags-calculated"></a>

ETag 是從擷取檔案內容的雜湊產生。ETag 演算法系列預設為 MD5up，但可以在序列存放區建立期間以不同方式設定。計算 ETag 時，演算法和計算的雜湊會新增至讀取集。檔案類型支援的 MD5 演算法如下所示。
+ *FASTQ\$1MD5up* – 計算未壓縮、完整 FASTQ 讀取集來源的 MD5 雜湊。
+ *BAM\$1MD5up* – 計算未壓縮 BAM 或 uBAM 讀取集來源的對齊區段的 MD5 雜湊，如 SAM 所示，如果有連結的參考可用的話。
+ *CRAM\$1MD5up* – 根據連結的參考，計算未壓縮 CRAM 讀取集來源之對齊區段的 MD5 雜湊，如 SAM 中所表示。

**注意**  
已知 MD5 雜湊容易遭受碰撞。因此，如果兩個不同的檔案為了利用已知的碰撞而製造，則可能具有相同的 ETag。

SHA256 系列支援下列演算法。演算法的計算方式如下：
+ *FASTQ\$1SHA256up* – 計算未壓縮、完整 FASTQ 讀取集來源的 SHA-256 雜湊。
+ *BAM\$1SHA256up* – 計算未壓縮 BAM 或 uBAM 讀取集來源的對齊區段的 SHA-256 雜湊，如 SAM 所示，如果可用，則根據連結的參考。
+ *CRAM\$1SHA256up* – 根據連結的參考，計算未壓縮 CRAM 讀取集來源之對齊區段的 SHA-256 雜湊，如 SAM 所示。

SHA512 系列支援下列演算法。演算法的計算方式如下：
+ *FASTQ\$1SHA512up* – 計算未壓縮、完整 FASTQ 讀取集來源的 SHA-512 雜湊。
+ *BAM\$1SHA512up* – 計算未壓縮 BAM 或 uBAM 讀取集來源的對齊區段的 SHA-512 雜湊，如 SAM 所示，如果可用，則根據連結的參考。

   
+ *CRAM\$1SHA512up * – 根據連結的參考，計算未壓縮 CRAM 讀取集來源之對齊區段的 SHA-512 雜湊，如 SAM 所示。