6

最初に、LETTERS x NUMS の組み合わせに対して 4 つのファイルを生成し、次に NUMS を要約して、LETTERS の要素ごとに 1 つのファイルを取得しようとしています。

LETTERS = ["A", "B"]
NUMS = ["1", "2"]


rule all:
    input:
        expand("combined_{letter}.txt", letter=LETTERS)

rule generate_text:
    output:
        "text_{letter}_{num}.txt"
    shell:
        """
        echo "test" > {output}
        """

rule combine text:
    input:
        expand("text_{letter}_{num}.txt", num=NUMS)
    output:
        "combined_{letter}.txt"
    shell:
        """
        cat {input} > {output}
        """

このスネークファイルを実行すると、次のエラーが発生します。

WildcardError in line 19 of /tmp/Snakefile:
No values given for wildcard 'letter'.
  File "/tmp/Snakefile", line 19, in <module>

パーシャルexpandは不可のようです。の制限expandですか?もしそうなら、どうすれば回避できますか?

4

3 に答える 3

3

実際、 で中括弧を無視したい場合は、中括弧をエスケープする必要がありますexpand。に依存しているstr.formatため、 から までのすべての規則がformat適用さexpandれます。

于 2016-11-07T09:51:28.327 に答える