Snakemake 在命令行上从嵌套 config.yaml 文件指定配置参数
Snakemake specifying configuration parameter from nested config.yaml file on the command line
假设我有一个 config.yaml 文件,如下所示
results: "results/"
reference_database: "data/zymogen_alignment_file.fasta"
basecall:
perform_basecall: True
configuration: "dna_r9.4.1_450bps_hac.cfg"
我可以访问我的 Snakefile 中的所有参数,例如 config["results"]
、config["basecall"]["perform_basecall"]
等
我可以轻松覆盖 results
和 reference_database
参数
snakemake --cores all --config results="/my/new/results/path" reference_database="/my/new/reference/database"
但是,我似乎无法覆盖 basecall
下的参数。我尝试了以下
snakemake --cores all --config basecall["perform_basecall"]=False
但这会导致错误:Invalid config definition: Config entry must start with a valid identifier.
是否可以覆盖嵌套配置文件中的参数?
感谢您的帮助!
尝试使用 JSON 对象语法。在这种特定情况下,类似于
snakemake -j all --config basecall='{perform_basecall: False}'
对此进行测试,它似乎保留了对象的其余部分(即 configuration
值)并且只是覆盖了 perform_basecall
值。
假设我有一个 config.yaml 文件,如下所示
results: "results/"
reference_database: "data/zymogen_alignment_file.fasta"
basecall:
perform_basecall: True
configuration: "dna_r9.4.1_450bps_hac.cfg"
我可以访问我的 Snakefile 中的所有参数,例如 config["results"]
、config["basecall"]["perform_basecall"]
等
我可以轻松覆盖 results
和 reference_database
参数
snakemake --cores all --config results="/my/new/results/path" reference_database="/my/new/reference/database"
但是,我似乎无法覆盖 basecall
下的参数。我尝试了以下
snakemake --cores all --config basecall["perform_basecall"]=False
但这会导致错误:Invalid config definition: Config entry must start with a valid identifier.
是否可以覆盖嵌套配置文件中的参数?
感谢您的帮助!
尝试使用 JSON 对象语法。在这种特定情况下,类似于
snakemake -j all --config basecall='{perform_basecall: False}'
对此进行测试,它似乎保留了对象的其余部分(即 configuration
值)并且只是覆盖了 perform_basecall
值。