Skip to content

Commit 81d5e1e

Browse files
author
Luka Stojanovic
committed
2 parents 074a420 + 1452e65 commit 81d5e1e

40 files changed

+449
-116
lines changed

README.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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)
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)
55

66
The Common Workflow Language (CWL) is a specification for describing analysis
77
workflows and tools in a way that makes them portable and scalable across a
@@ -12,7 +12,9 @@ Imaging, Astronomy, Physics, and Chemistry.
1212

1313
CWL is developed by an informal, multi-vendor working group consisting of
1414
organizations and individuals aiming to enable scientists to share data
15-
analysis workflows. [The CWL project is on Github.](https://github.com/common-workflow-language/common-workflow-language)
15+
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+
17+
[![Open Stand badge](http://standards.ieee.org/images/openstand/128x128-blue2.png)](https://open-stand.org/about-us/principles/).
1618

1719
CWL builds on technologies such as [JSON-LD](http://json-ld.org)
1820
for data modeling and [Docker](http://docker.com) for portable runtime
@@ -44,8 +46,9 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
4446
|--------|-----------|-----------|--------|
4547
|[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|
4648
|[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|
47-
|[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, OpenStack, Grid Engine, Mesos|
48-
|[Rabix Bunny](https://github.com/rabix/bunny)|Reproducible Analyses for Bioinformatics|[![Build Status](https://ci.commonwl.org/buildStatus/icon?job=rabix-conformance)](https://ci.commonwl.org/job/rabix-conformance/)|Java|
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|
50+
|[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)|
51+
|[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|
4952
|[Apache Taverna](http://taverna.incubator.apache.org/)|Domain-independent Workflow Management System|[alpha](https://issues.apache.org/jira/browse/TAVERNA-900)|Java|
5053
|[Galaxy](https://galaxyproject.org/)|Web-based platform for data intensive biomedical research.|[alpha](https://github.com/common-workflow-language/galaxy)|Python|
5154
|[AWE](https://github.com/MG-RAST/AWE)|Workflow and resource management system for bioinformatics data analysis.|[alpha](https://github.com/wgerlach/AWE)|Go|
@@ -73,6 +76,16 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
7376
|[cwlavro](https://github.com/common-workflow-language/cwlavro)|Java classes for loading CWL documents|
7477
|[acd2cwl](https://github.com/common-workflow-language/acd2cwl)|CWL generator for ACD (EMBOSS) files |
7578
|[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|
80+
|[cwl2zshcomp](https://github.com/kloetzl/cwl2zshcomp)|generates ZSH auto completions from CWL command line tool descriptions|
81+
82+
## Projects the CWL community is participating in
83+
84+
|Name|Details|
85+
|-------|-----------|
86+
|[GA4GH Task Execution API](https://github.com/ga4gh/task-execution-schemas/)|a minimal common API for submitting a single job to a remote execution endpoint. Many contributions from CWL project participants.|
87+
|[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+
|[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|
7689

7790
## Support, Community and Contributing
7891

@@ -115,12 +128,13 @@ Conduct](https://github.com/common-workflow-language/common-workflow-language/bl
115128
* [Institut Pasteur](http://www.pasteur.fr)
116129
* [Wellcome Trust Sanger Institute](https://www.sanger.ac.uk/)
117130
* [University of California Santa Cruz](https://cbse.soe.ucsc.edu/research/bioinfo)
118-
* [Harvard Chan School of Public Health](http://www.hsph.harvard.edu/)
131+
* [Harvard T.H. Chan School of Public Health](http://www.hsph.harvard.edu/)
119132
* [Cincinnati Children's Hospital Medical Center](http://www.cincinnatichildrens.org/)
120133
* [Broad Institute](https://www.broadinstitute.org)
121-
* [Wolfson Wohl Cancer Research Centre](http://www.gla.ac.uk/researchinstitutes/cancersciences/ics/facilities/wwcrc/)
134+
* [University of Melbourne Center for Cancer Research](https://umccr.github.io/)
122135
* [Netherlands eScience Center](https://www.esciencecenter.nl/)
123-
* [Texas Advanced Computing Center Life Science Computing Group](https://www.tacc.utexas.edu/life-sciences-computing)
136+
* [Texas Advanced Computing Center Life Science Computing Group](https://www.tacc.utexas.edu/life-sciences-computing) / [Agave Platform](https://agaveapi.co/)
137+
* [CyVerse](http://www.cyverse.org/)
124138

125139
## Individual Contributors
126140

v1.0/UserGuide.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@
183183
184184
The value of `position` is used to determine where parameter should
185185
appear on the command line. Positions are relative to one another, not
186-
abosolute. As a result, positions do not have to be sequential, three
186+
absolute. As a result, positions do not have to be sequential, three
187187
parameters with positions `[1, 3, 5]` will result in the same command
188188
line as `[1, 2, 3]`. More than one parameter can have the same position
189189
(ties are broken using the parameter name), and the position field itself
@@ -239,7 +239,7 @@
239239
240240
```
241241
outputs:
242-
- id: example_out
242+
example_out:
243243
type: File
244244
outputBinding:
245245
glob: hello.txt
@@ -466,7 +466,7 @@
466466
tool is actually executed. The `$(runtime.outdir)` parameter is the path
467467
to the designated output directory. Other parameters include
468468
`$(runtime.tmpdir)`, `$(runtime.ram)`, `$(runtime.cores)`,
469-
`$(runtime.ram)`, `$(runtime.outdirSize)`, and `$(runtime.tmpdirSize)`. See
469+
`$(runtime.outdirSize)`, and `$(runtime.tmpdirSize)`. See
470470
the [Runtime Environment](CommandLineTool.html#Runtime_environment)
471471
section of the CWL specification for details.
472472

v1.0/conformance_test_v1.0.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,33 +78,33 @@
7878
doc: Test command execution in Docker with stdout redirection
7979

8080
- job: v1.0/empty.json
81-
tool: v1.0/egrep-stderr.cwl
81+
tool: v1.0/stderr.cwl
8282
doc: Test command line with stderr redirection
8383
output:
8484
output_file:
8585
class: File
86-
checksum: sha1$cec7b8746a78c42060c96505887449bca0142976
87-
size: 84
86+
checksum: sha1$f1d2d2f924e986ac86fdf7b36c94bcdf32beec15
87+
size: 4
8888
location: error.txt
8989

9090
- job: v1.0/empty.json
91-
tool: v1.0/egrep-stderr-shortcut.cwl
91+
tool: v1.0/stderr-shortcut.cwl
9292
doc: Test command line with stderr redirection, brief syntax
9393
output:
9494
output_file:
9595
class: File
96-
checksum: sha1$cec7b8746a78c42060c96505887449bca0142976
97-
size: 84
96+
checksum: sha1$f1d2d2f924e986ac86fdf7b36c94bcdf32beec15
97+
size: 4
9898
location: Any
9999

100100
- output:
101101
output_file:
102102
class: File
103-
size: 84
104-
checksum: sha1$cec7b8746a78c42060c96505887449bca0142976
103+
size: 4
104+
checksum: sha1$f1d2d2f924e986ac86fdf7b36c94bcdf32beec15
105105
location: std.err
106106
job: v1.0/empty.json
107-
tool: v1.0/egrep-stderr-mediumcut.cwl
107+
tool: v1.0/stderr-mediumcut.cwl
108108
doc: Test command line with stderr redirection, named brief syntax
109109

110110
- job: v1.0/cat-job.json

v1.0/v1.0/dir5.cwl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ outputs:
1111
type: File
1212
outputBinding:
1313
glob: output.txt
14-
arguments: ["find", ".",
14+
arguments: ["find", "-L", ".",
1515
{shellQuote: false, valueFrom: "|"},
1616
"sort"]
1717
stdout: output.txt

v1.0/v1.0/egrep-stderr-mediumcut.cwl renamed to v1.0/v1.0/stderr-mediumcut.cwl

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,12 @@
22
class: CommandLineTool
33
cwlVersion: v1.0
44
doc: "Test of capturing stderr output in a docker container."
5-
hints:
6-
DockerRequirement:
7-
dockerPull: debian:wheezy
8-
5+
requirements:
6+
ShellCommandRequirement: {}
97
inputs: []
10-
118
outputs:
129
output_file:
1310
type: stderr
14-
15-
baseCommand: egrep
16-
successCodes: [2]
17-
11+
arguments:
12+
- { valueFrom: "echo foo 1>&2", shellQuote: False }
1813
stderr: std.err

v1.0/v1.0/egrep-stderr-shortcut.cwl renamed to v1.0/v1.0/stderr-shortcut.cwl

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,11 @@
22
class: CommandLineTool
33
cwlVersion: v1.0
44
doc: "Test of capturing stderr output in a docker container."
5-
hints:
6-
DockerRequirement:
7-
dockerPull: debian:wheezy
8-
5+
requirements:
6+
ShellCommandRequirement: {}
97
inputs: []
10-
118
outputs:
129
output_file:
1310
type: stderr
14-
15-
baseCommand: egrep
16-
successCodes: [2]
11+
arguments:
12+
- { valueFrom: "echo foo 1>&2", shellQuote: False }

v1.0/v1.0/egrep-stderr.cwl renamed to v1.0/v1.0/stderr.cwl

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
class: CommandLineTool
33
cwlVersion: v1.0
44
doc: "Test of capturing stderr output in a docker container."
5-
hints:
6-
DockerRequirement:
7-
dockerPull: debian:wheezy
5+
requirements:
6+
ShellCommandRequirement: {}
87
inputs: []
98
outputs:
109
output_file:
1110
type: File
1211
outputBinding: {glob: error.txt}
13-
baseCommand: egrep
14-
successCodes: [2]
12+
arguments:
13+
- { valueFrom: "echo foo 1>&2", shellQuote: False }
1514
stderr: error.txt

v1.1.0-dev1/CommandLineTool.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,6 @@ $graph:
747747
- name: package
748748
type: string
749749
doc: "The common name of the software to be configured."
750-
jsonldPredicate: "@id"
751750
- name: version
752751
type: string[]?
753752
doc: "The (optional) version of the software to configured."

v1.1.0-dev1/Process.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,6 @@ $graph:
595595
doc: |
596596
Specify valid types of data that may be assigned to this parameter.
597597
598-
599598
- name: OutputParameter
600599
type: record
601600
extends: Parameter

v1.1.0-dev1/UserGuide.yml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@
183183
184184
The value of `position` is used to determine where parameter should
185185
appear on the command line. Positions are relative to one another, not
186-
abosolute. As a result, positions do not have to be sequential, three
186+
absolute. As a result, positions do not have to be sequential, three
187187
parameters with positions `[1, 3, 5]` will result in the same command
188188
line as `[1, 2, 3]`. More than one parameter can have the same position
189189
(ties are broken using the parameter name), and the position field itself
@@ -239,7 +239,7 @@
239239
240240
```
241241
outputs:
242-
- id: example_out
242+
example_out:
243243
type: File
244244
outputBinding:
245245
glob: hello.txt
@@ -290,8 +290,8 @@
290290
- |
291291
## Parameter references
292292
293-
In a previous example, we used extracted a file using the "tar" program.
294-
However, that example was very limited becuase it assumed that the file
293+
In a previous example, we extracted a file using the "tar" program.
294+
However, that example was very limited because it assumed that the file
295295
we were interested in was called "hello.txt". In this example, you will
296296
see how to reference the value of input parameters dynamically from other
297297
fields.
@@ -356,7 +356,7 @@
356356
containers are also purposefully isolated from the host system, so in
357357
order to run a tool inside a Docker container there is additional work to
358358
ensure that input files are available inside the container and output
359-
files can be recovered from the contianer. CWL can perform this work
359+
files can be recovered from the container. CWL can perform this work
360360
automatically, allowing you to use Docker to simplify your software
361361
management while avoiding the complexity of invoking and managing Docker
362362
containers.
@@ -466,7 +466,7 @@
466466
tool is actually executed. The `$(runtime.outdir)` parameter is the path
467467
to the designated output directory. Other parameters include
468468
`$(runtime.tmpdir)`, `$(runtime.ram)`, `$(runtime.cores)`,
469-
`$(runtime.ram)`, `$(runtime.outdirSize)`, and `$(runtime.tmpdirSize)`. See
469+
`$(runtime.outdirSize)`, and `$(runtime.tmpdirSize)`. See
470470
the [Runtime Environment](CommandLineTool.html#Runtime_environment)
471471
section of the CWL specification for details.
472472
@@ -522,7 +522,7 @@
522522
- |
523523
```
524524
525-
*array-outpust-job.yml*
525+
*array-outputs-job.yml*
526526
```
527527
- $include: examples/array-outputs-job.yml
528528
- |
@@ -662,6 +662,16 @@
662662
- |
663663
```
664664
665+
As this tool does not require any `inputs` we can run it with an (almost) empty job file:
666+
667+
*empty.yml*
668+
```
669+
{}
670+
|
671+
```
672+
673+
We can then run `expression.cwl`:
674+
665675
```
666676
$ cwl-runner expression.cwl empty.yml
667677
[job 140000594593168] /home/example$ echo -A 2 -B baz -C 10 9 8 7 6 5 4 3 2 1
@@ -796,7 +806,7 @@
796806
class: Workflow
797807
```
798808
799-
The 'cwlVersion` field indicates the version of the CWL spec used by the
809+
The `cwlVersion` field indicates the version of the CWL spec used by the
800810
document. The `class` field indicates this document describes a workflow.
801811
802812
@@ -820,7 +830,7 @@
820830
821831
The `outputs` section describes the outputs of the workflow. This is a
822832
list of output parameters where each parameter consists of an identifier
823-
and a data type. The `source` connects the output parameter `classfile`
833+
and a data type. The `outputSource` connects the output parameter `classfile`
824834
of the `compile` step to the workflow output parameter `classout`.
825835
826836
```

v1.1.0-dev1/concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ preprocessing steps described in the
8989
[Semantic Annotations for Linked Avro Data (SALAD) Specification](SchemaSalad.html).
9090
An implementation may formally validate the structure of a CWL document using
9191
SALAD schemas located at
92-
https://github.com/common-workflow-language/common-workflow-language/tree/master/draft-4
92+
https://github.com/common-workflow-language/common-workflow-language/tree/master/v1.1.0-dev1
9393

9494
## Identifiers
9595

0 commit comments

Comments
 (0)