You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snakemake中如何正确读取配置文件定义规则输入

报错原因

Snakemake规则的input块识别命名输入时,需要接收展开的键值对结构。直接写入config["inputs"]传入的是完整字典对象,会被判定为单个无名称的位置参数输入,Snakemake不会自动解析字典内部的labs、demo键,因此触发输入文件缺失报错。

实现方法
  • 先在Snakefile文件最顶部加载你的JSON配置文件:
# 声明配置文件路径,放在Snakefile起始位置
configfile: "config.json"
  • 修改规则的input块,用Python的双星号解包符**展开配置中的inputs字典,即可完整保留配置里的原有键名,不需要调整JSON配置的结构:
rule test:
   input:
     **config["inputs"]
   output:
     "outputs/output.txt"
   script:
     "programs/myprogram.py"
效果说明
  • 改完后输入项的命名和硬编码时完全一致,在myprogram.py里可以直接通过snakemake.input.labs、snakemake.input.demo读取对应路径
  • 后续所有输入路径的增删修改只需要调整config.json文件,不需要改动规则代码
  • 如果需要在规则里额外加其他输入项,只要保证自定义输入的键名和配置里的键名不冲突即可,写法示例:
rule test:
   input:
     other_input = "data/other.csv",
     **config["inputs"]
   output:
     "outputs/output.txt"
   script:
     "programs/myprogram.py"

内容的提问来源于stack exchange,提问作者Kieran Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 13:27:25