Python 访问下标中的snakemake变量

Python 访问下标中的snakemake变量,python,snakemake,Python,Snakemake,我有一个Snakemake工作流,其中一个python文件中的函数在另一个python文件中调用,类似于以下内容: 蛇形文件 规则测试: 输入: “input.file” 输出: “输出文件” 脚本: “test_script.py” ###script.py 从测试下标导入运行测试 如果名称=“\uuuuu main\uuuuuuuu”: input_file=snakemake.input[0] 运行测试() ###下标.py def run_测试(): out\u file=snakema

我有一个Snakemake工作流,其中一个python文件中的函数在另一个python文件中调用,类似于以下内容:

蛇形文件 规则测试: 输入: “input.file” 输出: “输出文件” 脚本: “test_script.py” ###script.py 从测试下标导入运行测试 如果名称=“\uuuuu main\uuuuuuuu”: input_file=snakemake.input[0] 运行测试() ###下标.py def run_测试(): out\u file=snakemake.output[0] 打开(输出文件“w”)作为f: f、 写入(“测试”) 现在,当我执行工作流时,可以从
script.py
中访问
snakemake.input
变量,但我无法访问
subscript.py
中的
snakemake.output
变量。解决方法是将所有必需的snakemake变量传递给
run\u test()
函数,但这很快就会变得复杂


有更方便的方法吗?

方便的方法是使脚本不可知于Snakemake。这些脚本应该从任何shell调用。在这种情况下,您需要提供文件名作为命令行参数:

### Snakefile
rule test:
    input:
        "input.file"
    output:
        "output.file"
    shell:
        "test_script.py {input} {output}"

谢谢你的回答!但是,我希望可以避免将所有内容传递到整个层次结构中,特别是在设置几个snakemake
参数时。