Beyond releasing the CWL standards, the CWL community has developed many
tools, software libraries, connected specifications, and has shared CWL
descriptions for popular tools.
Other tools are also available in Common Workflow Language Lab.
Table of contents:
Editors and Viewers §
Execution frameworks §
While CWL implementations can execute workflows on different compute backends, the frameworks below
can be used to provide a programmatic API or user interface to orchestrate execution with an CWL implementation.
Software |
Description |
cwl-WES |
Microservice implementing GA4GH Workflow Execution Service (WES) API specification to run CWL workflows |
SCHeMa |
Web interface for running CWL workflows on Kubernetes/minikube clusters, based on cwl-WES |
WfExS |
Workflow Execution Service supporting GA4GH Tools Registry Service (TRS) API, RO-Crate, Nextflow and CWL |
workflow-service |
An implementation of the GA4GH Workflow Execution Service (WES) API to run CWL workflows on remote clusters |
workflUX |
Web interface for simplified execution of CWL workflows |
Sapporo |
An implementation of Workflow Execution Service (WES) standard or so-called Workflow-as-a-Service. Explicit CWL support using cwltool or toil-cwl-runner . |
Utilities §
Software |
Description |
cwl-utils |
Example scripts using the Python 3.6+ CWL parsing library |
looper |
Job submitting engine with support for CWL whole workflow/tool scattering |
cwltest |
CWL testing framework, automated testing of tools and workflows written with CWL |
cwl-inspector |
Tool to inspect properties of tools or workflows written in CWL |
cwldep |
CWL dependency manager, for importing tool wrappers and workflows into your own project. |
cwlprov-py |
Command line tool and Python API to explore CWLProv Research Objects containing provenance of Common Workflow Language executions |
Cerise |
A REST service for running CWL workflows on remote clusters |
cwl2zshcomp |
Generates ZSH auto completions from CWL command line tool descriptions |
CWL-metrics |
Collect/analyze computational resource use of CWL workflow runs |
Converters And Code Generators §
Software |
Description |
cwl-upgrader |
Upgrade CWL documents from draft-3 to v1.0, v1.0 to v1.1, and v1.1 to v1.2. |
argparse2tool |
Generate CWL CommandLineTool wrappers (and/or Galaxy tool descriptions) from Python programs that use argparse. Also supports the click argument parser. |
cwl2argparse |
Generate Python argparse code from CWL CommandLineTool description. |
pypi2cwl |
Automatically run argparse2cwl on any package in PyPi |
acd2cwl |
ACD (EMBOSS) to CWL generator |
CTD converter |
Common Tool Definition (CTD) to CWL converter |
scriptcwl |
Create CWL workflows by writing a simple Python script |
cwl-to-parsl |
Convert CWL to Parsl |
Beatrice |
Pipeline Assembler For CWL |
zatsu-cwl-generator |
A simple CWL document generator from given execution commands |
Janis |
A Python API that generates portable CWL and WDL workflows |
cwl-utils |
Python 3.6+ CWL parsing library |
ipython2cwl |
A tool for converting IPython Jupyter Notebooks to CWL CommandLineTools via typing annotations |
pegasus-cwl-converter |
Work in progress tool to convert a CWL workflow into a Pegasus workflow. |
galaxy2cwl |
Convert a Galaxy .ga workflow to Abstract CWL |
gxformat2 |
Converter for Galaxy’s workflow formats, can generate Abstract CWL |
wdl-cwl-translator |
Translate WDL workflows to CWL |
Code Libraries §
Software |
Description |
cwltool |
cwltool (can be imported as a Python module and extended to create custom cwl runners) |
schema salad |
Python module and tools for working with the CWL schema. |
cwljava |
Java classes for loading, modifying, and creating CWL v1.2 documents |
cwlScala |
A Scala wrapper around cwljava; Also included is an evaluation engine for CWL expressions. |
cwl-ts-auto |
TypeScript objects and utilities for parsing and creating CWL v1.2 documents. |
Rcwl |
Build, read, write and run CWL in R |
tidycwl |
Tidy (R) Common Workflow Language Tools and Workflows |
cwl-rs |
CWL object model for Rust |
CmdParser |
Reading and Writing Common Workflow Language spec files from C++ applications. Includes a Command Line Parser |
buchanae/cwl |
CWL document parsing and processing utilities in Go |
CWL for Go |
Parser of CWL file and CWL input objects (JSON/YAML) files in Go |
cwl-proto |
Reading and writing Common Workflow Language to Protocol Buffers |
ro-crate-py |
Create an RO-Crate of workflow, can generate Abstract CWL |
Related specifications and frameworks §