本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
打包并提供 HealthOmics 工作流程定义
当您创建工作流程或工作流程版本时,只能提供来自一个来源的定义:您随请求发送的 ZIP 档案、Amazon S3 中的 ZIP 存档或 Git-based 存储库。包含多个定义源的请求失败。本主题中的参数适用于两者 CreateWorkflow 和 CreateWorkflowVersion 操作。有关完整程序,请参见 创建私有工作流程 和 创建工作流程版本。
注意
HealthOmics 创建工作流程时会删除一些工作流程定义。如需了解哪些引擎、发现结果是否阻碍了工作流程以及如何阅读它们,请参阅 工作流程提示器已输入 HealthOmics。
选择工作流程定义来源
| 使用这个来源 | API 参数 | 最大大小 | AWS CLI 标记 |
|---|---|---|---|
| 本地计算机上的 ZIP 存档。 | definitionZip |
4.4 兆字节 | --definition-zip fileb://my-definition.zip |
| 亚马逊 S3 存储桶中的 ZIP 档案。存储桶必须在同一个存储桶中 AWS 区域作为工作流程。 | definitionUri |
100 MB | --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip |
| A 支持的 Git-based 存储库,通过 AWS CodeConnections 连接。 | definitionRepository |
1 GiB 存储库,每个文件 100 MiB | --definition-repository 带有 JSON 值 |
其他注意事项:
-
这些大小配额无法增加。有关更多信息,请参阅 HealthOmics 工作流程固定大小配额。
-
如果您的账户不拥有保存定义的 Amazon S3 存储桶,请提供存储桶所有者的 AWS 账户 身份证进入
workflowBucketOwnerId(--workflow-bucket-owner-id)。 -
和
definitionRepository, HealthOmics 从存储库读取定义文件,然后main,parameterTemplatePath,以及readmePath是存储库中的路径,而不是存档内的路径。有关以下内容的更多信息definitionRepository字段,请参阅 使用来自的工作流定义 Git-based 知识库。有关连接设置和支持的提供商的更多信息,请参阅 HealthOmics 与基于 Git 的存储库的工作流程集成。
ZIP 存档布局和主定义文件
包括主定义导入的每个文件,例如子工作流程, nextflow.config,以及任何 bin 脚本。
定义文件是扩展名与支持的引擎相匹配的文件,例如 .wdl, .nf,或 .cwl。如果你省略 main, HealthOmics 从离存档根最近的定义文件中选择它。它会忽略隐藏的文件和文件夹,并忽略存档中更深处的定义文件。自动选择还需要单个引擎,要么是因为存档文件包含一个引擎的定义文件,要么是因为您设置了 engine。在最近级别的文件中:
-
如果只有一个定义文件, HealthOmics 用它,不管它叫什么。
-
如果有几个, HealthOmics 使用名为的那个
main.wdl,main.nf,或main.cwl。
在两个案例中 HealthOmics 无法解析存档。请求本身成功,工作流程或工作流程版本启动于 CREATING,但随后移至 FAILED,其状态消息给出了原因:
-
Zip file contains multiple workflow definition types— 存档包含多个引擎的定义文件,但您没有设置engine。无论你是否设置,这都适用main。设置engine,或者删除其他引擎的文件。 HealthOmics 当两种情况都适用时,首先报告此原因。 -
Zip file contains multiple top-level workflow definition files— 你省略了main,有几个定义文件位于最近的级别,其中没有一个被命名为main.wdl,main.nf,或main.cwl。设置main走你想要的路。
要自己选择主定义文件,请设置 main (--main) 到其相对于存档根目录的路径。路径最多可以是 128 个字符。
例如,对于主定义文件为 workflow-definition/main-file.wdl:
--main workflow-definition/main-file.wdl
设置 engine (--engine)自己命名引擎,要么解析包含多个引擎定义文件的存档,要么使用 WDL lenient 引擎。
考虑在本地计算机上使用以下布局的工作流文件夹:
my-workflow/ main.wdl tasks/align.wdl tasks/call-variants.wdl
从该文件夹中创建档案,这样 main.wdl 还有 tasks 文件夹位于存档的根目录。以下命令还会添加隐藏的文件和文件夹,例如 .git 克隆存储库中的文件夹。这些将计入定义大小,因此不包括不需要的那些,例如 -x '.*' -x '*/.*':
cd my-workflow zip -r ../my-definition.zip . cd ..
main.wdl 现在是存档根目录下的唯一定义文件,所以你可以省略 main:
main.wdl tasks/align.wdl tasks/call-variants.wdl
以内联方式或通过 Amazon S3 发送档案
definitionZip 是一个二进制参数。当你使用 AWS CLI,将存档与 fileb:// 前缀和 AWS CLI 读取文件并为您编码。这个 AWS SDK 会为您进行编码。如果您直接通过 HTTP 调用 API,请将档案作为 base64 编码的字符串发送。
以下示例中的参数模板是可选的。如果你省略它, HealthOmics 从您的工作流程定义中派生运行参数。有关更多信息,请参阅 HealthOmics 工作流程的参数模板文件。
以下 AWS CLI 示例通过发送包含请求的 ZIP 存档来创建工作流程。用斜体替换每个值:
aws omics create-workflow \ --namemy-workflow-name\ --definition-zip fileb://my-definition.zip\ --parameter-template file://my-parameter-template.json
对于大于 definitionZip 限制在 选择工作流程定义来源,将其上传到与工作流程位于同一区域的 Amazon S3 存储桶并使用 definitionUri 取而代之。用斜体替换每个值,并将该存储桶替换为你自己的值:
aws s3 cpmy-definition.zips3://amzn-s3-demo-bucket1/my-definition.zip aws omics create-workflow \ --namemy-workflow-name\ --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip \ --parameter-template file://my-parameter-template.json
设置默认运行存储
我们建议大多数工作流程使用动态运行存储。在以下任一情况下,选择静态运行存储:
-
该工作流程使用超过 9.6 TiB 的数据,其任务受益于高持续性 I/O。
-
同时从共享运行存储中读取 100 多个分散任务。
有关每种运行存储类型的更多信息,包括其吞吐量特征以及如何调整静态运行存储空间的大小,请参阅 在 HealthOmics 工作流程中运行存储类型 和 为私有用户运行优化 HealthOmics 工作流程。
这个 storageType (--storage-type) 和 storageCapacity (--storage-capacity) 参数为使用工作流的运行设置默认值。可以在运行时覆盖这两者,如中所述 开始跑步 HealthOmics。按如下方式对它们进行配对:
-
storageType的DYNAMIC— HealthOmics 根据文件系统利用率向上和向下扩展运行存储。不要设置storageCapacity。如果你这样做,请求就会失败:CreateWorkflow报告You cannot set the storage capacity for workflows that use DYNAMIC run storage type,以及CreateWorkflowVersion报告You cannot set the storage capacity for workflow version that use DYNAMIC run storage type。 -
storageType的STATIC— HealthOmics 分配固定数量的运行存储空间,因此也要设置storageCapacity,以 GiB 为单位。如果工作流程和运行均未指定容量,则运行使用 1,200 GiB。最高限额是每个账户的限额。 HealthOmics 仅将静态运行存储空间配置为 1,200 GiB 或 2,400 GiB 的倍数,并将任何其他值向上舍入到下一个支持的大小。例如, HealthOmics 为 1,200 GiB 以下的容量提供 1,200 GiB。
以下示例将默认运行存储空间设置为 1,200 GiB 的静态存储:
aws omics create-workflow \ --namemy-workflow-name\ --definition-zip fileb://my-definition.zip\ --storage-type STATIC \ --storage-capacity 1200