直接上传到 HealthOmics 序列存储 - AWS HealthOmics

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

直接上传到 HealthOmics 序列存储

我们建议您使用 HealthOmics 传输管理器将文件添加到序列存储中。有关使用传输管理器的更多信息,请参阅此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-par ts 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. 要查看所有活跃的分段读取集上传,请使用 up list-multipart-read-setloads,如下所示。sequence store ID替换为您自己的序列存储的 ID。

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

    此 API 仅返回正在进行的分段读取集上传。在提取的读取集之后ACTIVE,或者如果上传失败,则不会在对 uploads API 的响应中返回上list-multipart-read-set传。要查看活跃的读取集,请使用 list-read-setsAPI。list-multipart-read-set上传的响应示例如下所示。

    { "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 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-uploa d 的响应是您导入的读 IDs 取集的读取集。

    { "readSetId": "0000000001" }
  7. 要停止上传,请使用带有abort-multipart-read-set上传 ID 的- upload 来结束上传过程。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-metadataAPI 操作。

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

    响应包含元数据详细信息,例如文件类型、引用 ARN、文件数量和序列长度。它还包括状态。可能的状态是PROCESSING_UPLOADACTIVE、和。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" }

配置备用位置

创建或更新序列存储时,您可以将 Amazon S3 存储桶配置为上传失败的文件的备用位置。这些读取集的文件部分被传输到备用位置。备用位置可用于 2023 年 5 月 15 日之后创建的序列存储。

创建 Amazon S3 存储桶策略以授予对 Amazon S3 备用位置的 HealthOmics 写入权限,如以下示例所示:

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