WDL是Broad Institute开发的“human readable and writable”定义组织任务与工作流的一种语言,主要面向生物信息/基因组学等领域。
Cromwell 是WDL语言的任务管理引擎, 在 BSD 3-Clause 许可下开源。
cromwell 下载
cromwell 由java语言编写,可以下载打包好的jar,直接使用
https://github.com/broadinstitute/cromwell/releases
截止到2021年10月,cromwell 已经release 69 个版本, 需要java(openjdk)11版本,不支持低版本java,否则会有以下错误。
java -jar cromwell-<versionNumber>.jar
cromwell 69
Usage: java -jar /path/to/cromwell.jar [server|run|submit] [options] <args>...
--help Cromwell - Workflow Execution Engine
--version
Command: server
Starts a web server on port 8000. See the web server documentation for more details about the API endpoints.
Command: run [options] workflow-source
Run the workflow and print out the outputs in JSON format.
workflow-source Workflow source file or workflow url.
--workflow-root <value> Workflow root.
-i, --inputs <value> Workflow inputs file.
-o, --options <value> Workflow options file.
-t, --type <value> Workflow type.
-v, --type-version <value>
Workflow type version.
-l, --labels <value> Workflow labels file.
-p, --imports <value> A zip file to search for workflow imports.
-m, --metadata-output <value>
An optional JSON file path to output metadata.
Command: submit [options] workflow-source
Submit the workflow to a Cromwell server.
workflow-source Workflow source file or workflow url.
--workflow-root <value> Workflow root.
-i, --inputs <value> Workflow inputs file.
-o, --options <value> Workflow options file.
-t, --type <value> Workflow type.
-v, --type-version <value>
Workflow type version.
-l, --labels <value> Workflow labels file.
-p, --imports <value> A zip file to search for workflow imports.
-h, --host <value> Cromwell server URL.
cromwell 主要有2个模式server 与 run.
run
run
模式,执行单个任务流程,执行完成即返回。
重要参数
-
workflow-source
【必须】单个 wdl 文件,可以是本地文件,也可以是URL文件路径。 -
--inputs
【可选】wdl文件对应的变量输入文件,json格式 -
--imports
【可选】需要zip压缩文件,包含wdl文件中被import的wdl文件。 -
--metadata-output
【可选】,指定文件名,cromwell将写入meta json数据,例如起始时间、状态及输入、输出参数、执行命令.
次要参数
-
--options
【可选】流程配置文件,分全局配置与后端(SGE、SLURM、K8S等作业管理系统)配置文件。 -
--type
【可选】此参数不起作用,可以忽略,默认都是 WDL -
--type-version
An optional parameter to specify the version of the language for the workflow source. Currently any specified value is ignored.
【可选】此参数不起作用,可以忽略 -
--labels
An optional parameter to specify a file of JSON key-value label pairs to associate with the workflow.
【可选】指定与流程相关的json文件 -
--version
输出版本 -
--help
帮助信息
server
server
模式,可以将cromwell作为web 服务器,无需任何参数即可启动,随后以网页API的模式(/api/RESTAPI
)提交需要执行的任务。
后面会有专门的文档进行介绍。
