====== Workflow Template Specification ======
CLUSTER_HOST|LOCAL_HOST (optional, defaults to CLUSTER_HOST)
....
....
String with optional variables (required)
....
====== Workflow Template Example ======
CLUSTER_HOST${config.extras_path}/ShadingCorrectionAverageImage_${module.version}/ComputeShadingCorrectionAvgImg.command${config.extras_dir}/ShadingCorrectionAverageImage/ShadingCorrectionAverageImage_v${module.version}/MergeShadingCorrectionAverageImage.command
...
...
====== Definitions ======
===== =====
==== ====
Name of the workflow.
Workflow
==== ====
Author of the workflow.
==== ====
Specifies if the process directories are to be deleted from the scratch space after success execution of the workflow.
===== =====
This element is used to specify which datasets coming from storage are needed by at least one of the modules forming the workflow.
When a process is started by submitting a particular workflow together with one or several input datasets, it will be checked that:
* the input dataset(s) identified by its storage ID exist in storage
* the input dataset(s) in storage have the same type as specified in the '''' element, if given
==== ====
Required. It will be used to identify the dataset when it is needed by a module. Therefore, the dataset name must be unique in the whole workflow description.
==== ====
Required. Corresponds to the ID necessary for the storage to localize this dataset.
==== ====
Optional. Corresponds to the dataset type provided by the storage. It is used for validation purposes.
==== ====
Optional, defaults to true.\\
If //true//, the dataset will be staged to the processing scratch space.\\
If //false//, an empty directory will be created in the processing scratch space; in that case the dataset content will not be copied to scratch, only a directory with the expected name will be created there.
:!: This feature is not implemented. The application behaves as this value would be set to true. To be discussed if it is needed, since the directory of a dataset could be specified as metadata or as variable.
==== ====
With this element, the files and/or directories to stage are selected. All the ''"files"'' elements defined in an output dataset will be evaluated. The files and/or directories selected will be the following:
* located in the ''"in_dir"'', as a subdirectory of the module's work directory; or located directly in the module's work directory if the ''"in_dir"'' attribute is empty.
* matching the regex expression specified in the ''"regex"'' attribute.
===== =====
The module names ("name" attribute) in a workflow description file must be unique.
===== =====
The path to the executable will be resolved by using the **${module.version}** variable.
The exact resolving algorithm is to be described.
===== =====
==== type="PATH" ====
This argument will be resolved to:
- the path to a dataset: to provide the directory of a dataset the **value** should have the **dataset:** prefix and then the name of the referenced dataset. E.g. ''value="dataset:hcs_plate"''
- a subdirectory of the module's work directory: the **value** has to be **moduledir**. E.g.: ''value="moduledir"''
=== selector=".." ===
It's possible to select a file or directory in the referenced directory by using the selector attribute.\\
Possible values for the ''**selector=".."**'' attribute depend on the value of the ''**value=".."**'' attribute:
|''value="dataset://some_input dataset//" selector="//some_regex//|//some_name//"'' |It refers to an **input dataset** defined in the workflow section of the workflow.xml. Therefore, we are referring to a dataset coming from **storage**. The path to this input dataset must exist.\\ It will be searched in the path to this input dataset, for a file or directory matching the regex or name. __Attention__!! If there is no such file / directory or there are more than one, that will cause an error. |
|''value="dataset://some_output dataset//" selector="//some_name//"''|It refers to an **output dataset** produced by a previously executed module or by the current module. The module producing this output dataset, must define this dataset in the workflow.xml, and provide it with a name. The path to this dataset is always: ''/path_to_moduledir/output_dataset_name''\\ The value of this argument will be resolved to a subdirectory or file with the name //some_name//, in the path to the specified output dataset. So, it will be resolved to: ''/path_to_moduledir/output_dataset_name/some_name'' |
|''value="//moduledir//" selector="//some_directory_name//"''|A directory with that name will be created under the work directory of the current module. So, the created directory will be: ''/path_to_moduledir/some_directory_name'' |
=== Examples ===
|''''|This will be resolved to the absolute path of a dataset called ''DataRefactoring''. This dataset should be an: \\ - input dataset: it comes from storage, and its path points to the cache in the execution host.\\ - output dataset: the path will be a subdirectory, called ''DataRefactoring'', in the work directory of the module which produced this dataset.|
|''''|This will be resolved to an absolute path to the file ''Batch_data.mat''. In case of an input dataset, this file should uniquely exist in the dataset directory.|
|''''|This will create a path appending ''FeatureZScoring'' to the path of the work directory of the current module.|
=====