Rabix Executor folder structure
The folder structure that is created upon execution depends on the kind of app you are executing. The structure will differ if you are running:
- command line tool
- workflow
- workflow in which app(s) have Scatter enabled on their input ports.
The base directory for each execution is located in the same directory as the CWL input files and is named according to the <APP-DATETIME>
pattern. The APP
part is the base name of the app’s JSON file (excludes the .json
extension), while DATETIME
is the date and time of execution in the yyyyMMddhhmmssSSS
format, for example: dna2protein.cwl-20170404111033894.
Command line tool
When executing a command line tool, the structure of files and folders resulting from the execution will be as shown below:
The first directory that is created within the execution directory is named after the APP-DATETIME
pattern described above, and it has a subdirectory named root
. Since you are executing a command line tool, all files resulting from the execution will be placed directly inside the <APP-DATETIME>/root
directory.
Workflow
When executing a workflow, the first directory that is created within the execution directory is named after the APP-DATETIME
pattern. Within this directory, there will be a subdirectory named root
. Each tool that is present in the workflow will have its own subdirectory within the root
directory, as shown below:
The app subdirectories will be, again, named according to the APP-DATETIME
pattern, for each app that is specified in the app CWL file.
Workflow in which an app has Scatter set up on one of its input ports
Scatter can be enabled on a tool’s input port in order to parallelize processing of each file from a file list that is provided on that input port. Namely, when Scatter is enabled, the tool iterates over the files provided on the scattered input, while the rest of the inputs remain fixed. Learn more about Scatter.
In terms of folder structure, when Scatter is enabled on an input port, the working directory of the tool that contains the input port will have several subdirectories - each subdirectory corresponding to the one input file on the scattered input port.