我注意到我的备份 rsync 脚本花费了相当长的时间从.snakemake/metadata
文件夹中复制具有随机名称的内容。
这些文件是做什么用的?
在snakemake 运行完成后我可以安全地擦除它们吗,或者它们是snakemake 正确执行下一次运行所必需的?
更一般地说,是否有一些关于snakemake 在.snakemake
文件夹中创建的文件的文档?
我注意到我的备份 rsync 脚本花费了相当长的时间从.snakemake/metadata
文件夹中复制具有随机名称的内容。
这些文件是做什么用的?
在snakemake 运行完成后我可以安全地擦除它们吗,或者它们是snakemake 正确执行下一次运行所必需的?
更一般地说,是否有一些关于snakemake 在.snakemake
文件夹中创建的文件的文档?
来自Snakemake 的创建者Johannes Koster的评论:
[.snakemake/ 目录] 用于跟踪 (a) 每个文件的 version 关键字的值,(b) 每个文件的规则实现,以便在调用 snakemake 时通知用户 - -概括。
来自Google Group的相关评论:
一般来说,如果没有运行的 Snakemake 实例并且您确定所有现有的输出文件都是完整的,则删除整个 .snakemake 目录是安全的。它仅包含数据来源信息(例如,跟踪代码输入文件或参数更改[以确定是否应重新运行工作流])。您可能希望保留 .snakemake/conda,因为它包含工作流程中使用的 conda 环境。
.snakemake/
编辑:要在管道成功执行后自动删除目录,onssuccess
可以使用钩子:
import shutil
onsuccess:
shutil.rmtree(".snakemake")
现在的老问题并没有真正回答它......既然你提到了,你可以使用该选项rsync
跳过.snakemake
目录,例如:--exclude
rsync ... --exclude='.snakemake' source/ dest/