WDL - 架构简介

在前面的文章中,我们介绍了 WDL 的5个基本组件,掌握这五个基本组件(workflow、task、call、output、runtime)已经可以帮助我们完成流程的开发了。但是于此同时,wdl还有一些特殊的组件和特性,可以让我们更便捷的实现一些复杂功能。在这里,我们将介绍一些特殊的组件和特性。

command

command 组件是 task 必需属性。 command 块的正文指定要运行的命令行指令(基本上是可以在终端 shell 中运行的任何命令),占位符(例如, ~{input_file} )用于需要填写的命令行的可变部分。请注意,必须在 task 输入定义中定义所有变量占位符。

1
2
3
4
5
command <<<
java -jar myExecutable.jar \
INPUT = ~{input_file} \
OUTPUT = ~{output_basename}.txt
>>>

meta

meta 组件是工作流或任务的可选属性。它旨在存储元数据,例如作者或联系人电子邮件。可以使用任何键/值对。

1
2
3
4
meta {
author: "Broad Institute Data Science Platform",
pipeline_version: "V1.0.1"
}

Parameter_meta

parameter_meta 组件是工作流或任务的可选属性。它可以用来为工作流或任务中使用的输入参数和输出参数提供元数据信息,如果您的变量名称描述性不够,可以通过 parameter_meta 对参数进行描述说明。因此 parameter_meta 中的任何项目(即 input_file )都必须与工作流或任务的输入或输出相对应,具体取决于 parameter_meta 组件的使用位置。

1
2
3
4
parameter_meta {
my_input: "Input file to be analyzed"
name: "Name of the sample"
}

参考文档

WDL参考文档

Broad WDL 官方论坛

WDL项目仓库

OpenWDL

WDL-readthedoc

标准流程描述语言 WDL 阿里云最佳实践

在学习编写 WDL 的过程中,可以参考 Broad 官方的一些 GATK工作流 借鉴和学习 WDL 的用法。

-------------本文结束感谢您的阅读-------------