HealthOmics 工作流程定义要求 - AWS HealthOmics

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

HealthOmics 工作流程定义要求

工作 HealthOmics 流定义文件必须满足以下要求:

  • 任务必须定义 input/output 参数、Amazon ECR 容器存储库和运行时规范,例如内存或 CPU 分配。

  • 验证您的 IAM 角色是否具有所需的权限。

    • 您的工作流程可以访问来自 AWS 资源(例如 Amazon S3)的输入数据。

    • 您的工作流程可以在需要时访问外部存储库服务。

  • 在工作流程定义中声明输出文件。要将中间运行文件复制到输出位置,请将其声明为工作流程输出。

  • 输入和输出位置必须与工作流程位于同一个区域中。

  • HealthOmics 存储工作流输入必须处于ACTIVE状态。 HealthOmics 不会导入带有ARCHIVED状态的输入,从而导致工作流程失败。有关 Amazon S3 对象输入的信息,请参阅HealthOmics 运行输入

  • 如果您的 ZIP 存档包含单个工作流程定义或名为 “main” 的文件,则工作流程的main位置是可选的。

    • 路径示例:workflow-definition/main-file.wdl

  • 在通过 Amazon S3 或本地驱动器创建工作流程之前,请创建包含工作流程定义文件和任何依赖项(例如子工作流程)的 zip 存档。

  • 我们建议您在工作流程中将 Amazon ECR 容器声明为验证亚马逊 ECR 权限的输入参数。

Nextflow 的其他

  • /bin

    Nextflow 工作流程定义可能包括带有可执行脚本的 /bin 文件夹。此路径对任务具有只读权限和可执行访问权限。依赖这些脚本的任务应使用由相应脚本解释器构建的容器。最佳做法是直接给口译员打电话。例如:

    process my_bin_task { ... script: """ python3 my_python_script.py """ }
  • includeConfig

    基于 NextFlow 的工作流程定义可以包括 nextflow.config 文件,这些文件有助于抽象参数定义或流程资源配置文件。要支持在多个环境中开发和执行 Nextflow 管道,请使用 HealthOmics特定的配置,使用 includeConfig 指令将其添加到全局配置中。要保持可移植性,请使用以下代码将工作流程配置为仅在 HealthOmics 运行时包含文件:

    // at the end of the nextflow.config file if ("$AWS_WORKFLOW_RUN") { includeConfig 'conf/omics.config' }
  • Reports

    HealthOmics 不支持引擎生成的 dag、trace 和执行报告。您可以使用和 GetRunTask API 调用的组合生成跟踪报告 GetRun 和执行报告的替代方案。

其他 CWL 注意事项:

  • Container image uri interpolation

    HealthOmics 允许的 dockerPull 属性成为内联 javascript 表达式。 DockerRequirement 例如:

    requirements: DockerRequirement: dockerPull: "$(inputs.container_image)"

    这允许您将容器映 URIs 像指定为工作流程的输入参数。

  • Javascript expressions

    Javascript 表达式必须strict mode兼容。

  • Operation process

    HealthOmics 不支持 CWL 操作进程。