Создать вывод на основе измененных входных файлов в Snakemake очень просто:
rule all:
input: [f'out_{i}.txt' for i in range(10)]
rule make_input:
output: 'in_{i}.txt'
shell: 'touch {output}'
rule make_output_parallel:
input: 'in_{i}.txt'
output: 'out_{i}.txt'
shell: 'touch {output}'
В этом случае make_output
будет работать только в тех случаях, когда in_{i}.txt
изменилось.
Но предположим, что 'out_{i}.txt'
не может быть сгенерирован параллельно, и я хочу сгенерировать их за один шаг, например,
rule make_output_one_step:
input: [f'in_{i}.txt' for i in range(10)]
output: [f'out_{i}.txt' for i in range(10)]
shell: 'touch {output}'
Если изменился только один из файлов in_{i}.txt
, мне не нужно восстановить все 10 из них. Как я могу настроить make_output_one_step.output
, чтобы генерировать только необходимые файлы?