开始磨合 HealthOmics - AWS HealthOmics

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

开始磨合 HealthOmics

开始运行时,可以设置运行存储类型和存储量(用于静态存储)。有关更多信息,请参阅 在 HealthOmics 工作流程中运行存储类型

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

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

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

注意

您可以在开始运行时指定 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. 在左侧导航窗格中,选择 R uns

  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 操作与 I AM 角色和您创建的 Amazon S3 存储桶配合使用。此示例将保留模式设置为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" }

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

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

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

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

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

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

您也可以使用带有 GPU 工作流程 ID 的启动运行 API,如图所示。

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 日志中不存在运行元数据,则不会将其删除。您也可以使用运行 ID 通过 CLI 工具重新运行工作流程。了解更多信息并从工具 GitHub 存储库下载该HealthOmics工具

重新运行工作流程运行

以下示例说明如何使用该rerun工具重新运行运行。您需要运行 ID,您可以从 CloudWatch 日志中检索该ID。

omics-rerun 9876543 --name workflow name --retention-mode REMOVE

如果运行存在于中 CloudWatch,则您会收到类似于以下内容的响应。

Original request: { "workflowId": "9679729", "roleArn": "arn:aws:iam::123456789012:role/DemoRole", "name": "sample_rerun", "parameters": { "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/default:latest", "file1": "omics://123456789012.storage.us-west-2.amazonaws.com/8647780323/readSet/6389608538" }, "outputUri": "s3://workflow-output-bcf2fcb1" } StartRun request: { "workflowId": "9679729", "roleArn": "arn:aws:iam::123456789012:role/DemoRole", "name": "new test", "parameters": { "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/default:latest", "file1": "omics://123456789012.storage.us-west-2.amazonaws.com/8647780323/readSet/6389608538" }, "outputUri": "s3://workflow-output-bcf2fcb1" } StartRun response: { "arn": "arn:aws:omics:us-west-2:123456789012:run/9171779", "id": "9171779", "status": "PENDING", "tags": {} }

如果工作流程已不存在,您会收到一条错误消息。