Как использовать расширение в snakemake, когда некоторые конкретные комбинации символов подстановки не желательны?

Предположим, у меня есть следующие файлы, к которым я хочу применить некоторую обработку автоматически, используя snakemake:

test_input_C_1.txt
test_input_B_2.txt
test_input_A_2.txt
test_input_A_1.txt

Следующее использование snakefileexpand чтобы определить все возможные файлы окончательных результатов:

rule all:
    input: expand("test_output_{text}_{num}.txt", text=["A", "B", "C"], num=[1, 2])

rule make_output:
    input: "test_input_{text}_{num}.txt"
    output: "test_output_{text}_{num}.txt"
    shell:
        """
        md5sum {input} > {output}
        """

Выполнение приведенного выше файла snakefile приводит к следующей ошибке:

MissingInputException in line 4 of /tmp/Snakefile:
Missing input files for rule make_output:
test_input_B_1.txt

Причина этой ошибки в том, чтоexpand использованияitertools.product под капотом, чтобы генерировать подстановочные комбинации, некоторые из которых соответствуют отсутствующим файлам.

Как отфильтровать нежелательные комбинации символов?

Ответы на вопрос(1)

Ваш ответ на вопрос