

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 Object API [ドキュメント](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)を参照してください。Amazon S3 ETag 値は、読み取りセットのアクティベーションサイクルごとに変更される可能性があり、それを使用してファイルの読み取りを検証できます。ただし、ファイルのライフサイクル中にファイル ID の検証に使用する Amazon S3 ETag 値は整合性が保たれないため、キャッシュしないでください。対照的に、HealthOmics ETag は、リードセットのライフサイクルを通じて一貫性を維持します。

## HealthOmics が ETags を計算する方法
<a name="how-etags-calculated"></a>

ETag は、取り込まれたファイルコンテンツのハッシュから生成されます。ETag アルゴリズムファミリーはデフォルトで MD5up に設定されていますが、シーケンスストアの作成時に異なる方法で設定できます。ETag が計算されると、アルゴリズムと計算されたハッシュが読み取りセットに追加されます。ファイルタイプでサポートされている MD5 アルゴリズムは次のとおりです。
+ *FASTQ\$1MD5up* – 非圧縮で完全な FASTQ リードセットソースの MD5 ハッシュを計算します。
+ *BAM\$1MD5up* – SAM で表される非圧縮 BAM または uBAM リードセットソースのアラインメントセクションの MD5 ハッシュを、利用可能な場合はリンクされたリファレンスに基づいて計算します。
+ *CRAM\$1MD5up* – リンクされたリファレンスに基づいて、SAM で表される非圧縮 CRAM リードセットソースのアライメントセクションの MD5 ハッシュを計算します。

**注記**  
MD5 ハッシュは衝突に対して脆弱であることが知られています。このため、2 つの異なるファイルは、既知の衝突を悪用するために製造された場合、同じ ETag を持つ可能性があります。

SHA256 ファミリーでは、次のアルゴリズムがサポートされています。アルゴリズムは次のように計算されます。
+ *FASTQ\$1SHA256up* – 非圧縮で完全な FASTQ リードセットソースの SHA-256 ハッシュを計算します。
+ *BAM\$1SHA256up* – SAM で表される非圧縮 BAM または uBAM リードセットソースのアライメントセクションの SHA-256 ハッシュが使用可能な場合は、リンクされたリファレンスに基づいて計算します。
+ *CRAM\$1SHA256up* – リンクされたリファレンスに基づいて、SAM で表される非圧縮 CRAM リードセットソースのアライメントセクションの SHA-256 ハッシュを計算します。

SHA512 ファミリーでは、次のアルゴリズムがサポートされています。アルゴリズムは次のように計算されます。
+ *FASTQ\$1SHA512up* – 非圧縮で完全な FASTQ リードセットソースの SHA-512 ハッシュを計算します。
+ *BAM\$1SHA512up* – SAM で表される非圧縮 BAM または uBAM リードセットソースのアライメントセクションの SHA-512 ハッシュを、利用可能な場合はリンクされたリファレンスに基づいて計算します。

   
+ *CRAM\$1SHA512up * – リンクされたリファレンスに基づいて、SAM で表される非圧縮 CRAM リードセットソースのアライメントセクションの SHA-512 ハッシュを計算します。