HealthOmics support for workflow definition language versions - AWS HealthOmics

HealthOmics support for workflow definition language versions

HealthOmics supports workflow definition files written in Nextflow, WDL, or CWL.

The following sections provide information about HealthOmics version support for these languages.

WDL versions

HealthOmics supports versions 1.0 and 1.1 of the WDL specification.

Every WDL document must include a version statement to specify which version (major and minor) of the specification it adheres to. For more information about versions, see WDL versioning

CWL versions

HealthOmics supports versions 1.0, 1.1, and 1.2 of the CWL language.

You can specify the language version in the CWL workflow definition file. For more information about CWL, see the CWL user guide

Nextflow versions

HealthOmics actively supports two Nextflow stable versions. Nextflow typically releases a stable version every six months. HealthOmics doesn't support the monthly “edge” releases.

Supported versions

HealthOmics supports the following Nextflow versions:

  • Nextflow v22.04.01 DSL 1 and DSL 2

  • Nextflow v23.10.0 DSL 2

Detect and process Nextflow versions

HealthOmics detects the DSL version and Nextflow version that you specify. It automatically determines the best Nextflow version to run based on these inputs.

DSL version

HealthOmics detects the requested DSL version in your workflow definition file. For example, you can specify: nextflow.enable.dsl=2.

HealthOmics supports DSL 2 by default. It provides backwards compatibility with DSL 1, if specified in your workflow definition file.

  • If you specify DSL 2, HealthOmics runs the latest supported Nextflow version (unless you specify Nextflow v22.04).

  • If you specify DSL 1, HealthOmics runs Nextflow v22.04 DSL1 (the only supported version that runs DSL 1).

  • If you don't specify a DSL version, or if HealthOmics can’t parse the DSL information for any reason (such as syntax errors in your workflow definition file), HealthOmics defaults to DSL 2.

  • To upgrade your workflow from DSL 1 to DSL 2 to take advantage of the latest Nextflow versions and software features, see Migrating from DSL 1.

Nextflow versions

HealthOmics detects the requested Nextflow version in the Nextflow configuration file (nextflow.config), if you provide this file. For more information, see Nextflow configuration.

You can specify a Nextflow version or a range of versions using the following syntax:

// 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 does not match the required version. manifest.nextflowVersion = '!>=1.2'

HealthOmics processes the Nextflow version information as follows:

  • If you use = to specify an exact version that HealthOmics supports, HealthOmics uses that version.

  • If you use ! to specify an exact version, HealthOmics ignores the prefix (we don’t support hard version matches) and uses the latest supported Nextflow version. HealthOmics doesn't fail the run, but adds a warning message to the run manifest logs.

  • If you specify a range of versions, HealthOmics uses the latest supported version in that range.

  • If there is no requested version, or if the requested versions aren't valid or can’t be parsed for any reason:

    • If you specified DSL 1, HealthOmics runs Nextflow v22.04.

    • Otherwise, HealthOmics runs the latest supported version.

HealthOmics provides two kinds of information about the Nextflow version.

  • The run logs contain information about the Nextflow version that HealthOmics used for the run.

  • HealthOmics adds warnings in the run logs if there isn't a direct match with your requested version or if it needed to use a different version than you specified.