

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

# HealthOmics シーケンスストアへの直接アップロード
<a name="synchronous-uploads"></a>

HealthOmics Transfer Manager を使用して、シーケンスストアにファイルを追加することをお勧めします。Transfer Manager の使用の詳細については、この [GitHub リポジトリ](https://github.com/awslabs/amazon-omics-tools/)を参照してください。直接アップロード API オペレーションを使用して、読み取りセットをシーケンスストアに直接アップロードすることもできます。

直接アップロードの読み取りセットは、 `PROCESSING_UPLOAD` 状態で最初に存在します。つまり、ファイルパーツは現在アップロード中であり、読み取りセットメタデータにアクセスできます。パートがアップロードされ、チェックサムが検証されると、読み取りセットは になり、インポートされた読み取りセットと同じように`ACTIVE`動作します。

直接アップロードが失敗した場合、読み取りセットのステータスは と表示されます`UPLOAD_FAILED`。アップロードに失敗したファイルのフォールバックの場所として Amazon S3 バケットを設定できます。フォールバックロケーションは、2023 年 5 月 15 日以降に作成されたシーケンスストアで利用できます。

**Topics**
+ [を使用してシーケンスストアに直接アップロードする AWS CLI](#synchronous-uploads-api)
+ [フォールバックの場所を設定する](#synchronous-uploads-fallback)

## を使用してシーケンスストアに直接アップロードする AWS CLI
<a name="synchronous-uploads-api"></a>

開始するには、マルチパートアップロードを開始します。これを行うには AWS CLI、次の例に示すように、 を使用します。

**AWS CLI コマンドを使用して直接アップロードするには**

1. 次の例に示すように、データを分離してパートを作成します。

   ```
    split -b 100MiB SRR233106_1.filt.fastq.gz source1_part_ 
   ```

1. ソースファイルがパートになったら、次の例に示すように、マルチパートリードセットアップロードを作成します。`sequence store ID` とその他のパラメータをシーケンスストア ID とその他の値に置き換えます。

   ```
   aws omics create-multipart-read-set-upload \
   --sequence-store-id sequence store ID \
   --name upload name \
   --source-file-type FASTQ \
   --subject-id subject ID \
   --sample-id sample ID \
   --description "FASTQ for HG00146" "description of upload" \
   --generated-from "1000 Genomes""source of imported files"
   ```

   レスポンスで `uploadID`およびその他のメタデータを取得します。アップロードプロセスの次のステップ`uploadID`には、 を使用します。

   ```
   {
   "sequenceStoreId": "1504776472",
   "uploadId": "7640892890",
   "sourceFileType": "FASTQ",
   "subjectId": "mySubject",
   "sampleId": "mySample",
   "generatedFrom": "1000 Genomes",
   "name": "HG00146",
   "description": "FASTQ for HG00146",
   "creationTime": "2023-11-20T23:40:47.437522+00:00"
   }
   ```

1. 読み取りセットをアップロードに追加します。ファイルが十分に小さい場合は、このステップを 1 回だけ実行する必要があります。大きなファイルの場合は、ファイルの各部分に対してこのステップを実行します。以前に使用したパート番号を使用して新しいパートをアップロードすると、以前にアップロードしたパートが上書きされます。

   次の例では、`sequence store ID`、`upload ID`、およびその他のパラメータを値に置き換えます。

   ```
   aws omics upload-read-set-part \
   --sequence-store-id sequence store ID \
   --upload-id upload ID \
   --part-source SOURCE1 \
   --part-number part number \
   --payload  source1/source1_part_aa.fastq.gz
   ```

   レスポンスは、アップロードされたファイルが意図したファイルと一致することを確認するために使用できる ID です。

   ```
   {
   "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635"
   }
   ```

1. 必要に応じて、ファイルの一部のアップロードを続行します。読み取りセットがアップロードされたことを確認するには、以下に示すように list**list-read-set-upload-parts** API オペレーションを使用します。次の例では、`sequence store ID `、、 `upload ID``part source`を独自の入力に置き換えます。

   ```
   aws omics list-read-set-upload-parts \
    --sequence-store-id sequence store ID \
    --upload-id upload ID \
    --part-source SOURCE1
   ```

   レスポンスは、読み取りセットの数、サイズ、および最後に更新された時刻のタイムスタンプを返します。

   ```
   {
   "parts": [
       {
           "partNumber": 1,
           "partSize": 104857600,
           "partSource": "SOURCE1",
           "checksum": "MVMQk+vB9C3Ge8ADHkbKq752n3BCUzyl41qEkqlOD5M=",
           "creationTime": "2023-11-20T23:58:03.500823+00:00",
           "lastUpdatedTime": "2023-11-20T23:58:03.500831+00:00"
       },
       {
           "partNumber": 2,
           "partSize": 104857600,
           "partSource": "SOURCE1",
           "checksum": "keZzVzJNChAqgOdZMvOmjBwrOPM0enPj1UAfs0nvRto=",
           "creationTime": "2023-11-21T00:02:03.813013+00:00",
           "lastUpdatedTime": "2023-11-21T00:02:03.813025+00:00"
       },
       {
           "partNumber": 3,
           "partSize": 100339539,
           "partSource": "SOURCE1",
           "checksum": "TBkNfMsaeDpXzEf3ldlbi0ipFDPaohKHyZ+LF1J4CHk=",
           "creationTime": "2023-11-21T00:09:11.705198+00:00",
           "lastUpdatedTime": "2023-11-21T00:09:11.705208+00:00"
       }
   ]
   }
   ```

1. アクティブなマルチパートリードセットのアップロードをすべて表示するには、以下に示すように **list-multipart-read-set-uploads** を使用します。を独自のシーケンスストアの ID `sequence store ID`に置き換えます。

   ```
   aws omics list-multipart-read-set-uploads --sequence-store-id 
                sequence store ID
   ```

   この API は、進行中のマルチパートリードセットアップロードのみを返します。取り込まれた読み取りセットが になった後`ACTIVE`、またはアップロードが失敗した場合、アップロードは **list-multipart-read-set-uploads** API へのレスポンスでは返されません。アクティブな読み取りセットを表示するには、**list-read-sets** API を使用します。**list-multipart-read-set-uploads** のレスポンスの例を以下に示します。

   ```
   {
   "uploads": [
       {
           "sequenceStoreId": "1234567890",
           "uploadId": "8749584421",
           "sourceFileType": "FASTQ",
           "subjectId": "mySubject",
           "sampleId": "mySample",
           "generatedFrom": "1000 Genomes",
           "name": "HG00146",
           "description": "FASTQ for HG00146",
           "creationTime": "2023-11-29T19:22:51.349298+00:00"
       },
       {
           "sequenceStoreId": "1234567890",
           "uploadId": "5290538638",
           "sourceFileType": "BAM",
           "subjectId": "mySubject",
           "sampleId": "mySample",
           "generatedFrom": "1000 Genomes",
           "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/8168613728/reference/2190697383",
           "name": "HG00146",
           "description": "BAM for HG00146",
           "creationTime": "2023-11-29T19:23:33.116516+00:00"
       },
       {
           "sequenceStoreId": "1234567890",
           "uploadId": "4174220862",
           "sourceFileType": "BAM",
           "subjectId": "mySubject",
           "sampleId": "mySample",
           "generatedFrom": "1000 Genomes",
           "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/8168613728/reference/2190697383",
           "name": "HG00147",
           "description": "BAM for HG00147",
           "creationTime": "2023-11-29T19:23:47.007866+00:00"
       }
   ]
   }
   ```

1. ファイルのすべての部分をアップロードしたら、次の例に示すように、**complete-multipart-read-set-upload** を使用してアップロードプロセスを完了します。パートの `sequence store ID`、`upload ID`、および パラメータを独自の値に置き換えます。

   ```
   aws omics complete-multipart-read-set-upload \
   --sequence-store-id sequence store ID \
   --upload-id upload ID \
   --parts '[{"checksum":"gaCBQMe+rpCFZxLpoP6gydBoXaKKDA/Vobh5zBDb4W4=","partNumber":1,"partSource":"SOURCE1"}]'
   ```

   **complete-multipart-read-set-upload** のレスポンスは、インポートされたリードセットIDs です。

   ```
   {
   "readSetId": "0000000001"
   }
   ```

1. アップロードを停止するには、アップロード ID で **abort-multipart-read-set-upload** を使用してアップロードプロセスを完了します。`sequence store ID` と を独自のパラメータ値`upload ID`に置き換えます。

   ```
   aws omics abort-multipart-read-set-upload \
   --sequence-store-id sequence store ID \
   --upload-id upload ID
   ```

1. アップロードが完了したら、次に示すように **get-read-set** を使用して読み取りセットからデータを取得します。アップロードがまだ処理中の場合、**get-read-set** は制限されたメタデータを返し、生成されたインデックスファイルは使用できなくなります。`sequence store ID` と他のパラメータを独自の入力に置き換えます。

   ```
   aws omics get-read-set 
    --sequence-store-id sequence store ID \
    --id read set ID \
    --file SOURCE1 \
    --part-number 1 myfile.fastq.gz
   ```

1. アップロードのステータスを含むメタデータを確認するには、**get-read-set-metadata** API オペレーションを使用します。

   ```
   aws omics get-read-set-metadata --sequence-store-id sequence store ID --id read set ID    
   ```

   レスポンスには、ファイルタイプ、リファレンス ARN、ファイル数、シーケンスの長さなどのメタデータの詳細が含まれます。また、 ステータスも含まれます。可能なステータスは、`PROCESSING_UPLOAD`、`ACTIVE`、および です`UPLOAD_FAILED`。

   ```
   {
   "id": "0000000001",
   "arn": "arn:aws:omics:us-west-2:555555555555:sequenceStore/0123456789/readSet/0000000001",
   "sequenceStoreId": "0123456789",
   "subjectId": "mySubject",
   "sampleId": "mySample",
   "status": "PROCESSING_UPLOAD",
   "name": "HG00146",
   "description": "FASTQ for HG00146",
   "fileType": "FASTQ",
   "creationTime": "2022-07-13T23:25:20Z",
   "files": {
       "source1": {
           "totalParts": 5,
           "partSize": 123456789012,
           "contentLength": 6836725,
   
       },
       "source2": {
           "totalParts": 5,
           "partSize": 123456789056,
           "contentLength": 6836726
       }
   },
   'creationType": "UPLOAD"
   }
   ```

## フォールバックの場所を設定する
<a name="synchronous-uploads-fallback"></a>

シーケンスストアを作成または更新するときに、アップロードに失敗したファイルのフォールバックの場所として Amazon S3 バケットを設定できます。これらの読み取りセットのファイル部分は、フォールバックの場所に転送されます。フォールバックロケーションは、2023 年 5 月 15 日以降に作成されたシーケンスストアで利用できます。

次の例に示すように、Amazon S3 バケットポリシーを作成して、Amazon S3 フォールバックロケーションへの書き込みアクセスを HealthOmics に付与します。 Amazon S3 

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "omics.amazonaws.com"
    },
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
```

フォールバックログまたはアクセスログの Amazon S3 バケットがカスタマーマネージドキーを使用している場合は、キーポリシーに次のアクセス許可を追加します。

```
 {
    "Sid": "Allow use of key",
    "Effect": "Allow",
    "Principal": {
        "Service": "omics.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*"
}
```