GATK --- wdl 语言
GATK的pipeline使用WDL进行编写
WDL是一种流程管理语言,内置的支持并行,适合编写pipeline
运行wdl脚本需要两步:第一步编辑参数列表对应的json文件,第二步直接运行Cromwell.jar
eg
workflow helloWorld{
call myTask;
}
task myTask{
commond{
echo "hello world"
}
output {
String out = read_string(stdout())
}
}
对于一个WDL脚本,有5个核心结构:
1,workflow
2, task:代表任务,读取输入文件,执行相应的commond,然后输出output。task中可以有参数。
3, call
4, commond
5, output
一个脚本包括1个workflow,一个workflow由多个task构成,并在workflow中通过call调用。每个task在workflow代码块之外单独定义。包括多个commond
如:task中的参数:
task task_1{
File ref
File in
String id
commond{
do_stuff R = ${ref} I=${in} O=${id}.ext
}
output{
File out = "${id}.ext"
}
}
workflow 中的参数,传递参数给task时,直接传变量名
task 之间具有多种关系。理论上每个task 只可以调用1次,若调用多次,需要借助task alias。例如:
workflow taskAlias{
File firstInput
File secondInput
call stepA as firstSample {
input: in=firstInput
}
call stepA as secondSample{
input: in = secondInput
}
call stepB{input: in=firstSample.out}
call stepC{input: in=secondSample.out}
}
task stepA{
File in
commond{ programA I=${in} O=outputA.ext}
output{File out="outputA.ext"}
}
task stepB{
File in
commond{ programA I=${in} O=outputB.ext}
output{File out="outputB.ext"}
}
task stepA{
File in
commond{ programA I=${in} O=outputC.ext}
output{File out="outputC.ext"}
}
运行WDL脚本,需要:
1,cromwell.jar
2,womtools.jar
第一步是得到输入的参数列表:用json格式存储,这一步知识一个模板,需要编辑这个文件,将对应的参数替换成实际需要的参数
java -jar womtools.jar inputs myWorkflow.wdl > myWorkflow_inputs.json
第二步,运行脚本
java -jar Cromwell.jar run myWorkflow.wdl -inputs myWorkflow_inputs.json
[转载:https://www.jianshu.com/p/42f377e20ff7]
GATK --- wdl 语言的更多相关文章
- GATK使用说明-GRCh38(Genome Reference Consortium)(二)
Reference Genome Components 1. GRCh38 is special because it has alternate contigs that represent pop ...
- 16、GATK使用简介 Part1/2
转载:http://blog.sina.com.cn/s/blog_6721167201018fyw.html GATK (全称The Genome Analysis Toolkit)是Broad I ...
- WDL学习笔记
WDL是什么? WDL是由Broad Institute开发的一种流程开发语言,全称workflow description language,官方链接如下:https://software.broa ...
- C语言 · 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- C语言 · Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...
- C语言 · 字符转对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
随机推荐
- hive 排序 order by sort by distribute by cluster by
order by: order by是全局排序,受hive.mapred.mode的影响. 使用orderby有一些限制: 1.在严格模式下(hive.mapred.mod ...
- OpenStreetMap、googleMap等经纬度和行列号之间相互转化(python,JavaScript,php,Java,C#等)
python: # OpenStreetMap经纬度转行列号 def deg2num(lat_deg, lon_deg, zoom): lat_rad = math.radians(lat_deg) ...
- android-eclips中logcat不显示信息的问题解决
time:2015/11/20 1. logcat窗口不显示问题 解决: 参考[1] 2. logcat中不显示信息 (1)红米手机 (2)解决问题 * 有些文章提到重启eclipse,或者重启手机. ...
- 企业生产环境集群稳定性-HA就行吗?
在企业生产中,集群一旦运行,是要尽可能的将损失降到最低,现在所有的大数据技术都有HA,spark的.Hadoop的.HBase的等等, HA分冷备和热备,热备是集群自带的,冷备就是硬件的. 这样一种情 ...
- [BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树
[BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树 题意 给定一个 \(n\) 个点边带权的无根树, 要求切断其中恰好 \(k\) 条边再连 \(k\) 条边权为 \(0\) ...
- 字符串,元组,列表; 切片&range
总结:字符串: "" 组成元组: () 组成列表: [] 组成 切片 中括号冒号: [5: 0: -2] # print(s2[5:0:-2]) 此步长为-2,则从右往左取, 则a ...
- SQL Server中搜索特定的对象
一.注释中带某关键字的对象 主要用到 sys.tables .sys.columns .sys.procedures 系统对象表以及sys.extended_properties 扩展属性表 --查 ...
- Flex布局及其应用
什么是弹性盒子? 弹性盒子是 CSS3 的一种新的布局模式.相对于传统的依赖于display+position+float的布局方式,弹性盒子更加以有效的方式来对一个容器中的子元素进行排列.对齐和分配 ...
- 在.NET中操作数字证书(新手教程)
.NET为我们提供了操作数字证书的两个主要的类,分为为: System.Security.Cryptography.X509Certificates.X509Certificate2类, 每个这个类的 ...
- Python基础.md
数据结构 列表 访问 list1 = ['java','C','C++','Python'] In [10]: list1[1] Out[10]: 'C' In [11]: list1[-1] Out ...