如何在个人电脑上运行WDL
WDL 作为一种新的技术,虽然有种种优势,但是编写和测试依然存在种种限制,例如需要用户熟悉Docker 容器化技术;需要集群相关配置等等。 为了让生物信息学背景用户更好的体验WDL 的功能。极道科技提供了在单机环境下运行WDL 的工具,以便用户在最小的硬件资源条件下,使用WDL 编写生物信息分析流程。
1. 下载WDL 解析器安装包
用户可通过下方链接下载WDL 解析器
系统环境 | 下载链接 |
---|---|
centos/redhat | xtao-dsl-v1.1-0.x86_64.rpm |
下载后运行以下命令进行安装
## CentOS System ##
sudo rpm -ivh xtao-dsl-v1.1-0.x86_64.rpm
2. 运行WDL 脚本
安装完成后,用户可以通过以下命令运行wdl 脚本。
wdl run demo.fastqtobam.wdl input.json -w /opt/my_output/path
在示例中 demo.fastqtobam.wdl 中为bwa 比对和samtools 比对结果格式转化。其内容如下:
### Achelous Demo pipeline2 ###
### contact us e-mail: di.wu@xtaotech.com ####
workflow fastqtobam{
File fastq1
File fastq2
File Ref
call bwa_mem { input: fastq1 = fastq1, fastq2 = fastq2, Ref = Ref }
call samtobam { input: sam = bwa_mem.sam }
output {
File bam_file = samtobam.bam
}
}
task bwa_mem{
File fastq1
File fastq2
File Ref
command{
/bio/bwa mem ${Ref} -t 5 ${fastq1} ${fastq2} > toy.sam
}
output {
File sam = "toy.sam"
}
}
task samtobam{
File sam
command {
/bio/samtools view -bS ${sam} -o toy.bam
}
output {
File bam = "toy.bam"
}
}
input.json 文件中记录的程序运行相关参数,在此示例中,input.json 内容如下:
{
"fastqtobam.fastq1" : "/Bioinformatics-pipeline/demo-dataset/demo-reads/demo.r1.fq",
"fastqtobam.fastq2" : "/Bioinformatics-pipeline/demo-dataset/demo-reads/demo.r2.fq",
"fastqtobam.Ref" : "/Bioinformatics-pipeline/demo-dataset/example_ref/example_genome.fa"
}
注意:
- 由于该wdl 脚本的运行环境为单机,因此使用的软件(如:bwa、samtools)需要预先由用户自行安装。
- 流程运行于本地环境,因此于集群环境不同,无需设置wdl 语法中
task
的runtime
- 其中 -w 参数指定输出结果目录,如果没有指定,wdl 程序会自动输出至系统
/opt/workflow
下
3. 结果查看
任务完成后,用户可进入目录对结果进行查看
foo@local#:cd /output/path
foo@local#:ls -R ./
boltstore.db fastqtobam-fastqtobam.bwa_mem fastqtobam-fastqtobam.samtobam
./fastqtobam-fastqtobam.bwa_mem:
stderr stdout toy.sam
./fastqtobam-fastqtobam.samtobam:
stderr stdout toy.bam
4. 注意事项
- WDL 解析器对wdl 语法目前完整支持,但是由于用户在单机环境下,计算资源有限,因此计算资源需求较大任务运行应采用Achelous 进行投递。
- 用户也可进入Docker 容器运行wdl 进行相关操作,以保持系统的稳定。