Skip to content

Commit 18fc8d6

Browse files
authored
Merge branch 'master' into master
2 parents 2625c13 + d71b2f7 commit 18fc8d6

27 files changed

+679
-43
lines changed

README.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
Common Workflow Language
22
========================
33

4-
[![GitHub stars](https://img.shields.io/github/stars/common-workflow-language/common-workflow-language.svg)](https://github.com/common-workflow-language/common-workflow-language/stargazers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/common-workflow-language/common-workflow-language?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [Support](#support-community-and-contributing)
4+
[![GitHub stars](https://img.shields.io/github/stars/common-workflow-language/common-workflow-language.svg)](https://github.com/common-workflow-language/common-workflow-language/stargazers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/common-workflow-language/common-workflow-language?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [**Support**](#Support)
55

6+
<a href="https://www.youtube.com/watch?v=86eY8xs-Vo8"><img align="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>
67
The Common Workflow Language (CWL) is a specification for describing analysis
78
workflows and tools in a way that makes them portable and scalable across a
89
variety of software and hardware environments, from workstations to cluster,
910
cloud, and high performance computing (HPC) environments. CWL is designed to
1011
meet the needs of data-intensive science, such as Bioinformatics, Medical
1112
Imaging, Astronomy, Physics, and Chemistry.
1213

14+
<a href="https://open-stand.org/about-us/principles"><img align="left" src="http://standards.ieee.org/images/openstand/128x128-blue2.png" alt="Open Stand badge"></a>
1315
CWL is developed by an informal, multi-vendor working group consisting of
1416
organizations and individuals aiming to enable scientists to share data
1517
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/)
1618

17-
[![Open Stand badge](http://standards.ieee.org/images/openstand/128x128-blue2.png)](https://open-stand.org/about-us/principles/).
19+
1820

1921
CWL builds on technologies such as [JSON-LD](http://json-ld.org)
2022
for data modeling and [Docker](http://docker.com) for portable runtime
@@ -30,12 +32,7 @@ descriptions.
3032

3133
For developers and advanced users, the current
3234
[CWL specification (v1.0)](http://www.commonwl.org/v1.0/) provides
33-
authoritative documentation of the execution of CWL documents. Links older
34-
drafts:
35-
[draft-1](https://github.com/common-workflow-language/common-workflow-language/tree/master/draft-1),
36-
[draft-2](http://www.commonwl.org/draft-2/),
37-
[draft-3](http://www.commonwl.org/draft-3/)
38-
35+
authoritative documentation of the execution of CWL documents.
3936
### Citation
4037

4138
Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
@@ -46,17 +43,17 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
4643
|--------|-----------|-----------|--------|
4744
|[cwltool](https://github.com/common-workflow-language/cwltool)|Reference implementation of CWL|[![Build Status](https://ci.commonwl.org/job/cwltool-conformance/badge/icon)](http://ci.commonwl.org/job/cwltool-conformance/lastBuild/testReport/)|Linux, OS X, local execution only|
4845
|[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)|[![Build Status](https://ci.commonwl.org/job/arvados-conformance/badge/icon)](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.|[![Build Status](https://ci.commonwl.org/job/toil-conformance/badge/icon)](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.|[![Build Status](https://ci.commonwl.org/job/toil-conformance/badge/icon)](http://ci.commonwl.org/job/toil-conformance/lastBuild/testReport/)|AWS, Azure, GCP, Grid Engine, LSF, Mesos, OpenStack, Slurm|
5047
|[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.|[![Build Status](https://ci.commonwl.org/buildStatus/icon?job=rabix-conformance)](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)|[![Build Status](https://travis-ci.org/common-workflow-language/cwl-tes.svg?branch=master)](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)|[![Build Status](https://ci.commonwl.org/buildStatus/icon?job=airflow-conformance)](https://ci.commonwl.org/job/airflow-conformance)|Linux, OS X|
5150
|[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|
5251
|[Apache Taverna](http://taverna.incubator.apache.org/)|Domain-independent Workflow Management System|[alpha](https://issues.apache.org/jira/browse/TAVERNA-900)|Java|
5352
|[Galaxy](https://galaxyproject.org/)|Web-based platform for data intensive biomedical research.|[alpha](https://github.com/common-workflow-language/galaxy)|Python|
5453
|[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|
5654
|[Xenon](http://nlesc.github.io/Xenon/)|Run CWL workflows using Xenon|[alpha](https://github.com/NLeSC/xenon-cwl-runner)|[any Xenon backend](http://nlesc.github.io/Xenon/): local, ssh, SLURM, Torque, Grid Engine|
5755

5856

59-
6057
## Repositories of CWL Tools and Workflows
6158

6259
|Repository|Description|
@@ -76,8 +73,9 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
7673
|[cwlavro](https://github.com/common-workflow-language/cwlavro)|Java classes for loading CWL documents|
7774
|[acd2cwl](https://github.com/common-workflow-language/acd2cwl)|CWL generator for ACD (EMBOSS) files |
7875
|[CWLviewer](https://view.commonwl.org/)|A web application to view and share Common Workflow Language workflows|
79-
|[scriptcwl](https://github.com/NLeSC/scriptcwl)|Create CWL workflows by writing a simple Python script|
8076
|[cwl2zshcomp](https://github.com/kloetzl/cwl2zshcomp)|generates ZSH auto completions from CWL command line tool descriptions|
77+
|[scriptcwl](https://github.com/NLeSC/scriptcwl)|Create CWL workflows by writing a simple Python script|
78+
|[python-cwlgen](https://github.com/common-workflow-language/python-cwlgen)|Generation of CWL programmatically from Python.|
8179

8280
## Projects the CWL community is participating in
8381

@@ -87,6 +85,7 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
8785
|[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.|
8886
|[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|
8987

88+
<a name="Support"></a>
9089
## Support, Community and Contributing
9190

9291
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
101100
[fork the repository](https://github.com/common-workflow-language/common-workflow-language)
102101
and send a pull request!
103102

104-
Your CWL Community Engineer, Michael R. Crusoe, publishes a blog about his work
105-
with updates at http://mrc.commonwl.org.
106-
107103
### Code of Conduct
108104

109105
The CWL Project is dedicated to providing a harassment-free experience for
@@ -135,6 +131,10 @@ Conduct](https://github.com/common-workflow-language/common-workflow-language/bl
135131
* [Netherlands eScience Center](https://www.esciencecenter.nl/)
136132
* [Texas Advanced Computing Center Life Science Computing Group](https://www.tacc.utexas.edu/life-sciences-computing) / [Agave Platform](https://agaveapi.co/)
137133
* [CyVerse](http://www.cyverse.org/)
134+
* [Institute for Systems Biology](https://www.systemsbiology.org/)
135+
* [ELIXIR Europe](https://www.elixir-europe.org/)
136+
* [BioExcel CoE](http://bioexcel.eu/)
137+
* [BD2K](https://commonfund.nih.gov/bd2k)
138138

139139
## Individual Contributors
140140

@@ -147,15 +147,24 @@ Conduct](https://github.com/common-workflow-language/common-workflow-language/bl
147147
* Michael R. Crusoe <[email protected]>
148148
* Roman Valls Guimerà <[email protected]>
149149
* Guillermo Carrasco Hernandez <[email protected]>
150+
* Kenzo-Hugo Hillion <[email protected]>
150151
* Sinisa Ivkovic <[email protected]>
152+
* Sehrish Kanwal <[email protected]>
151153
* Andrey Kartashov <[email protected]>
152154
* John Kern <[email protected]>
155+
* Farah Zaib Khan <[email protected]>
153156
* Dan Leehr <[email protected]>
154157
* Hervé Ménager <[email protected]>
155158
* Maxim Mikheev <[email protected]>
159+
* Michael Miller <[email protected]>
156160
* Tim Pierce <[email protected]>
157161
* Josh Randall <[email protected]>
162+
* Mark Robinson <[email protected]>
158163
* Janko Simonović <[email protected]>
159-
* Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
164+
* Stian Soiland-Reyes <[email protected]>
160165
* Luka Stojanovic <[email protected]>
161166
* Nebojša Tijanić <[email protected]>
167+
168+
169+
The CWL Community Engineer, Michael R. Crusoe, publishes a blog about his work
170+
with updates at http://mrc.commonwl.org.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Comparison of Command Line Interface description languages
2+
3+
## Compared languages
4+
5+
* Galaxy v17.05: https://github.com/galaxyproject/galaxy/blob/release_17.05/lib/galaxy/tools/xsd/galaxy.xsd
6+
* CTD v1.7.0 : https://github.com/WorkflowConversion/CTDSchema/blob/Version_1_7_0/CTD.xsd
7+
* CWL v1.0: http://www.commonwl.org/v1.0/CommandLineTool.html / https://github.com/common-workflow-language/common-workflow-language/blob/master/v1.0/CommandLineTool.yml
8+
9+
## Summary
10+
11+
### Tool description
12+
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||
53+

doc/cwl_v1.0_object_model.dia

8.22 KB
Binary file not shown.

0 commit comments

Comments
 (0)