开始跑步 HealthOmics - AWS HealthOmics

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

开始跑步 HealthOmics

开始运行时,您可以指定 HealthOmics 分配给运行期间使用的资源。

指定运行存储类型和存储量(对于静态存储)。为确保数据隔离和安全 HealthOmics ,请在每次运行开始时配置存储,并在运行结束时取消配置。有关更多信息,请参阅 在 HealthOmics 工作流程中运行存储类型

为输出文件指定 Amazon S3 的位置。如果您同时运行大量工作流程,请 URIs 为每个工作流程使用单独的 Amazon S3 输出以避免存储桶限制。有关更多信息,请参阅 Amazon S3 用户指南中的使用前缀组织对象和优化 Amazon S 3 性能白皮书中的水平扩展存储连接

您也可以指定运行优先级。优先级对运行的影响取决于运行是否与运行组关联。有关更多信息,请参阅 运行优先级

如果工作流程有一个或多个版本,则可以在开始运行时指定一个版本。如果您未指定版本,则 HealthOmics 启动默认工作流程版本

使用 HealthOmics API 时,您可以为每次运行提供唯一的请求 ID。请求 ID 是一个 HealthOmics 用于识别重复请求的等性令牌。并且只开始运行一次。

注意

您可以在开始运行时指定 IAM 服务角色。或者,控制台可以为您创建服务角色。有关更多信息,请参阅 的服务角色 AWS HealthOmics

HealthOmics 运行参数

开始运行时,可以在运行参数 JSON 文件中指定运行输入,也可以内联输入参数值。有关管理运行参数 JSON 文件大小的信息,请参阅管理运行参数大小

HealthOmics 支持以下 JSON 类型的参数值。

JSON 类型 键和值示例 备注
布尔值 “b”: true 值不在引号中,且全部为小写。
整数 “i”: 7 值不在引号中。
数字 “f”: 42.3 值不在引号中。
字符串 “s”: “字符” 值用引号表示。对文本值使用字符串类型和 URIs。URI 目标必须是预期的输入类型。
array “a”: [1,2,3] 值不在引号中。每个数组成员都必须具有由输入参数定义的类型。
object “o”: {“左”: “a”,“右”: 1} 在 WDL 中,对象映射到 WDL 配对、映射或结构

使用控制台开始运行

开始跑步
  1. 打开 HealthOmics 管理控制台

  2. 如果需要,请打开左侧导航窗格 (►)。选择运行

  3. 在 “运行” 页面上,选择 “开始运行”。

  4. 运行详细信息面板中,提供以下信息

    • 工作流来源-选择 “自有的工作流程” 或 “共享工作流程”

    • 工作流程 ID-与此运行关联的工作流程 ID。

    • 工作流程版本(可选)-选择用于此次运行的工作流程版本。如果您未选择版本,则运行将使用工作流程的默认版本。

    • 跑步名称-此跑步的独特名称。

    • 运行优先级(可选)-此次运行的优先级。数字越大,优先级越高,优先级最高的任务首先运行。

    • 运行存储类型-在此处指定存储类型以覆盖为工作流程指定的默认运行存储类型。静态存储为运行分配固定数量的存储空间。动态存储可根据运行中的每项任务的需要向上和向下扩展。

    • 运行存储容量-对于静态运行存储,请指定运行所需的存储量。此条目将覆盖为工作流程指定的默认运行存储量。

    • 选择 S3 输出目的地-保存运行输出的 S3 位置。

    • 输出存储桶所有者的账户 ID(可选)-如果您的账户不拥有输出存储桶,请输入存储桶所有者的 AWS 账户 ID。为了验证存储桶所有权 HealthOmics ,必须提供此信息。

    • 运行元数据保留模式-选择是保留所有运行的元数据,还是让系统在账户达到最大运行次数时删除最旧的运行元数据。有关更多信息,请参阅 运行时 HealthOmics 运行保留模式

  5. 服务角色下,您可以使用现有的服务角色或创建新的服务角色。

  6. (可选)对于标记,您最多可以为运行分配 50 个标签。

  7. 选择下一步

  8. 添加参数值页面上,提供运行参数。您可以上传指定参数的 JSON 文件,也可以手动输入值。

  9. 选择下一步

  10. 在 “运行组” 面板中,您可以选择为此次运行指定运行组。有关更多信息,请参阅 使用 HealthOmics 跑步组

  11. 在 “运行缓存” 面板中,您可以选择为此次运行指定运行缓存。有关更多信息,请参阅 使用控制台配置带有运行缓存的运行

  12. 选择 Review and start run (检查并启动运行)

  13. 查看运行配置后,选择开始运行

