对 HealthOmics 工作流定义语言的版本支持 - AWS HealthOmics

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

对 HealthOmics 工作流定义语言的版本支持

HealthOmics 支持用 Nextflow、WDL 或 CWL 编写的工作流程定义文件。以下各节提供有关这些语言的 HealthOmics 版本支持的信息。

WDL 版本支持

HealthOmics 支持 WDL 规范的 1.0、1.1 版本和 WDL 规范的开发版本。

每个 WDL 文档都必须包含一个版本声明,以指定它所遵循的规范版本(主要版本和次要版本)。有关版本的更多信息,请参阅 WDL 版本控制

WDL 规范的 1.0 和 1.1 版本不支持该Directory类型。要将该Directory类型用于输入或输出,请在文件第一行development中将版本设置为:

version development # first line of .wdl file ... remainder of the file ...

CWL 版本支持

HealthOmics 支持 CWL 语言的 1.0、1.1 和 1.2 版本。

您可以在 CWL 工作流程定义文件中指定语言版本。有关 CWL 的更多信息,请参阅 CWL 用户指南

Nextflow版本支持

HealthOmics 支持三个 Nextflow 稳定版本。Nextflow 通常每六个月发布一次稳定版本。 HealthOmics 不支持每月发布的 “边缘” 版本。

HealthOmics 支持每个版本中已发布的功能,但不支持预览功能。

支持的版本

HealthOmics 支持以下 Nextflow 版本:

  • Nextflow v22.04.01 DSL 1 和 DSL 2

  • Nextflow v23.10.0 DSL 2(默认)

  • Nextflow v24.10.8 DSL 2

要将您的工作流程迁移到支持的最新版本 (v24.10.8),请按照 Next flow 升级指南进行操作。

从 Nextflow v23 迁移到 v24 时有一些重大更改,如 Nextflow 迁移指南的以下部分所述:

检测和处理 Nextflow 版本

HealthOmics 检测您指定的 DSL 版本和 Nextflow 版本。它会根据这些输入自动确定要运行的最佳 Nextflow 版本。

DSL 版本

HealthOmics 在您的工作流程定义文件中检测请求的 DSL 版本。例如,您可以指定:nextflow.enable.dsl=2.

HealthOmics 默认情况下支持 DSL 2。如果在工作流程定义文件中指定,它可提供与 DSL 1 的向后兼容性。

  • 如果你指定 DSL 2,则 HealthOmics 运行 Nextflow v23.10.0,除非你指定 Nextflow v22.04.0 或 v24.10.8。

  • 如果你指定 DSL 1,则 HealthOmics 运行 Nextflow v22.04 DSL1 (唯一支持的运行 DSL 1 的版本)。

  • 如果您未指定 DSL 版本,或者由于任何原因(例如工作流程定义文件中的语法错误)而 HealthOmics 无法解析 DSL 信息,则 HealthOmics 默认为 DSL 2 并运行 Nextflow v23.10.0。

  • 要将工作流程从 DSL 1 升级到 DSL 2 以利用最新的 Nextflow 版本和软件功能,请参阅从 DSL 1 迁移

下一流版本

HealthOmics 如果你提供了 Nextflow 配置文件 (nextflow.config) 中请求的 Nextflow 版本。我们建议您在文件末尾添加nextflowVersion子句,以避免包含的配置中出现任何意外覆盖。有关更多信息,请参阅 Nextflow 配置

您可以使用以下语法指定 Nextflow 版本或一系列版本:

// exact match manifest.nextflowVersion = '1.2.3' // 1.2 or later (excluding 2 and later) manifest.nextflowVersion = '1.2+' // 1.2 or later manifest.nextflowVersion = '>=1.2' // any version in the range 1.2 to 1.5 manifest.nextflowVersion = '>=1.2, <=1.5' // use the "!" prefix to stop execution if the current version // doesn't match the required version. manifest.nextflowVersion = '!>=1.2'

HealthOmics 按如下方式处理 Nextflow 版本信息:

  • 如果您=使用指定 HealthOmics 支持的确切版本,则 HealthOmics 使用该版本。

  • 如果您使用!指定不支持的确切版本或一系列版本,则 HealthOmics 会引发异常并导致运行失败。如果您想严格处理版本请求,请考虑使用此选项,如果请求包含不支持的版本,则会很快失败。

  • 如果指定版本范围,则 HealthOmics 使用该范围内支持的最新版本,除非该范围包括 v24.10.8。在这种情况下, HealthOmics 优先考虑较早的版本。例如,如果该范围同时涵盖 v23.10.0 和 v24.10.8,则选择 v23.10.0。 HealthOmics

  • 如果没有请求的版本,或者请求的版本无效或由于任何原因无法解析:

    • 如果你指定了 DSL 1,则 HealthOmics 运行 Nextflow v22.04。

    • 否则, HealthOmics 运行 Nextflow v23.10.0。

您可以检索有关每次运行时 HealthOmics 使用的 Nextflow 版本的以下信息:

  • 运行日志包含有关 HealthOmics 用于运行的实际 Nextflow 版本的信息。

  • HealthOmics 如果与您请求的版本不直接匹配,或者需要使用与您指定的版本不同的版本,则会在运行日志中添加警告。

  • GetRun API 操作的响应包括一个字段 (engineVersion),其中包含 HealthOmics 用于运行的实际 Nextflow 版本。例如:

    "engineVersion":"22.04.0"