版本
和其他编程语法一样,WDL也存在不同版本间的语法差异,因此在使用WDL进行流程撰写时,需要明确参考的版本规范
draft-3
v1.0
v1.1 截止202301,cromwell还不支持该版本。
所以后文语法如无特殊标准,均基于 WDL v1.0 版本。
内置函数
输入输出:stdout, stderr,read_tsv
- stdout()函数用于捕获command中命令生成的标准输出。
- stderr()函数用于捕获command中命令生成的标准报错。
stderr比stdout更常用,更多用于捕获warning信息
信息获取类:defined, glob, basename, select_first
- 文件读入:read_tsv, read_json, read_lines
文件输出:write_tsv, write_lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# json file: person.json
{
"name":"John",
"age":42
}
# WDL read
workflow demo{
File json_file = "person.json"
Object p = read_json(json_file)
...
call record{
input:
name = p.name,
age = p.age
}
}glob:获取某一类型文件,返回文件数组
- defined:判断变量是否被定义,返回布尔值True/False
- select_first:输入为数组,返回首个不为空的元素。很重要的函数!
- size: 计算文件大小,资源动态适配中的重要函数,示例
size(Merge_Bam, "GB")
- ceil: 向上取整数, 示例
ceil(1.2) 返回 2