Snakemake:在YAML配置文件中指定一个工作目录

时间:2018-07-22 16:28:57

标签: config snakemake

我在YAML配置文件中指定了一个工作目录,以与snakemake一起使用,如下所示:

$> cat config.yaml
workdir: "/home/lina/test_output"
id: 1234

$> cat Snakefile
rule all:
  input:
    data_out = expand("cat_out/{id}_times_two.txt", id = config['id'])

rule double_print:
  input:
    data = expand("data/{id}.txt", id = config['id'])
  output:
    data_out = expand("cat_out/{id}_times_two.txt", id = config['id'])
  shell:
    'cat {input.data} {input.data} > {output.data_out}'

$> snakemake --configfile=config.yaml

但是,一旦我运行了snakemake命令,输出就会在snakefile所在的目录中生成。我的snakefile能够利用我在配置文件中指定的id参数,因此它能够读取配置文件并至少解释id参数。

我应该如何修改配置文件或snakemake命令以确保输出以我指定的workdir结尾?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要add workdir to the snakefile,而不是配置。

但是您可以动态设置它,因此在snakefile中输入:

autowire()