snakemake:为输入和输出文件使用不同的文件夹

snakemake: Use different folders for input and output files

这很可能是一个非常基本的问题,但我无法在任何地方找到它的记录。

rule all:
    input:
        "fasta_file.fna"
    output:
        "headers.txt"
    shell:
        "grep "^>" {input} > {output}"

我想 运行 为一组不一定位于同一文件夹中的文件执行此操作。有没有办法提供来自另一个目录的输入文件名作为命令(或配置文件)?

好吧没关系,这可能确实不是一个聪明的问题。

rule all:
    input:
        "input/{sample}.fna"
    output:
        "output/{sample}_headers.txt"
    shell:
        "grep "^>" {input} > {output}"

这样我就可以 运行 为我的目标文件制作 snakemake,比如 snakemake output/A1_headers.txt,或者在我的输入序列上构建一个 for 循环。