Snakemake

https://img.shields.io/conda/dn/bioconda/snakemake.svg?label=Bioconda https://img.shields.io/pypi/pyversions/snakemake.svg https://img.shields.io/pypi/v/snakemake.svg https://quay.io/repository/snakemake/snakemake/status https://circleci.com/bb/snakemake/snakemake/tree/master.svg?style=shield https://img.shields.io/badge/stack-overflow-orange.svg https://img.shields.io/twitter/follow/johanneskoester.svg?style=social&label=Follow

Snakemake工作流程管理系统是为创建 可重复和可扩展的 数据分析的工具。工作流程使用人类可读的基于Python的语言描述。 它们可以无缝扩展到服务器,集群,网格和云环境,而无需修改工作流程定义。 最后,Snakemake工作流程可能包含所需软件的说明,这些软件将自动部署到任何执行环境。

快速上手

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可以使用 CondaSingularity 自动部署工作流城所需的软件依赖;
  • Snakemake可以使用Amazon S3,Google Storage,Dropbox,FTP,WebDAV,SFTP和iRODS访问输入或输出文件,也可通过HTTP和HTTPS访问输入文件。

新手入门

获得关于Snakemake初步印象,可参阅 简介幻灯片 或观看 演示视频 。 有关Snakemake的新闻通过 Twitter 发布。 学习Snakemake,请参照 Snakemake Tutorial ,然后参阅 FAQ

支持

相关资源

Snakemake Wrappers Repository
Snakemake Wrapper Repository是一个可重复使用的包装器集合,可以快速使用Snakemake规则和工作流程中的流行工具。
Snakemake Workflows Project
该项目提供了一系列高质量的模块化和可重复使用的工作流程。 提供的代码还应作为如何使用Snakemake构建生产工作流程的最佳实践。 邀请每位用户contribute。
Snakemake Profiles Project
该项目为各种执行环境提供Snakemake配置文件。 如果找不到,请考虑contribute。
Bioconda
通过定义使用的软件版本和提供二进制文件,Snakemake可以使用Bioconda创建完全可重现的工作流程。

使用Snakemake的文献

下文是使用Snakemake进行分析的 不完整列表。请考虑添加自己的相应文献。