Introduction to cwl
What is CWL
CWL is a way to describe command line tools and connect them together to create workflows. Because CWL is a specification and not a specific piece of software, tools and workflows described using CWL are portable across a variety of platforms that support the CWL standard.
What to write CWL specification in ?
- JSON
- YAML
- Combination of JSON and YAML
Simple YAML execution with cwltool
> cat 1st-tool.cwl
cwlVersion: cwl:draft-3
class: CommandLineTool
baseCommand: echo
inputs:
- id: message
type: string
inputBinding:
position: 1
outputs: []
> cat echo-job.yml
message: Hello world!
> cwl-tool 1st-tool.cwl echo-job.yml
[job 140199012414352] $ echo 'Hello world!'
Hello world!
Final process status is success
Requirements
- Need Node.js in path for javascript
- Need cwl-runner, cwltool and cwltoil in your path