如何解决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 举报,一经查实,本站将立刻删除。