次のファイルがあり、snakemake を使用して自動的に処理を適用したいとします。
test_input_C_1.txt
test_input_B_2.txt
test_input_A_2.txt
test_input_A_1.txt
次のスネークexpand
ファイルは、潜在的な最終結果ファイルをすべて決定するために使用します。
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}
"""
上記のスネークファイルを実行すると、次のエラーが発生します。
MissingInputException in line 4 of /tmp/Snakefile:
Missing input files for rule make_output:
test_input_B_1.txt
このエラーの理由は、内部で をexpand
使用itertools.product
してワイルドカードの組み合わせを生成しているためです。そのうちのいくつかはたまたま不足しているファイルに対応しています。
望ましくないワイルドカードの組み合わせを除外するには?