Releases: dnanexus/dxWDL
Minor fixes
- Improved support for conditionals and optional values
- Automated tests for both locked and regular workflows
- Various minor bug fixes
Regular workflows
- More accurate detection of the IO classes in dx:applets.
- Improved handling of WDL constants. For example, multi word
constants such as["1", "2", "4"]
, and4 + 11
are recognized as
such. When possible, they are evaluated at compile time. - Revert default compilation to a regular workflow. It is possible to
compile to a locked-down workflow by specifying-locked
on the
command line. To specify command workflow inputs from the command line
use:
dx run foo -i0.N=19
Minor fixes
Not closing dx:workflows. This turns out to be too restrictive. For example, you cannot add a description to a closed workflow.
Using DNAx workflow inputs and outputs
- Uplift the code to use DNAnexus workflow inputs and outputs.
Running a workflow now has slighly easier command line syntax.
For example, if workflowfoo
takes an integer
argumentN
, then running it through the CLI is done like
this:
dx run foo -iN=19
-
Revamp the conversions between dx:file and wdl:file. This allows
specifying dx files in defaults. -
Initial support for non-empty WDL array types, for example
Array[String]+
. -
Improved handling of optional values
-
An experimental new syntax for specifying inputs where the workflow
is underspecified. WDL allows leaving required call inputs unassigned, and
specifying them from the input file. For example, workflowmath
calls taskadd
, but does not specify argumentb
. It can then
be specified from the input file as follows:{ "math.add.b" : 3}
.
task add {
Int a
Int b
output {
Int result = a + b
}
}
workflow math {
call add { input: a = 3 }
output {
add.result
}
}
The dx:workflow that is compiled from math
can set this variable from
the command line as follows:
dx run math -iadd___b=5
This command line syntax may change in the future.
Minor improvements
- Adding a -quiet flag to suppress warning and informational messages during compilation.
- Minor fixes
Docker images and lazy download
Support docker images that reside on the platform.
Tasks that have an empty command section do not download files eagerly. For example, if a task only looks at size(file)
, it will not download the file at all.
task fileSize {
File in_file
command {}
output {
Float num_bytes = size(in_file)
}
}
Type lookup and evaluation improvements
- Fixed several WDL typing issues
- Removed limitation on maximal hourly price per instance. Some bioinformatics pipelines
regularly require heavy weight instances. - Improved the internal representation of JSON objects given as input
Improving scatters
- Handle scatters where the called tasks return file arrays, and non-native platform types. This is done by spawning a subjob to collect all the outputs and bundle them.
- Support string interpolation in workflow expressions
- Support Azure us-west region
0.47
Allowing defaults for task/workflow inputs
- Allow applet/workflow inputs that are optional, and have a default.
- More friendly command line interface