RED-CWL 0 Specification
RED-CWL 0 is a subset of the CWL 1.0 CommandLineTool Description reflects the current (incomplete) implementation status.
The CWL reference implementation cwltool
requires a *.cwl
file as generic description of CommandLineTool and a *.yml
job file to define an input object, that contains actual parameters to run the experiment.
In contrast, a RED file embeds the contents of a *.cwl
file under the cli
keyword and embeds the input object under the inputs
keyword.
Depending on the RED execution engine, defining an output object might be optional and can be embedded under the outputs
keyword.
The RED-CWL description can be extracted from a RED file’s cli
section and stored in a *.cwl
file.
Since RED-CWL is a subset of the CWL standard, this extracted description should always be compatible with CWL runtimes like cwltool
.
On the other hand, not every CWL description can be embedded into a RED file without modification.
This spec refers to individial sections of the CWL 1.0 CommandLineTool Description to define wether a certain part of the standard is supported or not.
Data model
Document preprocessing
CWL 1.0 - 2.4 Document preprocessing
Optional inputs and outputs can be defined as <T>?
. Input arrays can be defined as <T>[]
. Optional input arrays can be defined as <T>[]?
.
<T>
refers to the input type. Output arrays are not allowed.
Running a Command
Runtime Environment
CWL 1.0 - 4.2 Document preprocessing
Setting runtime
parameters like runtime.ram
is not supported.
In the context of RED, this information is part of the container
section, because the container engine enforces these settings.
In addtion, the resource requirements of a CLI tool are in many cases influenced by the input data size. This makes resource requirements more of an experiment setting than a CLI tool setting.
CommandLineTool
Field | Supported | Description |
---|---|---|
inputs | partly | only map<id, type | CommandInputParameter> |
outputs | partly | only map<id, type | CommandInputParameter> |
class | yes | |
id | no | |
requirements | no | |
hints | no | |
label | no | |
doc | yes | |
cwlVersion | yes | |
baseCommand | yes | |
arguments | no | |
stdin | no | |
stdout | partly | only string |
stderr | partly | only string |
successCodes | no | |
temporaryFailCodes | no | |
permanentFailCodes | no |
CommandInputParameter
CWL 1.0 - 5.1 CommandInputParameter
Field | Supported | Description |
---|---|---|
id | no | because inputs only supports map<id, type | CommandInputParameter> |
label | no | |
secondaryFiles | no | |
streamable | no | |
doc | yes | |
format | no | |
inputBinding | yes | |
default | no | |
type | partly | only string , CWLType |
Expression
Symbol | Supported | Description |
---|---|---|
ExpressionPlaceholder | partly | only in RED outputs to reference inputs |
CommandLineBinding
CWL 1.0 - 5.1.2 CommandLineBinding
Field | Supported | Description |
---|---|---|
loadContents | no | |
position | yes | |
prefix | yes | |
separate | yes | |
itemSeparator | yes | |
valueFrom | no | |
shellQuote | no |
Any
Not supported.
CWLType
Symbol | Supported | Description |
---|---|---|
null | yes | |
boolean | yes | |
int | yes | |
long | yes | |
float | yes | |
double | yes | |
string | yes | |
File | yes | |
Directory | yes |
File
Supported in RED inputs
section.
Field | Supported | Description |
---|---|---|
class | yes | |
location | no | because RED introduces the connector field, that replaces location |
path | auto | automatically set by execution engine |
basename | yes | |
dirname | yes | |
nameroot | auto | automatically set by execution engine |
nameext | auto | automatically set by execution engine |
checksum | yes | |
size | yes | |
secondaryFiles | no | |
format | no | |
contents | no |
Directory
Supported in RED inputs
section.
Field | Supported | Description |
---|---|---|
class | yes | |
location | no | because RED introduces the connector field, that replaces location |
path | auto | automatically set by execution engine |
basename | yes | |
listing | yes |
CommandInputRecordSchema
CWL 1.0 - 5.1.6 CommandInputRecordSchema
Not supported.
CommandInputRecordField
CWL 1.0 - 5.1.7 CommandInputRecordField
Not supported.
CommandInputRecordSchema
CWL 1.0 - 5.1.6 CommandInputRecordSchema
Not supported.
CommandInputRecordField
CWL 1.0 - 5.1.7 CommandInputRecordField
Not supported.
CommandInputEnumSchema
CWL 1.0 - 5.1.7.1 CommandInputEnumSchema
Not supported.
CommandInputArraySchema
CWL 1.0 - 5.1.7.2 CommandInputArraySchema
https://www.commonwl.org/v1.0/CommandLineTool.html#Document_preprocessing
Not supported, but arrays can be specified using type: <T>[]
as described in CWL 1.0 - 2.4 Document preprocessing.
CommandOutputParameter
CWL 1.0 - 5.2 CommandOutputParameter
Field | Supported | Description |
---|---|---|
id | no | because inputs only supports map<id, type | CommandInputParameter> |
label | no | |
secondaryFiles | no | |
streamable | no | |
doc | yes | |
outputBinding | yes | |
format | no | |
type | partly | only string , CWLType , where CWLType is one of File , Directory |
stdout
Symbol | Supported | Description |
---|---|---|
stdout | yes |
stderr
Symbol | Supported | Description |
---|---|---|
stderr | yes |
CommandOutputBinding
CWL 1.0 - 5.2.3 CommandOutputBinding
Field | Supported | Description |
---|---|---|
glob | yes | |
loadContents | no | |
outputEval | no |
CommandOutputRecordSchema
CWL 1.0 - 5.2.4 CommandOutputRecordSchema
Not supported.
CommandOutputRecordField
CWL 1.0 - 5.2.5 CommandOutputRecordField
Not supported.
CommandOutputEnumSchema
CWL 1.0 - 5.2.5.1 CommandOutputEnumSchema
Not supported.
CommandOutputArraySchema
CWL 1.0 - 5.2.5.2 CommandOutputArraySchema
Not supported.
InlineJavascriptRequirement
CWL 1.0 - 5.3 InlineJavascriptRequirement
Not supported.
SchemaDefRequirement
CWL 1.0 - 5.4 SchemaDefRequirement
Not supported.
DockerRequirement
CWL 1.0 - 5.5 DockerRequirement
Not supported, because container engine settings must be defined in the container
section of a RED file.
SoftwareRequirement
CWL 1.0 - 5.6 SoftwareRequirement
Not supported.
SoftwarePackage
Not supported.
InitialWorkDirRequirement
CWL 1.0 - 5.8 InitialWorkDirRequirement
Not supported.
EnvVarRequirement
CWL 1.0 - 5.9 EnvVarRequirement
Not supported.
EnvironmentDef
Not supported.
ShellCommandRequirement
CWL 1.0 - 5.11 ShellCommandRequirement
Not supported.
ResourceRequirement
CWL 1.0 - 5.12 ResourceRequirement
Not supported.
CWLVersion
Field | Supported | Description |
---|---|---|
draft-2 | no | |
draft-3.dev1 | no | |
draft-3.dev2 | no | |
draft-3.dev3 | no | |
draft-3.dev4 | no | |
draft-3.dev5 | no | |
draft-3 | no | |
draft-4.dev1 | no | |
draft-4.dev2 | no | |
draft-4.dev3 | no | |
v1.0.dev4 | no | |
v1.0 | yes |