微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Snakemake根据配置执行规则

如何解决Snakemake根据配置执行规则

我希望能够编写工作流程,以便我可以选择要在config.json文件中运行的可选规则。例如,如果我有一个包含2条规则的Snakefile,即rule_a和rule_b,每个规则具有相同的输入但输出不同:

rule_a:
  input: input.txt
  output: out_a.txt
  run: ...

rule_b:
  input: input.txt
  output: out_b.txt
  run: ...

我在json文件中具有以下配置:

{
"run_a": "T","run_b": "F"
}

如何编写Snakefile,以便在这种情况下只运行rule_a而忽略rule_b?

解决方法

由于python可以在snakemake脚本中使用,因此您可以使用python代码来标识需要创建的文件。

配置文件config.json

{
    "run_a": true,"run_b": false
}

Snakefile

configfile: "config.json"

if config['run_a']:
    target = 'out_a.txt'
elif config['run_b']:
    target = 'out_b.txt'


rule all:
    input:
        target

rule a:
  input: 'input.txt'
  output: 'out_a.txt'
  shell:
    "touch {output}"

rule b:
  input: 'input.txt'
  output: 'out_b.txt'
  shell:
    "touch {output}"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。