7

我注意到我的备份 rsync 脚本花费了相当长的时间从.snakemake/metadata文件夹中复制具有随机名称的内容。

这些文件是做什么用的?

在snakemake 运行完成后我可以安全地擦除它们吗,或者它们是snakemake 正确执行下一次运行所必需的?

更一般地说,是否有一些关于snakemake 在.snakemake文件夹中创建的文件的文档?

4

2 回答 2

8

来自Snakemake 的创建者Johannes Koster的评论:

[.snakemake/ 目录] 用于跟踪 (a) 每个文件的 version 关键字的值,(b) 每个文件的规则实现,以便在调用 snakemake 时通知用户 - -概括。

来自Google Group的相关评论:

一般来说,如果没有运行的 Snakemake 实例并且您确定所有现有的输出文件都是完整的,则删除整个 .snakemake 目录是安全的。它仅包含数据来源信息(例如,跟踪代码输入文件或参数更改[以确定是否应重新运行工作流])。您可能希望保留 .snakemake/conda,因为它包含工作流程中使用的 conda 环境。

.snakemake/编辑:要在管道成功执行后自动删除目录,onssuccess可以使用钩子:

import shutil
onsuccess:
    shutil.rmtree(".snakemake")
于 2017-08-10T12:53:00.310 回答
0

现在的老问题并没有真正回答它......既然你提到了,你可以使用该选项rsync跳过.snakemake目录,例如:--exclude

rsync ... --exclude='.snakemake' source/ dest/
于 2018-11-10T14:58:18.127 回答