1. snkemake介绍
Snakemake工作流管理系统是一种创建可重复和可扩展的数据分析的工具。工作流程通过人类可读的基于Python的语言进行描述。它们可以无缝扩展到服务器,集群,网格和云环境,而无需修改工作流定义。最后,Snakemake工作流程可能需要描述所需的软件,这些软件将自动部署到任何执行环境。
2. 快速示例
Snakemake工作流本质上是由声明性代码扩展的Python脚本,用于定义规则。规则描述了如何从输入文件创建输出文件。
rule targets:
input:
"plots/dataset1.pdf",
"plots/dataset2.pdf"
rule plot:
input:
"raw/{dataset}.csv"
output:
"plots/{dataset}.pdf"
shell:
"somecommand {input} {output}"
- 与GNU Make类似,您可以根据顶部的伪规则指定目标。
- 对于每个目标文件和中间文件,您可以创建规则,以定义如何从输入文件创建它们。
- Snakemake通过匹配文件名来确定规则依赖性。
- 输入和输出文件可以包含多个命名通配符。
- 规则可以使用shell命令,普通Python代码或外部Python或R脚本来从输入文件创建输出文件。
- Snakemake工作流程可以在工作站,集群,网格和云中轻松执行,无需修改。作业调度可以受到任意资源的约束,例如可用的CPU内核,内存或GPU。
- Snakemake可以使用Conda或Singularity自动部署工作流所需的软件依赖性。
- Snakemake可以使用Amazon S3,Google Storage,Dropbox,FTP,WebDAV,SFTP和iRODS访问输入或输出文件,并通过HTTP和HTTPS进一步访问输入文件。
网友评论