WDL語言入門

WDL最初是由Broad Institute為基因組分析管道開發的。語法簡單,易于表達,能很好的描述流程 ;且跨平臺。GATK首選的pipeline解決方案:WDL + cromwell ****。

目前,Cromwell是唯一支持WDL的全功能執行引擎。cromwell 是一個面向科學工作流程的工作流管理系統,基于BSD 3-Clause license證書的開源軟件,支持在三種平臺上運行WDL: 本地機器通過作業調度器(GridEngine,例如PBS , Slurm )訪問的本地集群 和 **云平臺 **(例如谷歌云或Amazon AWS) 。

cromwell是以美國演員 James Cromwell的名字命名的,他是《寶貝》和《星際迷航:第一次接觸》等偉大電影的明星,因此它的吉祥物是“變形豬杰米”。

image

使用WDL 可以不用考慮計算環境問題,本地集群和公有云上運行完全相同的腳本。

image

WDL 腳本核心結構包括 5 個基本組件:workflow, task, call, command 以及 output。

workflow 即是描述整個流程的框架,其中調用( call )了不同的 task 。

task 包含“做某事”所必需的所有信息,這些信息圍繞著一個command,該命令帶有輸入文件和參數的定義,以及output 信息 。

**例如: bwa 比對流程, 使用 WDL編碼 **

輸入是reference( 參考序列 ),read1 和 read2 。

output是 bam文件和bam索引文件 。

command 是

bwa mem reference read1 read2 |samtools sort - -o sample.bam

頂層文件是 workflow, 里邊call 這個task

弄清楚了流程的內容,我們來一起完成流程的編碼

** bwa.wdl task內容**

task bwa_task{

**mapping.workflow.wdl workflow內容 **

import "bwa.wdl"      // 引用task文件

使用womtool 語法校驗

java -jar  womtool-48.jar  validate bwa.wdl 

使用womtool 生成 inputs.json , 將輸入文件和字符串補充完整

java -jar  womtool-48.jar  inputs mapping.workflow.wdl 

使用cromwell 運行流程

java -jar cromwell-48.jar  run mapping.workflow.wdl  \

WDL 可以使我們的流程組裝更加方便

*基因組分析*****公眾號推出 《50篇文章深入理解NGS》系列文章, 第二篇文章 《五分鐘入門WDL語言》,爭取每周更新一篇高質量生信干貨帖子。

關注 "基因組分析" 公眾號,了解最新最全生信分析知識。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容