WDL语言入门

WDL最初是由Broad Institute为基因组分析管道开发的。语法简单,易于表达,能很好的描述流程 ;且跨平台。GATK首选的pipeline解决方案:WDL + cromwell ****。

目前,Cromwell是唯一支持WDL的全功能执行引擎。cromwell 是一个面向科学工作流程的工作流管理系统,基于BSD 3-Clause license证书的开源软件,支持在三种平台上运行WDL: 本地机器通过作业调度器(GridEngine,例如PBS , Slurm )访问的本地集群 和 **云平台 **(例如谷歌云或Amazon AWS) 。

cromwell是以美国演员 James Cromwell的名字命名的,他是《宝贝》和《星际迷航:第一次接触》等伟大电影的明星,因此它的吉祥物是“变形猪杰米”。

image

使用WDL 可以不用考虑计算环境问题,本地集群和公有云上运行完全相同的脚本。

image

WDL 脚本核心结构包括 5 个基本组件:workflow, task, call, command 以及 output。

workflow 即是描述整个流程的框架,其中调用( call )了不同的 task 。

task 包含“做某事”所必需的所有信息,这些信息围绕着一个command,该命令带有输入文件和参数的定义,以及output 信息 。

**例如: bwa 比对流程, 使用 WDL编码 **

输入是reference( 参考序列 ),read1 和 read2 。

output是 bam文件和bam索引文件 。

command 是

bwa mem reference read1 read2 |samtools sort - -o sample.bam

顶层文件是 workflow, 里边call 这个task

弄清楚了流程的内容,我们来一起完成流程的编码

** bwa.wdl task内容**

task bwa_task{

**mapping.workflow.wdl workflow内容 **

import "bwa.wdl"      // 引用task文件

使用womtool 语法校验

java -jar  womtool-48.jar  validate bwa.wdl 

使用womtool 生成 inputs.json , 将输入文件和字符串补充完整

java -jar  womtool-48.jar  inputs mapping.workflow.wdl 

使用cromwell 运行流程

java -jar cromwell-48.jar  run mapping.workflow.wdl  \

WDL 可以使我们的流程组装更加方便

*基因组分析*****公众号推出 《50篇文章深入理解NGS》系列文章, 第二篇文章 《五分钟入门WDL语言》,争取每周更新一篇高质量生信干货帖子。

关注 "基因组分析" 公众号,了解最新最全生信分析知识。

你可能感兴趣的:(WDL语言入门)