Version support for HealthOmics workflow definition languages
HealthOmics supports workflow definition files written in Nextflow, WDL, or CWL. The following sections provide information about HealthOmics version support for these languages.
WDL version support
HealthOmics supports versions 1.0, 1.1, and the development version 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
Versions 1.0 and 1.1 of the WDL specification do not support the Directory
type.
To use the Directory
type for inputs or outputs, set the version to development
in the first line of the file:
version development # first line of .wdl file ... remainder of the file ...
CWL version support
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 version support
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.