Snakemake: динамический + нединамический вывод

У меня есть случай использования, в котором правило генерирует произвольное количество файлов "контрольных точек" и один выходной файл. Например, "example.input" будет производить:

  • example_000.checkpoint
  • example_001.checkpoint
  • ...
  • example_093.checkpoint (произвольное число здесь)
  • example.output (гарантированный не динамический вывод)

Контрольные точки предназначены для перезапуска с этой точки в расчете, но у меня есть дополнительное использование для них. Однако мне нужно только первое (например, example_000.checkpoint) и последнее (например, example_093.checkpoint). Как я могу построить правило так, чтобы мои выводы определялись как:

    rule example:
        input:
            {id}.input
        output:
            non_dynamic = {id}.output
            first = {id}_{first}.checkpoint
            last = {id}_{last}.checkpoint
            # OR
            checkpoints = dynamic({id}_{checkpoint}.checkpoint)

Если я определяю новые символы подстановки, я получаю сообщение об ошибке "Не все выходные файлы примера правила содержат одинаковые символы подстановки". Если я пытаюсь использовать динамический вывод, я получаю сообщение об ошибке "Правило с динамическим выводом может не определять какие-либо не динамические выходные файлы".

Заранее благодарю за любую помощь!

0 ответов

Другие вопросы по тегам