Snakemake远程规则重新读取配置文件?

问题描述 投票:0回答:1

我正在使用snakemake(v7.22.0)在集群上执行多个作业。我有几个不同版本的工作流程,有时会并行执行,其中涉及更改配置文件(和其他文件)。我的问题是,如果我正确理解了行为,如果我在某些作业开始在集群上运行之前编辑配置文件,那么它们会在编辑后读取配置文件,并使用与原始工作流程时不同的值创造了工作的人就被创造了。特别是,这会更改工作目录,因此相对路径变得不正确。 我根据作业的标准输出看到这一点,它重申了配置,例如

{'workdir': 'workdir1', 'seeds': ...}

但是对于源自同一 Snakemake 会话的不同作业,我得到了不同的“workdir”值。

这确实是snakemake在远程规则中的行为,还是我弄错了?如果是这样,我可以做什么才能更改配置并仍然从所有远程作业获得一致的结果?在我的场景中使用多个配置文件会导致更多人为错误。

提前致谢!

automation cluster-computing snakemake hpc
1个回答
0
投票

如果不同的工作流程使用不同的配置,我可能会将配置文件拆分为“通用”文件和“工作流程特定”文件。然后,每个版本的工作流程将读取这两个文件。

或者,在配置文件中添加一些条目来指示 Snakemake 使用什么。例如。你的配置文件:

common_option1: foo common_option2: bar workflow_A: workdir: /some/path workflow_B: workdir: /other/path

然后在工作流程文件版本“A”之上:

WORKFLOW = 'workflow_A' workdir = config[WORKFLOW]['workdir']

然后在工作流程文件版本“B”之上:

WORKFLOW = 'workflow_B' workdir = config[WORKFLOW]['workdir']

© www.soinside.com 2019 - 2024. All rights reserved.