Как не обновлять обновленные файлы с помощью Snakemake - PullRequest
1 голос
/ 28 июня 2019

Даже если выходные файлы уже здесь, Snakemake хочет повторно выполнить весь мой конвейер только потому, что я изменил один из первых выходных файлов.

Я выяснил, запустив Snakemake с "np --reason": причина: входные файлы обновлены другим заданием: Mapping / col.sorted.bam

Как я могу заставить Snakemake не перезапускать этот файл обновления?

Спасибо в

Ответы [ 2 ]

1 голос
/ 28 июня 2019

В дополнение к ответу Эрика см. Также флаг древний , чтобы игнорировать временные метки во входных файлах.

Также обратите внимание, что команда 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 
1 голос
/ 28 июня 2019

Вы можете использовать опцию --touch, чтобы пометить их до даты:

- touch, -t
Touch выходные файлы (помечать их как актуальные, не меняя их)вместо запуска своих команд.Это используется, чтобы притвориться, что правила были выполнены, чтобы обмануть будущие вызовы змеиного мастера.Сбой, если файл еще не существует.

Помните, что это затронет все ваши файлы и, таким образом, изменит метки времени, чтобы привести их в порядок.

...