介绍snakemake

一、从snakemake官网入手

Snakemake是一个基于Python的工作流管理系统,用于构建可重现、可维护、可扩展的数据分析工作流。它可以自动处理输入、输出和参数依赖,可以轻松地将重复的工作流转化为易于维护的代码,同时支持集群作业。具有极高的易用和可扩展性,可让研究人员解放大量时间,从而专注于实际的分析。

Snakemake的安装非常简单,可以使用pip install snakemake来安装。使用前需要确保有相应的Python环境。可以通过’conda install -c bioconda snakemake’也可以安装,同时需要安装必要的工具,如pandas和numpy来数据分析。

pip install snakemake
conda install -c bioconda snakemake

二、snakemake star_input_str

输入文件特殊性是Snakemake鲜有匹敌的优势之一。例如,需要扫描目录中的所有文件,并将它们作为输入,通常使用shell脚本或awk命令进行处理。但是,在Snakemake中,您可以使用“ *”通配符来代替目录名称的任何部分:

rule shell_cmd:
    input:
        "data/control_{replicate}-input.txt",
        "data/mutant_{replicate}-input.txt"
    output:
        "results/{replicate}-output.txt"
    shell:
        "cat {input} | wc -l > {output}"

在这个例子中,它会将包含“ data/control_”和“ data/mutant_”字符串的文件作为输入。它还使用replicate通配符来指定通配符的值。 Snakemake会自动搜索数据目录并使用通配符将所有匹配的输入文件传递到样式表达式中的规则中。

三、snakemake是什么

可以总结一下,snakemake是一个工作流竞赛管理器,可以方便地将重要的流程自动化以及部署到实时环境中。

Snakemake方法的一大优势是它能够帮助编程工程师和数据科学家大大减少流程开发的时间和劳动力。它提供了一个简单而且能够扩展的编程语言,专业地应用于执行生成高质量数据分析流程所需的各种任务。Snakemake还包括了高质量的工具链——包括Python依赖性——以及对非常大的数据分析工作流的支持。

四、snakemake中文文档

Snakemake的中文文档已经很完整了,可以在Snakemake的官网直接找到文档,同时也有相关教程帮助用户更好的使用Snakemake。

https://snakemake.readthedocs.io/en/stable/

五、snakemaker

Snakemaker是一个与Snakemake关联的软件,它是一个基于Web的工作流编写和执行系统,不需要在本地安装Snakemake或者了解Snakemake的用法和复杂性。它让数据科学家和研究人员避免了手动操作的麻烦,可以让他们减少复杂的数据分析工作流的开发时间。

六、snakemake wildcards

通配符是为构建流程而创建的专属语言,通配符是streamline工作流,并实现并发和缩放的重要部分。在Snakemake中,通配符表示为“{name}”形式的字符串。通过这种方式,在Snakemake中创建的规则可以自动推导规则被占据的文件的名称。通配符也使输入和输出文件依赖关系更加清晰明了。 典型的流程工作流是将数据从输入文件中提取出来,并将其转换、标准化并生成图形。在此过程中,对于每个过程,我们需要引用来自其他文件或由其他过程生成的文件。这种输入和输出数据的依赖关系可以通过可编程表达式进行编码。

rule all:
    input:
        "big.output.txt"
        
rule copy:
    input:
        "input.txt"
    output:
        "output.txt"
    shell:
        "cp {input} {output}"
        
rule transform:
    input:
        "output.txt"
    output:
        "transformed.output.txt"
    shell:
        "my-program {input} {output}"
        
rule plot:
    input:
        "transformed.output.txt"
    output:
        "plot.png"
    shell:
        "my-plot-program {input} > {output}"

在此例中,通过all规则以及相应输入和输出文件的声明,说明了所有规则的结束目标。copy规则采用输入文件打印输出文件。因此,对于所有实际文件实现在一个集中位置的目标copy规则具有特殊的指定标记:all。规则transform采用copy.rule的输出文件,而生成新文件transformed。output。最后,plot规则采用transform-rule输出的文件transformed.output,并输出新文件plot. png。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/195649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-02 20:36
下一篇 2024-12-02 20:36

发表回复

登录后才能评论