Top 1,000 Features Creators Events Podcasts Extensions Interviews Blog Explorer CSV

CWL

< >

CWL is an open source programming language created in 2014 by Luka Stojanovic.

#350on PLDB 10Years Old 464Repos
Download source code:
git clone https://github.com/common-workflow-language/cwltool
Homepage · Source Code · Twitter

The Common Workflow Language (CWL) is a specification for describing analysis workflows and tools in a way that makes them portable and scalable across a variety of software and hardware environments, from workstations to cluster, cloud, and high performance computing (HPC) environments. CWL is designed to meet the needs of data-intensive science, such as Bioinformatics, Medical Imaging, Astronomy, Physics, and Chemistry.


Example from Linguist:
#!/usr/bin/env cwl-runner # Originally from # https://github.com/Duke-GCB/GGR-cwl/blob/54e897263a702ff1074c8ac814b4bf7205d140dd/utils/trunk-peak-score.cwl # Released under the MIT License: # https://github.com/Duke-GCB/GGR-cwl/blob/54e897263a702ff1074c8ac814b4bf7205d140dd/LICENSE # Converted to CWL v1.0 syntax using # https://github.com/common-workflow-language/cwl-upgrader # and polished by Michael R. Crusoe <mrc@commonwl.org> # All modifications also released under the MIT License cwlVersion: v1.0 class: CommandLineTool doc: Trunk scores in ENCODE bed6+4 files hints: DockerRequirement: dockerPull: dukegcb/workflow-utils inputs: peaks: type: File sep: type: string default: \t outputs: trunked_scores_peaks: type: stdout baseCommand: awk arguments: - -F $(inputs.sep) - BEGIN{OFS=FS}$5>1000{$5=1000}{print} - $(inputs.peaks.path) stdout: $(inputs.peaks.nameroot).trunked_scores$(inputs.peaks.nameext)

Language features

Feature Supported Example Token
Comments
# A comment
Line Comments
# A comment
#
Semantic Indentation X

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll