You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<ahref="https://www.youtube.com/watch?v=86eY8xs-Vo8"><imgalign="right"src="https://github.com/common-workflow-language/logo/raw/master/intro_video_screenshot_413x193.png"alt="[Video] Common Workflow Language explained in 64 seconds"></a>
6
7
The Common Workflow Language (CWL) is a specification for describing analysis
7
8
workflows and tools in a way that makes them portable and scalable across a
8
9
variety of software and hardware environments, from workstations to cluster,
9
10
cloud, and high performance computing (HPC) environments. CWL is designed to
10
11
meet the needs of data-intensive science, such as Bioinformatics, Medical
11
12
Imaging, Astronomy, Physics, and Chemistry.
12
13
14
+
<ahref="https://open-stand.org/about-us/principles"><imgalign="left"src="http://standards.ieee.org/images/openstand/128x128-blue2.png"alt="Open Stand badge"></a>
13
15
CWL is developed by an informal, multi-vendor working group consisting of
14
16
organizations and individuals aiming to enable scientists to share data
15
17
analysis workflows. [The CWL project is on Github](https://github.com/common-workflow-language/common-workflow-language) and we follow the [Open-Stand.org principles for collaborative open standards development](https://open-stand.org/about-us/principles/)
16
18
17
-
[](https://open-stand.org/about-us/principles/).
19
+
18
20
19
21
CWL builds on technologies such as [JSON-LD](http://json-ld.org)
20
22
for data modeling and [Docker](http://docker.com) for portable runtime
|[cwltool](https://github.com/common-workflow-language/cwltool)|Reference implementation of CWL|[](http://ci.commonwl.org/job/cwltool-conformance/lastBuild/testReport/)|Linux, OS X, local execution only|
48
45
|[Arvados](https://arvados.org)|Distributed computing platform for data analysis on massive data sets. [Using CWL on Arvados](http://doc.arvados.org/user/cwl/cwl-runner.html)|[](http://ci.commonwl.org/job/arvados-conformance/lastBuild/testReport/)|AWS, GCP, Azure, Slurm|
49
-
|[Toil](https://github.com/BD2KGenomics/toil)|Toil is a workflow engine entirely written in Python.|[](http://ci.commonwl.org/job/toil-conformance/lastBuild/testReport/)|AWS, GCP, Azure, Slurm, OpenStack, Grid Engine, Mesos|
46
+
|[Toil](https://github.com/BD2KGenomics/toil)|Toil is a workflow engine entirely written in Python.|[](http://ci.commonwl.org/job/toil-conformance/lastBuild/testReport/)|AWS, Azure, GCP, Grid Engine, LSF, Mesos, OpenStack, Slurm|
50
47
|[Rabix Bunny](https://github.com/rabix/bunny)|An open-source, Java-based implementation of Common Workflow Language with support for multiple drafts/versions. See [Rabix.io](http://rabix.io) for details.|[](https://ci.commonwl.org/job/rabix-conformance/)|Linux, OS X, [GA4GH TES](https://github.com/ga4gh/task-execution-server) (experimental)|
48
+
|[cwl-tes](https://github.com/common-workflow-language/cwl-tes)|CWL engine backended by the [GA4GH Task Execution API](https://github.com/ga4gh/task-execution-schemas)|[](https://travis-ci.org/common-workflow-language/cwl-tes)|Local, GCP, AWS, HTCondor, Grid Engine, PBS/Torque, Slurm|
49
+
|[Airflow](https://github.com/Barski-lab/incubator-airflow)|Airflow updated with CWL-runner feature (supported by BioWardrobe Team, CCHMC)|[](https://ci.commonwl.org/job/airflow-conformance)|Linux, OS X|
51
50
|[Consonance](https://github.com/Consonance/consonance)|orchestration tool for running SeqWare workflows and CWL tools|[pending](https://ci.commonwl.org/job/rabix-conformance/)|AWS, OpenStack, Azure|
|[Galaxy](https://galaxyproject.org/)|Web-based platform for data intensive biomedical research.|[alpha](https://github.com/common-workflow-language/galaxy)|Python|
54
53
|[AWE](https://github.com/MG-RAST/AWE)|Workflow and resource management system for bioinformatics data analysis.|[alpha](https://github.com/wgerlach/AWE)|Go|
55
-
|[Funnel](https://github.com/bmeg/funnel)|Use Google Genomics Pipeline API with CWL|alpha|GCP|
|[GA4GH Workflow Execution API](https://github.com/ga4gh/workflow-execution-schemas)|a minimal common API for submitting workflow requests to workflow execution systems in a standardized way. Many contributions from CWL project participants.|
88
86
|[Bio-compute objects](https://hive.biochemistry.gwu.edu/htscsrs?pageid=biocompute)|"a step towards evaluation and validation of bio-medical scientific computations", CWL and researchobject.org participants are cooperating with this effort|
89
87
88
+
<aname="Support"></a>
90
89
## Support, Community and Contributing
91
90
92
91
The recommended place to ask a question about all things CWL is on
@@ -101,9 +100,6 @@ join the [mailing list common-workflow-language on Google Groups](https://groups
101
100
[fork the repository](https://github.com/common-workflow-language/common-workflow-language)
102
101
and send a pull request!
103
102
104
-
Your CWL Community Engineer, Michael R. Crusoe, publishes a blog about his work
105
-
with updates at http://mrc.commonwl.org.
106
-
107
103
### Code of Conduct
108
104
109
105
The CWL Project is dedicated to providing a harassment-free experience for
CTD reflects the perspective of a tool author targetting the KNIME processing unit approach ("nodes"), whereas
13
+
Galaxy reflects the perspective of a platform centered around non-developer users interacting with a graphical interface.
14
+
15
+
### Parameters description
16
+
17
+
### Data/parameter types
18
+
The typing system for parameters in CTD itself is simpler than the other two, providing mainly support for simple types and input/output files, but excluding arrays/lists and complex types. Galaxy adds GUI specific features (`select`, `drill_down`), domain specific features (`color`, `genome_build`, `data_column`), configuration of web services (`base_url`), and tighter integration with workbench internal data management (`library_data`).
19
+
20
+
### Command line generation
21
+
All of the specifications include a flexible set of possibilities for the generation of command lines, reflecting the effective heterogeneity of the bioinformatics tools ecosystem ;)
22
+
23
+
## Comparison table
24
+
25
+
### Tool level
26
+
27
+
|Galaxy information |Optional |CTD information |Optional |CWL information |Optional |
28
+
|---|---|---|---|---|---|
29
+
|*description*|X |description |X |label |X |
30
+
|*help*|X |*manual*|X |*doc*|X |
31
+
|*citation*|X |*citation* (for the underlying tool, DOI or doc URL) |X |*SoftwareRequirement.name.specs* (URI) |X |
32
+
|||*ExecutableName* (overrides the name attribute) |X |*SoftwareRequirement.name.baseCommand[0]*|X |
33
+
|||*ExecutablePath* (specific path to the executable) |X |||
34
+
|*command*+*argument* under parameter ||*CLItype* list of input commands with elements mapping |X |*arguments* and/or *inputBindings*|X |
35
+
|||*logs* (retrospective on execution information - if so probably out of scope)|X |||
36
+
|*tool/outputs/data/@from_work_dir* (name of file to consume) |X |*relocators* (list of parameters, path pairs)|X |*outputBinding*|X |
37
+
|*@version* (version of wrapper) |X |*@version* (apprarently version of the tool itself)||*SoftwareRequirements.name.version* (list of known compatible versions of the underlying tool |X |
38
+
|*@name* (just an identifier, not used to build the command itself)||*@name* (also used to build the command itself, unlesss *ExecutableName* is provided)||baseCommand[0]|X|
39
+
|often part of the *help* text|X|*docURL* (URL to documentation)||||
40
+
|*edam_topics* and *edam_operations* - categories are external to tool definition, in per-server config (toolconf.xml)|X|*category* (any string)|X|can use EDAM or other 3rd party annotation or derive via identifier from external registry or datatype|
41
+
|(often part of help text)|X|*tags*|X|||
42
+
43
+
### Parameter level
44
+
45
+
**Important remark** The structure of the CTD file is slightly different, because it explicitely allows the definition of "sub-tools" through a nested structure of NODE/ITEM elements. A node is a subgroup of parameters, and ITEM is a parameter.
46
+
Therefore, to focus on Parameter-level information, we consider only the ITEM element here for parameter description in CTD.
47
+
48
+
|Galaxy information |Optional |CTD information |Optional |CWL information |Optional |
49
+
|---|---|---|---|---|---|
50
+
|*param* or *data*||*ITEM*||*inputs[n]* or *outputs[n]*||
51
+
|*@name*||*@name*||key of *inp|uts* or *outputs* entry||
52
+
|*@type*||*@type* (Defines the possible types available in the type attribute of ITEM and ITEMLIST.)||type||
0 commit comments