Ich benutze Snakemake, um eine Pipeline zu entwickeln. Ich versuche, symbolische Verknüpfungen für jede Datei in einem Verzeichnis zu einem neuen Ziel zu erstellen. Ich weiß nicht im Voraus, wie viele Dateien es gibt, also versuche ich die dynamische Ausgabe zu verwenden.dynamische Ausgabe in Snakemake
rule source:
output: dynamic('{n}.txt')
run:
source_dir = config["windows"]
source = os.listdir(source_dir)
for w in source:
shell("ln -s %s/%s source/%s" % (source_dir, w, w))
Dies ist der Fehler, den ich bekommen:
WorkflowError: „. Zielregeln Platzhalter enthalten darf nicht Bitte geben konkrete Dateien oder eine Regel ohne Platzhalter“
Was ist das Problem?
Ich habe noch nie 'dynamic' probiert, aber die Beispiele in der Dokumentation haben eine andere Art der Verwendung als das, was Sie tun: http://snakemake.readthedocs.io/en/stable/snakefiles/rules.html # dynamische Dateien. Insbesondere gibt es eine treibende 'all'-Regel, die das dynamische Zeug als Eingabe hat. Hast du eine solche Regel? – bli