File 如何不使用Snakemake重新规则更新的文件

File 如何不使用Snakemake重新规则更新的文件,file,output,snakemake,File,Output,Snakemake,即使输出文件已经在这里,Snakemake也只想重新执行我的所有管道,因为我修改了第一个输出文件之一 我通过运行带有“np--reason”的Snakemake来了解: 原因:由另一个作业更新的输入文件:Mapping/col.sorted.bam 如何强制Snakemake不重新运行此更新文件 Thank's您可以使用选项--touch将其标记为最新: --触摸,-t 触摸输出文件(将其标记为最新,无需 真正改变他们)而不是运行他们的 命令。这是用来假装规则是正确的 执行,以愚弄未来的调用 毒

即使输出文件已经在这里,Snakemake也只想重新执行我的所有管道,因为我修改了第一个输出文件之一

我通过运行带有“np--reason”的Snakemake来了解: 原因:由另一个作业更新的输入文件:Mapping/col.sorted.bam

如何强制Snakemake不重新运行此更新文件


Thank's

您可以使用选项
--touch
将其标记为最新:

--触摸,-t
触摸输出文件(将其标记为最新,无需 真正改变他们)而不是运行他们的 命令。这是用来假装规则是正确的 执行,以愚弄未来的调用 毒蛇。如果文件尚不存在,则失败


请注意,这将触及您的所有文件,从而修改时间戳以使其恢复顺序。

除了Eric的回答外,还请参见忽略输入文件上时间戳的标志

还要注意,Unix命令
touch
可用于修改现有文件的时间戳,并使其看起来比实际文件旧:

touch --date='2004-12-31 12:00:00' foo.txt 
ls -l foo.txt 
-rw-rw-r-- 1 db291g db291g 0 Dec 31  2004 foo.txt 

是的,事实上,如果OP只有一个文件导致了问题,我建议使用@dariober的unix touch解决方案,指定一个比工作流的下一个输出更早的日期。