WDL:快速编写属于你的分析流程
前⾔
⼀般⽣物信息分析流程都包含很多的分析步骤,这些步骤之间的联系也有很多情况。例如,流程的步骤中有不少是依赖上⼀步的结果,同时也有些步骤之间没有联系可以同时进⾏,还有的步骤需要满⾜某种情况才运⾏,也有的步骤需要汇总很多样本的结果来进⾏分析,等等这些情况。那么⼀个好的流程应该要满⾜没有依赖的步骤可以并⾏分析,需要上⼀步结果的步骤会⾃动等待上⼀步骤执⾏完毕并调⽤其结果,需要汇总很多步骤的结果时能够⾃动等待所有依赖步骤执⾏完毕然后汇总他们的结果并调⽤,以及能够处理⼀些其他的情况等。
json值的类型有哪些 ⼀个优秀的流程⼯具应该具备良好的组织性、复⽤性、⽀持多种集架构,较低的上⼿及查错成本。那么有没有这么好⽤的流程管理⼯具呢?答案是肯定的。今天我们就来分享⼀个⾮常好⽤且强⼤的流程管理⼯具——WDL。⽬前WDL就是这样⼀个具备这种潜⼒的⼯具,WDL是Broad Institute开发的“human readable and writable”定义组织任务与⼯作流的⼀种语⾔。Cromwell(an execution engine that can run WDL scripts)是基于java编写的可以很好地⽤来执⾏WDL语⾔的引擎⼯具。WDL+Cromwell就是⼀套很好的分析流程解决⽅案。
WDL介绍
结构
1. WDL:整体是由⼀个workflow构成,⼀般写在⼀个后缀为“.wdl”的⽂件⾥⾯。
2. workflow:整体有两个部分构成,⼀是位于头部的input,该部分定义workflow级别的变量,所有的task都可以调⽤该部分的变量,如果很
多步骤都需要使⽤的变量最好定义在这个部分⽅便使⽤;⼆是使⽤“call”关键字调⽤下⾯定义的task,这个部分的task顺序不代表执⾏时的顺序,task的执⾏顺序有任务之间是否有引⽤关系来决定,如果任务之间没有联系就会平⾏执⾏,如果有⼀个任务需要⽤到另⼀个任务的结果时,可以在写流程的时候指定好,这样就在执⾏的时候就会有先后顺序。
3. task:主要包含三个部分,⼀是位于头部的input,该部分定义的是task级别的变量,也就直接给该task⾃⼰使⽤的变量;⼆是使
⽤“command”关键字定义的具体命令部分,在这⾥⾯可以书写的命令就是Linux命令写的⼀样命令;三是使⽤“output”关键字定义的输出部分,这样别的任务就可以调⽤这样输出结果,WDL也正是通过这个来定义任务间的执⾏顺序;主要是上⾯三个部分,还有⼀些可选部分,如可以通过runtime(使⽤集时有效)、parameter_meta、meta等关键字来定义任务的运⾏配置、参数信息、流程信息等。
4. variable:定义变量的时候可以在类型关键字后⾯加⼀个“?”代表这个变量是可选的,也就是可以不提供值的变量,也可以给变量赋⼀个默认
值,这样没有另外给值时就会使⽤默认值。由于执⾏引擎Cromwell是基于java编写的,所以定义的变量是强类型的,也就是需要显⽰地声明变量的类型,变量类型主要包括以下⼏种:
String: 字符串类型,
Float : 浮点型数字,
Int: 整型的数字,
Boolean : 布尔类型,只有true和false两种情况,
File: ⽂件类型,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论