runs submit
Submit one or more Workflow Runs
Synopsis
Description
omics workbench runs submit
facilitates the submission of a workflow for execution one or more times against the same execution engine.
Examples
Submit a single workflow for execution using the default engine and inputs passed in the input overrides
If workflows are stored in a file called inputs.json
you can use the special @
operator to load the file contents
The above example can be modified to pass additional tag metadata. Tags are arbitrary key:value pairs that provide additional context and can be used later for filtering runs
If you want to run the workflow using an engine other than the default, you can retrieve the engine id either from the web application or the engines list command
To perform a dry run without actually submitting the workflow, use the --dry-run
flag
Positional Arguments
INPUT_OVERRIDES
INPUT_OVERRIDES
Positional JSON Data that will take precedence over default-params and workflow-params. If a value specified in the override collides with a value in the default-params or workflow-params, they will be overridden with the value provided in the override. If a key with the same name is already provided in the default-params or workflow-params, they will be overridden with the value provided in the override.
Flags
--url
=URL OR WORKFLOW ID
--url
=URL OR WORKFLOW ID
The URL to the workflow file (*.wdl). Only URLs from workflow-service are currently supported. Workflow URLs are a string that can correspond to any of the following:
A concatenation of the
<workflow_internal_id>/<version_name>
. These values can be retrieved from the Workbench workflows page, or you can also retrieve them by using the workflows list or workflows describe commandsURL from the workflows page in Workbench (ie:
https://workbench.dnastack/workflows/<workflow_id>/overview
)Complete URL for a workflow or a workflow version from the workflow service
--engine
=ENGINE_ID
--engine
=ENGINE_ID
Use the given engine id for the execution of runs. If this value is not defined then the default engine will be used. The Engine ID can be retrieved from the engines page in workbench or the engines list command.
--engine-params
=JSON_DATA
--engine-params
=JSON_DATA
Set the global engine parameters for all runs that are to be submitted. Engine Parameters can be defined as a list of engine parameter preset IDs (which can be found using the engines parameters list command) and/or a list of JSON Data. The list is expected to be comma-separated and actual engine parameters are different for each configured engine. Note that any JSON Data from a specified file will be overwritten by literal json, key-value pairs or parameter presets with matching keys. For example:
--default-params
=JSON_DATA
--default-params
=JSON_DATA
Specify the global default inputs as a JSON file or as inlined JSON to use when submitting multiple runs. Default inputs have the lowest level of precedence and will be overridden by any run input or override. Default params can be defined as JSON Data.
--workflow-params
=JSON_DATA
--workflow-params
=JSON_DATA
Specify the workflow params for a given run, as key:value pairs, a JSON file, or inlined JSON. Additionally, the user may specify a directory that contains a list of parameters in JSON format. Each file will result in a separate run. This field may be repeated, with each repetition specifying a separate run request that will be submitted as part of a batch. Workflow params can be defined as JSON Data.
--tags
=JSON_DATA
--tags
=JSON_DATA
Set the global tags for all runs that are to be submitted. Tags can be defined as JSON Data.
--dry-run
--dry-run
Perform a dry run without actually submitting the workflow. This can be useful for validating the inputs and parameters before actual submission.
Advanced Topics
Batching
The CLI provides a powerful interface for submitting many workflows at once with the ability to define default values and an arbitrary number of runs. In the above examples, we are submitting inputs using input overrides. The simple workflow submission can be re-written using the --workflow-params
flag instead of overrides.
Additionally, if we want to guarantee that every run has a specific value defined for hello.greeting
we can mix and match the --workflow-params
flag with input overrides.
Now imagine you want to submit the exact same workflow for Suzy, Frank, Peggie, and Brooklyn. One way would be to submit the above command 4 different times changing the hello.name=${name}
, however, this increases the boilerplate needed. A simpler approach would be to define multiple --workflow-params
flags in the same command. You can specify --workflow-params
as many times as you want. Each time it is specified, it will be translated into a single submitted run of the given workflow.
Finally, say we would like to change one of the run's greetings but keep it the same for all other runs. The above command uses an override which will fix the input value for all runs. Instead, we can use the --default-params
flag to specify the default values, and then in the specific submission, we want to override it, and provide a key:value input for it.
The above command sets Hello
as the default greeting which will be applied to all submissions except the final one which sets the greeting to Goodbye
.
Last updated