WDL

WDL-第1讲

2021-03-24  本文已影响0人  MR来了

WDL后续一系列学习笔记均来自官方文档

本讲主要分为:

1.1 初识WDL

初步认识WDL,是 Workflow Description Language的缩写,有时也写作 Workflow Definition Language,是美国 Broad Institute 推出的工作流描述语言。它很好的规范了目前串写流程的弊端,使得写出来的pipeline比较规范而且易于看懂。此外它适合很多平台,移植性高,能出来大规模投递任务。但是弊端就是不够灵活和中文学习资料很少。

1.2 Cromwell参数

对WDL语言进行解析是Cromwell, 用java撰写的一个jar,它可以投递和监控任务,说白了它是把撰写好的WDL描述的任务投递上去并进行监控,而且提供了丰富的API,对于Cromwell, 我们先看看它相关的参数:

cromwell 29
Usage: java -jar /path/to/cromwell.jar [server|run] [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 , 输入写好的WDL文件
  --workflow-root <value>  Workflow root
  -i, --inputs <value>     Workflow inputs file, 一般记录输入文件
  -o, --options <value>    Workflow options file, 一般记录运行时候的参数
  -t, --type <value>       Workflow type, 就是'-t wdl'
  -v, --type-version <value>, wdl的语言版本,目前程序忽略
                           Workflow type version.
  -l, --labels <value>     Workflow labels file.
  -p, --imports <value>    A zip file to search for workflow imports, 引用其他WDL
  -m, --metadata-output <value>
                           An optional JSON file path to output metadata.

1.3 Cromwell运行的两种模式

类似我们经常写的sh脚本,WDL也是分为投递server mode和直接运行run mode两种模式。

server mode的优势:

## 先命令启动一个 HTTP server
java -Dconfig.file=application.conf -jar cromwell.jar server
## 使用 RESTful API 提交工作流到 server 执行
java -jar cromwell.jar submit -t wdl -i input.json -o option.json -h http://localhost:8000

run mode

## 用来执行单个 WDL,适用于调试初期,快速执行一个WDL
java -jar cromwell.jar run echo.wdl --inputs input.json
上一篇下一篇

猜你喜欢

热点阅读