程序写入 /tmp 时的 Snakemake 影子规则

Snakemake shadow rule when program writes to /tmp

我正在使用 Snakemake 来 运行 defense-finder 程序。该程序在 /tmp/defense-finder 中创建并覆盖通用临时文件,即文件名不包含唯一标识符。当 运行 在不同输入文件的不同内核上设置我的规则时,Snakemake 由于 /tmp/defense-finder.

中的冲突而崩溃

当不同的作业写入工作目录中的相同文件时,Shadow rules 似乎可以提供帮助。当程序写入 /tmp 目录时,有没有办法使用 Shadow 规则?

根据@Marmaduke 的评论,文件路径是硬编码的,一个临时的解决方法是强制 snakemake 一次 运行 防御查找器作业,同时允许其他作业 运行平行线。您可以使用 resources 指令执行此操作:

rule defense_finder:
    resources:
        n_defense= 1,
    input: ...
    output: ...
    shell: ...

然后 运行 与:

snakemake --resources n_defense=1 -j 10 ...