snakemake 学习(0)

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进一步访问输入文件。

你可能感兴趣的:(snakemake 学习(0))