直接上傳至 HealthOmics 序列存放區 - AWS HealthOmics

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

直接上傳至 HealthOmics 序列存放區

我們建議您使用 HealthOmics Transfer Manager 將檔案新增至序列存放區。如需使用 Transfer Manager 的詳細資訊,請參閱此 GitHub 儲存庫。您也可以透過直接上傳 API 操作,將讀取集直接上傳至序列存放區。

直接上傳讀取集會先處於 PROCESSING_UPLOAD 狀態。這表示檔案部分目前正在上傳,而且您可以存取讀取集中繼資料。上傳組件並驗證檢查總和後,讀取集會變成ACTIVE和行為與匯入的讀取集相同。

如果直接上傳失敗,讀取集狀態會顯示為 UPLOAD_FAILED。您可以將 Amazon S3 儲存貯體設定為無法上傳檔案的備用位置。備用位置適用於 2023 年 5 月 15 日之後建立的序列存放區。

使用 直接上傳至序列存放區 AWS CLI

若要開始,請開始分段上傳。您可以使用 來執行此操作 AWS CLI,如下列範例所示。

使用 AWS CLI 命令直接上傳
  1. 透過分隔資料來建立組件,如下列範例所示。

    split -b 100MiB SRR233106_1.filt.fastq.gz source1_part_
  2. 將來源檔案分段後,請建立分段讀取集上傳,如下列範例所示。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" }
  3. 將讀取集新增至上傳。如果您的檔案夠小,您只需要執行此步驟一次。對於較大的檔案,您可以對檔案的每個部分執行此步驟。如果您使用先前使用的組件編號上傳新組件,則會覆寫先前上傳的組件。

    在下列範例中,將 sequence store IDupload 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" }
  4. 如有必要,請繼續上傳檔案的部分。若要確認您的讀取集已上傳,請使用 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" } ] }
  5. 若要檢視所有作用中的分段讀取集上傳,請使用 list-multipart-read-set-uploads,如下所示。sequence store ID 將 取代為您自己的序列存放區的 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。listlist-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" } ] }
  6. 上傳檔案的所有部分之後,請使用 complete-multipart-read-set-upload 結束上傳程序,如下列範例所示。使用您自己的值取代組件的 sequence store IDupload 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" }
  7. 若要停止上傳,請使用 abort-multipart-read-set-upload 搭配上傳 ID 來結束上傳程序。upload ID 使用您自己的參數值取代 sequence store ID和 。

    aws omics abort-multipart-read-set-upload \ --sequence-store-id sequence store ID \ --upload-id upload ID
  8. 上傳完成後,請使用 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
  9. 若要檢查中繼資料,包括上傳的狀態,請使用 get-read-set-metadata API 操作。

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

    回應包含中繼資料詳細資訊,例如檔案類型、參考 ARN、檔案數量,以及序列的長度。它還包含 狀態。可能的狀態為 PROCESSING_UPLOADACTIVEUPLOAD_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" }

設定備用位置

當您建立或更新序列存放區時,您可以將 Amazon S3 儲存貯體設定為無法上傳檔案的備用位置。這些讀取集的檔案部分會傳輸至後援位置。備用位置適用於 2023 年 5 月 15 日之後建立的序列存放區。

建立 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": "*" }