通用工作流语言(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.2和CWL 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 |
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 |