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 ...
随机推荐
- zabbix 内置key说明
原文参考:https://blog.csdn.net/whs_321/article/details/52939263 一.简介 Zabbix 内置了很多丰富的key,使得我们在添加linux os模 ...
- coturn编译运行在Windows平台
turn 编译安装到Windows平台 https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html#windo ...
- linux shell下面的几种proxy方式
设置ALL_PROXY环境变量 export ALL_PROXY=socks5://127.0.0.1:1080 支持socks5 http https 取消 export ALL_PROXY=&qu ...
- Connection: close
在http1.1中request和reponse header中都有可能出现一个connection头字段,此header的含义是当client和server通信时对于长链接如何进行处理. 在http ...
- 说说AutoMapper那些事
项目中用到了DTO与Model之间的转换,因为model项目比较多,所以需要使用工具或者代码来实现快速的转换.AutoMapper就是一个很好的基于约定的object-object mapper.映射 ...
- [CMS]ThinkCMF框架存在任意内容包含漏洞
原出处:https://www.freebuf.com/vuls/217586.html 0x00 简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3 ...
- Windowns下code: command not found
错误信息:code: command not found’ 解决办法:配置VsCode环境变量 首先找到VsCode点击其属性,查看路径 进入这个路径后 将D:\Program Files\Micro ...
- T-MAX组--项目冲刺(第二天)
THE SECOND DAY 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 T-MAX组--项目冲刺(第二天) 团队名称 T-M ...
- openssl从内存中读取私钥进行签名
麻痹的找了好久,真恶心! #include <stdio.h> #include <stdlib.h> #ifdef WIN32 #include <windows.h& ...
- Linux tar: Cannot change ownership to [..]: Permission denied
tar xzf $INPUT_FOLDER/archive.tar.gz --no-same-owner -C /mnt/test-nas/