WDL - 撰写语法

版本

和其他编程语法一样,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
-------------本文结束感谢您的阅读-------------