通用工作流语言(CWL)是一个开放的标准,用于描述、分析工作流和工具,使流程文件能够在各种软件和硬件环境(从工作站到集群、云和高性能计算(HPC)环境)中可移植和扩展。CWL旨在满足数据密集型科学的需求,如生物信息学、医学成像、天文学、高能物理和机器学习。
CWL是由一个由组织和个人组成的多工作组开发的,旨在让科学家共享数据分析工作流程。CWL项目在Github上维护,我们遵循协作开放标准开发的openstand.org原则。合法CWL属于工程软件自由保护协会,日常项目决策是由(CWL社区)(https://github.com/common-workflow-language/cwl-website/blob/main/README.md)支持开放参与的任何人。

开始

CWL用户指南提供了学习如何编写CWL命令行工具和工作流描述的温和介绍。
浏览CWL Implementations,找到适合你的软件包。
( CWL推荐实践 )(http://www.commonwl.org/user_guide/rec-practices/)

支持、社区和贡献

关于CWL的所有问题,建议在CWL话语组上提问。以前我们使用biostars.org,在那里你仍然可以阅读旧的回复。
如果你有兴趣学习更多或贡献想法或代码,(来和我们聊天在git) (https://gitter.im/common-workflow-language/common-workflow-language),检查(在Twitter上# CommonWL) (https://twitter.com/search?q=%23CommonWL),加入(邮件列表对谷歌集团common-workflow-language) (https://groups.google.com/forum/ !论坛/ common-workflow-language)或存储库(https://github.com/common-workflow-language/common-workflow-language)和发送拉请求!
除了邮件列表的web界面,用户还可以通过发送空白邮件到common-workflow-language+subscribe@googlegroups.com并回复自动回复来加入。

行为准则

CWL项目致力于为每个人提供无骚扰的体验,无论性别、性别认同和表达、性取向、残疾、外貌、体型、年龄、种族或宗教。我们不会容忍任何形式的骚扰参与者。本行为准则适用于所有CWL项目空间,包括在线和离线的谷歌组、Gitter聊天室、谷歌Hangouts聊天室。任何违反本行为准则的人,在领导团队的酌情决定下,将被处罚或驱逐出这些空间。
欲了解更多细节,请参见我们的行为准则

规范

对于开发人员和高级用户,当前的CWL标准v1.2.0提供了执行CWL文档的权威文档。以前的版本CWL Standards v1.0.2CWL Standards v1.1.0也可以使用。

引用

在学术著作中引用CWL标准,请使用以下引文(包括DOI):
Peter Amstutz, Michael R. Crusoe, Nebojša Tijanić (editors), Brad Chapman, John Chilton, Michael Heuer, Andrey Kartashov, Dan Leehr, Hervé Ménager, Maya Nedeljkovich, Matt Scales, Stian Soiland-Reyes, Luka Stojanovic (2016): Common Workflow Language, v1.0. Specification, Common Workflow Language working group. https://w3id.org/cwl/v1.0/ doi:10.6084/m9.figshare.3115156.v2
有关CWL的现有参考资料可于[https://zotero.org/groups/cwl]

实现

用于生产系统

软件 描述 平台支持
cwltool CWL的实现 Linux, OS X, Windows, 仅本地化运行
Arvados 面向海量数据集数据分析的分布式计算平台. Using CWL on Arvados 在云AWS、Azure、GCP,以及使用Slurm的混合集群
Toil Toil 是一个完全用Python编写的工作流引擎 toil-cwl-runner guide. AWS, Azure, GCP, Grid Engine, HTCondor, LSF, Mesos, OpenStack, Slurm, PBS/Torque
CWL-Airflow 在apache -airflow中运行CWL工作流程的包(由BioWardrobe Team, CCHMC支持) Linux, OS X
REANA RE usable ANAlyses Kubernetes, CERN OpenStack (OpenStack Magnum)

部分功能

Software Description Platform support
Galaxy Web-based platform for data intensive biomedical research. Partial support for importing CWL tools and workflows is under development
cwl-tes CWL engine backended by the GA4GH Task Execution API Alicloud, AWS, Google, HPC, Local, Spark, TES
Xenon Run CWL workflows using Xenon any Xenon backend: local, ssh, SLURM, Torque, Grid Engine
Consonance orchestration tool for running SeqWare workflows and CWL tools AWS, OpenStack, Azure
AWE Workflow and resource management system for bioinformatics data analysis. -
yacle Yet Another CWL Engine local
Calrissian CWL Engine built for Kubernetes
Cromwell Cromwell workflow engine Google, HTCondor, Local, LSF, PBS/Torque, SGE, Slurm, TES
CWLEXEC Apache 2.0 licensed CWL executor for IBM Spectrum LSF, supported by IBM for customers with valid contracts. IBM Spectrum LSF 10.1.0.3+
Mariner “The Gen3 Workflow Execution Service”, Apache 2.0 licensed, written in Go, also implements the GA4GH WES API Kubernetes
ep3 Extremely Pluggable Pipeline Processor local
Pegasus Pegasus Workflow Management System Partial support for importing CWL workflows is under development

CWL工具和工作流的仓库

Repository Description
Common Workflow Library Git organization for community maintenance of tools and workflows.
Dockstore tool registry An open platform for sharing Docker-based tools described with the Common Workflow Language used by the GA4GH.
CWLviewer A web application to view and share Common Workflow Language workflows
cwl-source Git repository for collections of tools, workflows, metadata, and input parameter files. Administered by xD Bio Inc. Integrates with truwl.com
GitHub Search for CWL documents using extension:cwl cwlVersion + <your search terms>, for example extension:cwl cwlVersion picard.
Google Search for CWL documents using filetype:cwl cwlVersion + <your search terms>, for example filetype:cwl cwlVersion picard.
Workflow Hub A registry for scientific workflows, sponsored by EOSC Life

使用CWL的软件

编辑查看工具

Software Description
Rabix Composer Graphical CWL editor
CWLviewer A web application to view and share Common Workflow Language workflows
atom-cwl CWL editing mode for Atom
vim-cwl CWL editing mode for Vim
cwl-mode CWL editing mode for Emacs (instructions english, 日本語)
vscode-cwl CWL support in Visual Studio Code
IntelliJ CWL plugin CWL plugin for IntelliJ and other JetBrains editors
bioSyntax Includes CWL syntax highliting for gedit
Rabix Benten A language server for CWL. Provides CWL code intelligence for VS Code, vim/neovim, Emacs, Acme, IntelliJ/JetBrains, and others
vue-cwl Visualizer of CWL workflows for the Vue JavaScript framework using cwl-svg
cwl-for-remote-container-template A template to write CWL documents with VSCode with remote container extension

实用工具

Software Description
cwldep CWL dependency manager, for importing tool wrappers and workflows into your own project.
cwltest CWL testing framework, automated testing of tools and workflows written with CWL
cwl2zshcomp generates ZSH auto completions from CWL command line tool descriptions
Cerise A REST service for running CWL workflows on remote clusters
workflow-service An implementation of the GA4GH Workflow Execution Service (WES) API to run CWL workflows on remote clusters
cwl-inspector Tool to inspect properties of tools or workflows written in CWL
cwlprov-py Command line tool and Python API to explore CWLProv Research Objects containing provenance of Common Workflow Language executions
cwl-utils Example scripts using the new Python 3.6+ CWL parsing library, includes a script to cache all software containers for a given CWL document.
looper job submitting engine with support for [CWL whole workflow/tool scattering](

转换器和代码生成器

Software Description
cwl-upgrader Upgrade CWL documents from draft-3 to v1.0
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 New 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.

代码库

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
CWL for R Parse and work with CWL from R
buchanae/cwl CWL document parsing and processing utilities in Go.
CWL for Go -
CWL for Scala CWL object model for Scala
cwl-proto Reading and writing Common Workflow Language to Protocol Buffers
CmdParser Reading and Writing Common Workflow Language spec files from C++ applications. Includes a Command Line Parser
Rcwl Build, read, write and run CWL in R
tidycwl Tidy (R) Common Workflow Language Tools and Workflows