使用 API 开始跑步

使用启动运行 API 操作创建并开始运行。

以下示例指定了工作流程 ID 和服务角色。此示例将保留模式设置为REMOVE。有关保留模式的更多信息,请参阅运行时 HealthOmics 运行保留模式

aws omics start-run --workflow-id workflow id \ --role-arn arn:aws:iam::1234567892012:role/service-role/OmicsWorkflow-20221004T164236 \ --name workflow name \ --retention-mode REMOVE

作为响应,你会得到以下输出。uuid是运行所独有的,与一起outputUri可用于跟踪输出数据的写入位置。

{ "arn": "arn:aws:omics:us-west-2:....:run/1234567", "id": "123456789", "uuid":"96c57683-74bf-9d6d-ae7e-f09b097db14a", "outputUri":"s3://bucket/folder/8405154/96c57683-74bf-9d6d-ae7e-f09b097db14a" "status": "PENDING" }

xx

如果工作流程的参数模板声明了任何必需的参数,则可以在启动工作流程运行时提供输入的本地 JSON 文件。JSON 文件包含每个输入参数的确切名称和该参数的值。

AWS CLI 通过添加到--parameters file://<input_file.json>您的start-run请求中引用输入 JSON 文件。有关运行参数的更多信息,请参阅HealthOmics 运行输入

xx

你可以为每次跑步提供一个唯一的requestId。请求 ID 是一个 HealthOmics用于识别重复请求的等性令牌。并且只开始运行一次。

如果您使用基础架构(例如 Lambda 函数或步骤函数)来协调运行启动,则最佳做法是在每个请求中提供唯一的请求 ID。 StartRun 这样可以确保在您的基础架构执行重试(例如从上游错误中恢复)时, HealthOmics 不会开始重复运行。

xx

您可以为运行指定工作流程版本。

aws omics start-run --workflow-id workflow id \ ... --workflow-version-name '1.2.1'

xx

您可以覆盖工作流程中指定的默认运行存储类型。

aws omics start-run --workflow-id workflow id \ ... --storage-type STATIC --storage-capacity 2400

xx

aws omics start-run --workflow-id workflow id \ --role-arn arn:aws:iam::1234567892012:role/service-role/OmicsWorkflow-20221004T164236 \ --name GPUTestRunModel \ --output-uri s3://amzn-s3-demo-bucket1

获取有关跑步的信息

您可以将响应中的 ID 与 get-run API 配合使用来检查运行状态,如图所示。

aws omics get-run --id run id

来自此 API 操作的响应会告诉您工作流程的运行状态。可能的状态是PENDINGSTARTINGRUNNING、和。COMPLETED运行时COMPLETED,您可以在输出 Amazon S3 存储桶outfile.txt中找到一个名为的输出文件,该文件位于以运行 ID 命名的文件夹中。

get-run API 操作还会返回其他详细信息,例如工作流程是否为PRIVATE、工作流引擎和加速器详细信息。Ready2Run以下示例显示了私有工作流程运行时对 get-run 的响应,该工作流程在 WDL 中进行了描述,该工作流程具有 GPU 加速器且未为运行分配任何标签。

{ "arn": "arn:aws:omics:us-west-2:123456789012:run/7830534", "id": "7830534", "uuid":"96c57683-74bf-9d6d-ae7e-f09b097db14a", "outputUri":"s3://bucket/folder/8405154/96c57683-74bf-9d6d-ae7e-f09b097db14a" "status": "COMPLETED", "workflowId": "4074992", "workflowType": "PRIVATE", "workflowVersionName": "3.0.0", "roleArn": "arn:aws:iam::123456789012:role/service-role/OmicsWorkflow-20221004T164236", "name": "RunGroupMaxGpuTest", "runGroupId": "9938959", "digest": "sha256:a23a6fc54040d36784206234c02147302ab8658bed89860a86976048f6cad5ac", "accelerators": "GPU", "outputUri": "s3://amzn-s3-demo-bucket1", "startedBy": "arn:aws:sts::123456789012:assumed-role/Admin/<role_name>", "creationTime": "2023-04-07T16:44:22.262471+00:00", "startTime": "2023-04-07T16:56:12.504000+00:00", "stopTime": "2023-04-07T17:22:29.908813+00:00", "tags": {} }

如图所示,您可以使用列表运行 API 操作查看所有运行的状态。

aws omics list-runs

要查看特定运行的所有已完成任务,请使用 list-run-tasksAPI。

aws omics list-run-tasks --id task ID

要获取任何特定任务的详细信息,请使用 get-run-task API。

aws omics get-run-task --id <run_id> --task-id task ID

运行完成后,元数据将发送到流 CloudWatch 下方manifest/run/<run ID>/<run UUID>

以下是清单的示例。

{ "arn": "arn:aws:omics:us-east-1:123456789012:run/1695324", "creationTime": "2022-08-24T19:53:55.284Z", "resourceDigests": { "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.dict": "etag:3884c62eb0e53fa92459ed9bff133ae6", "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta": "etag:e307d81c605fb91b7720a08f00276842-388", "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta.fai": "etag:f76371b113734a56cde236bc0372de0a", "s3://omics-data/intervals/hg38-mjs-whole-chr.500M.intervals": "etag:27fdd1341246896721ec49a46a575334", "s3://omics-data/workflow-input-lists/dragen-gvcf-list.txt": "etag:e22f5aeed0b350a66696d8ffae453227" }, "digest": "sha256:a5baaff84dd54085eb03f78766b0a367e93439486bc3f67de42bb38b93304964", "engine": "WDL", "main": "gatk4-basic-joint-genotyping-v2.wdl", "name": "1044-gvcfs", "outputUri": "s3://omics-data/workflow-output", "parameters": { "callset_name": "cohort", "input_gvcf_uris": "s3://omics-data/workflow-input-lists/dragen-gvcf-list.txt", "interval_list": "s3://omics-data/intervals/hg38-mjs-whole-chr.500M.intervals", "ref_dict": "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.dict", "ref_fasta": "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta", "ref_fasta_index": "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta.fai" }, "roleArn": "arn:aws:iam::123456789012:role/OmicsServiceRole", "startedBy": "arn:aws:sts::123456789012:assumed-role/admin/ahenroid-Isengard", "startTime": "2022-08-24T20:08:22.582Z", "status": "COMPLETED", "stopTime": "2022-08-24T20:08:22.582Z", "storageCapacity": 9600, "uuid": "a3b0ca7e-9597-4ecc-94a4-6ed45481aeab", "workflow": "arn:aws:omics:us-east-1:123456789012:workflow/1558364", "workflowType": "PRIVATE" }, { "arn": "arn:aws:omics:us-east-1:123456789012:task/1245938", "cpus": 16, "creationTime": "2022-08-24T20:06:32.971290", "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/gatk", "imageDigest": "sha256:8051adab0ff725e7e9c2af5997680346f3c3799b2df3785dd51d4abdd3da747b", "memory": 32, "name": "geno-123", "run": "arn:aws:omics:us-east-1:123456789012:run/1695324", "startTime": "2022-08-24T20:08:22.278Z", "status": "SUCCESS", "stopTime": "2022-08-24T20:08:22.278Z", "uuid": "44c1a30a-4eee-426d-88ea-1af403858f76" }, ...

如果 CloudWatch 日志中不存在运行元数据,则不会将其删除。