Introduction to cwl

less than 1 minute read

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
Back to top ↑

Updated: