WDL学习笔记
WDL是什么?
- WDL是由
Broad Institute开发的一种流程开发语言,全称workflow description language,官方链接如下:https://software.broadinstitute.org/wdl/
WDL的编写
- WDL有自己的语法规范,它是一种描述性语言,可读性很高。
- 每种语言都有自己的
hello world,WDL也不例外,示例如下图
workflow helloworld{
call hello{}
}
task hello{
String name="brother"
command{
echo "hello world" ${name}
}
}
WDL可以分为两个部分task和workflow,而task部分主要由command和定义的部分组成,command用来写你要运行的命令,定义的部分是一些你会用到的变量,变量包括不同的类型和数据结构,后面会详细的介绍;workflow部分是用来调用写好的task模块,这里可以通过定义不同的输入,设置不同的输出来建立自己需要的工作流程,写好的wdl流程文件一般以.wdl后缀结束。
程序的运行需要用到两个不同的jar包运行命令如下:
java -jar womtool-31.jar inputs xxx.wdl > xxx.wdl.json
java -jar cromwell-31.jar run xxx.wdl -i xxx.wdl.json
WDL的变量
String: 字符串类型,例如String ABC=“test”Float: 浮点型数字,for example 3.1459 (can be negative too).Int: 整型的数字, for example 16 (can be negative too).Boolean: 布尔类型 for example true or false.File: 文件类型的对象一个文件名命名的对象Array: 数组 for example [A,B,C,D] is an array of strings or Array[String] where we can pick the B element by taking the second element (index position 1 since WDL arrays are 0-indexed).Map: 字典 for example {"color": "blue", "size": "large"} is a map of strings to strings or Map[String, String] where we can ask what is the color of our object.Object: 对象,这个用的比较少
WDL的元件
- basename
basename与shell的语法一样,用来得到一个路径的文件名 - call
call主要用于workflow中调用写好的task模块 - command
command在这个模块里面写好需要运行的命令,是task的一部分 - meta
meta可以写一些描述信息 - output
output定义task的输出部分,可以是任何类型,也可以不写这个部分 - parmeter_meta
parameter_meta用于存放参数的一些描述信息 - runtime
runtime用来定义在不同的平台运行时的一些变量,在集群运行时需要编写一个配置文件用来定义一些投递任务的属性 - task
task任务模块,是需要调度的每一个模块 - variables
variables用来定义一些变量 - workflow
workflow用来调用写好的task模块,生成相应的工作流
WDL的工作流类型
WDL会有不同的工作流格式,这里列举一下官网的不同工作流

WDL的注意事项
- WDL如果在集群测试时,如果是自己来控制工作流程,需要将标准输出和标准错误输出输出至文件,这样输出到屏幕的返回值才能被正常的获取到
- WDL的local版本测试会比较快
WDL学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- Mathtype新版本
新版本Mathtype在MS Word 2007不能直接调用.今天发现,可以直接从Windows程序菜单中启动.在独立的窗口下编辑,编辑后粘贴到Word或Tex中. 早年使用Word时,嫌Mathty ...
- Mac laravel: command not found
如果用的oh-my-zsh 安装laravel 提示找不到.可以试试下面的 export PATH=$HOME/bin:/usr/local/bin:~/.composer/vendor/bin:$P ...
- go type别名和定义类型区别
package main import ( "fmt" ) type person struct { age int name string } func (p person)te ...
- jquery选择器(1)
jQuery 元素选择器 jQuery 使用 CSS 选择器来选取 HTML 元素. $("p") 选取 <p> 元素. $("p.intro") ...
- 第十四周助教工作总结——NWNU李泓毅
助教博客链接:https://www.cnblogs.com/NWNU-LHY/ 本次作业的要求:团队项目需求改进与系统设计:https://www.cnblogs.com/nwnu-daizh/p/ ...
- VS2017打包注册IE插件及修改IE安全选项设置【转】
前言 最近项目需要在浏览器环境下读取员工身份证信息,要实现网页与硬件设备通信,考虑了几种实现方式: 1.借助ActiveX插件,通过程序库直接与设备通信. 优点:厂家提供了IE插件,开发简单 缺点:只 ...
- Visual Studio、.NET Framework、VC++、C#各个版本的对应关系
Visual Studio..NET Framework.VC++.C#各个版本的对应关系 Visual Studio版本 .NET Framework版本 内部版本 VC++版本 C#版本 Visu ...
- RNA剪接体 Spliceosome | 冷冻电镜 | 结构生物学
冷冻电镜 为什么冷冻电镜 (Cryo-EM) 技术的发明可以获得2017诺贝尔化学奖?知乎看法 Press release: The Nobel Prize in Chemistry 2017 We ...
- HttpLitener处理http请求和Websocket请求
HttpLitener处理http请求和Websocket请求的案例具体步骤如下 1.新建控制台项目TestClientWebsocket 2.选择项目右键添加类HttpAndWebsocket,代码 ...
- 笔记 - DBSherlock: A Performance Diagnostic Tool for Transactional Databases
OLTP系统的问题很难排查和定位,这就是为什么要花那么多钱去请DBA 因为TP系统的请求很多都是毫秒级别,而且同时有大量的并发,所以由于资源,或随机的原因导致的问题,很难去定位根因 哪怕数据库系统尤其 ...