包虫病

首页 » 常识 » 诊断 » WDL中文文档第二章WDL语言规范
TUhjnbcbe - 2021/5/4 16:28:00
北京哪家医院是最好的白癜风医院 https://baike.baidu.com/item/%E5%8C%97%E4%BA%AC%E4%B8%AD%E7%A7%91%E7%99%BD%E7%99%9C%E9%A3%8E%E5%8C%BB%E9%99%A2/9728824

2.1全局语法规则

续上期

可选变量与变量的None值

声明变量时如果在变量类型后面加了个“?”,那就表示这个变量可以不用传入值,并且也不会引发报错。

WDL中有一个特殊的值None用来表示这是一个未定义的值。None值可以是任何类型变量的赋值,即使是声明可选的变量。如果一个可选变量在声明时传入了默认初始值None,那么就表明这个变量是未定义的。

Intcertainly_five=5#annon-optionaldeclarationInt?maybe_five_and_is=5#adefinedoptionaldeclaration#thefollowingareequivalentundefinedoptionaldeclarationsString?maybe_five_but_is_notString?maybe_five_but_is_not=NoneBooleantest_defined=defined(maybe_five_but_is_not)#EvaluatestofalseBooleantest_defined2=defined(maybe_five_and_is)#EvaluatestotrueBooleantest_is_none=maybe_five_but_is_not==None#EvaluatestotrueBooleantest_not_none=maybe_five_but_is_not!=None#Evaluatestofalse

复合类型变量

如果把StringIntFile...这些变量类型理解为变量的一级结构的话,那么复合类型变量就是具有二级结构的变量。复合类型1:Array[X]

Array表示相同类型元素的有序列表,X表示列表中变量的类型。元素的顺序与元素进入该列表的顺序一致,不会改变。如果要在创建Array[X]变量时就对它进行赋值,可以使用与python类似的列表格式进行赋值,即[x1,x2,x3,...]这种形式,并且列表的索引也是从0开始的,可以通过索引对列表中的元素进行访问。如果对空列表进行索引访问的话,则会触发报错。

Array[File]files=["/path/to/file1","/path/to/file2"]Filef=files[0]#evaluatesto"/path/to/file1"Array[Int]empty=[]#thiscausesanerror-tryingtoaccessanon-existentarrayelementInti=empty[0]#会触发报错

我们可以定义一个空Array,也可以用“+”来声明Array至少包含一个元素。下面这个示例定义了一个Array[File],并且要求这个列表至少包含一个元素:

taskalign{input{Array[File]+fastqs}Stringsample_type=iflength(fastqs)==1then"--single-end"else"--paired-end"

1
查看完整版本: WDL中文文档第二章WDL语言规范