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可以分为两个部分taskworkflow,而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的注意事项

  1. WDL如果在集群测试时,如果是自己来控制工作流程,需要将标准输出和标准错误输出输出至文件,这样输出到屏幕的返回值才能被正常的获取到
  2. WDL的local版本测试会比较快
 
 
 
 

WDL学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. LOJ2269. 「SDOI2017」切树游戏 [FWT,动态DP]

    LOJ 思路 显然是要DP的.设\(dp_{u,i}\)表示\(u\)子树内一个包含\(u\)的连通块异或出\(i\)的方案数,发现转移可以用FWT优化,写成生成函数就是这样的: \[ dp_{u}= ...

  2. mysql几个简单的命令记录

    mysql常用命令: .登录MySQL mysql -h主机 -u用户名 -p密码 . 查看MySQL数据库的字符集 show variables like '%char%'; .查看MySQL数据表 ...

  3. 微信小程序“一劳永逸”的接口封装

    前言 最近都在研究小程序了,我可以的! 需求 之前都是用vue来开发项目的,接口模块我特意封装了一下.感觉也可以记录一下 小程序的接口虽说简单,但是重复调用那么多,显得不专业(一本正经的胡说八道) 还 ...

  4. 深度学习面试题05:激活函数sigmod、tanh、ReLU、LeakyRelu、Relu6

    目录 为什么要用激活函数 sigmod tanh ReLU LeakyReLU ReLU6 参考资料 为什么要用激活函数 在神经网络中,如果不对上一层结点的输出做非线性转换的话,再深的网络也是线性模型 ...

  5. html5的datalist元素详解

    html5的datalist元素详解 一.总结 一句话总结: datalist元素配合input元素可以出现有提示选择作用的选框效果,还是相对比较简便好用的 1.optgroup元素是干嘛的? opt ...

  6. 做动画animation--matplotlib--python2和3通用代码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_42053726/artic ...

  7. python+opencv图像变换的两种方法cv2.warpAffine和cv2.warpPerspective

    本文链接:https://blog.csdn.net/qq_27261889/article/details/80720359 # usr/bin/env python # coding: utf- ...

  8. ubuntu设置开机启动后命令行界面

    author:headsen chen date: 2019-09-19  14:23:31 在字符界面(即命令行界面)输入命令: 设置为字符界面的命令:sudo systemctl set-defa ...

  9. ISO/IEC 9899:2011 条款6.8.4——选择语句

    6.8.4 选择语句 语法 1.selection-statement: if    (    expression    )    statement if    (    expression   ...

  10. 【设备问题】罗技M590鼠标无法连接Macbook Pro问题解决

    问题现象 罗技蓝牙鼠标连接的时候一直显示连接中,但是一直连接不上. 解决方法 长按那个切换模式的按钮,重置下,再点击连接,显示能够连接成功.