本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 操作进程。