0
点赞
收藏
分享

微信扫一扫

【WDL】5. 实践与建议

ITWYY 2022-09-01 阅读 41
wdlidehtml

目录

  • ​​WDL开发工具IDE介绍​​
  • ​​语法校验:WOMtool​​
  • ​​脚本实践​​
  • ​​应用示例​​
  • ​​实践:WES简易流程编写​​
  • ​​一些建议​​
  • ​​程序粒度的切分​​
  • ​​输入输出问题​​
  • ​​合理使用sub-workflow​​
  • ​​一些问题​​

WDL开发工具IDE介绍

  • vim-wdl插件:​​https://github.com/broadinstitute/vim-wdl​​
  • Vscode插件:推荐

语法校验:WOMtool

​​https://cromwell.readthedocs.io/en/stable/WOMtool/​​

脚本实践

应用示例

  • 2020,Nature Methods,Cumulus provides cloud-based data analysis for large-scale single-cell and single-nucleus RNA-seq:​​https://cumulus.readthedocs.io/en/stable/​​
  • WARP:​​https://broadinstitute.github.io/warp/docs/get-started​​
  • 菌株基因组数据库(gcType)2021,NAR:​​https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7778895/​​
  • ​​https://gctype.wdcm.org/​​​——​​https://gctype.wdcm.org/genomeanalysis.jsp​​
  • 目前Broad已经将GATK best prctice pipeline按WDL脚本发布
  • Broad子项目Gtex流程也采用WDL脚本发布

实践:WES简易流程编写

从fastq质控到call SNP的流程?

  • 要点1:在WDL中添加判断语句,使数据达到某一标准后才执行bwa及后续步骤(fastp会输出fastq评价结果);
  • 要点2:bam index(samtools index),输出哪种类型的结果?
  • 要点3:如何实现多样本运行及vcf合并?

一些建议

程序粒度的切分

  • 基于Docker平台在作业运行中,涉及镜像的拉取,因此在编写流程时,尽量避免镜像重复使用;
  • 但把所有软件安装在一个镜像中会使得计算节点的资源占用过高;
  • 如果在command中使用管道,需用set -o pipefail;
  • 在task command中加入退出输出有助于排查错误原因。

输入输出问题

  • 做到凡是task或workflow,必有输出(易排错);
  • 当流程中有分支时,应合理应用WDL自带函数,保证流程的弹性;
  • 合理使用select_first函数。

合理使用sub-workflow

  • 使用子流程,不但可以保证代码可读性,还可更好地实现代码复用;
  • 但前提是,需要对输入输出有较好的命名规则。

一些问题

  • WDL作为语法标准存在多种解析器,Cromwell作为其解析器的一种,对WDL官方语法支持不全面。如scatter嵌套(Cromwell支持,但官方文档中没有)。

# can do this in cromwell 
workflow foo{
Map[String, Int] map
scatter(pair in map){
String key = pair.left
Int value = pair.right
}

output{
# automatically gathered from inside the scatter:
Array[String] keys = key
Array[Int] values = value
}
}

  • WDL应用场景还有一定限制(并非WDL本身额外难题,而是一些主流应用还在过渡期),如CellRanger,Pacbio的一系列应用。
  • 尽量充分的注释,以保证代码可维护性。
    参数的注释:​​{"## wgs.bam": "/path/to/sample.bam"}​

Ref
​​​http://www.xtaohub.com/WDL-Intro/WDL-lesson5.​​

​​html​​​​http://www.xtaohub.com/WDL-Intro/WDL-lesson6.html​​



作者:Bioinfarmer,请关注同名微信公众号:Bioinfarmer。


举报

相关推荐

0 条评论