You need to enable JavaScript to run this app. snakemake报positional argument follows keyword argument错误排查
优惠活动
大模型
产品
解决方案
定价
更多

snakemake报positional argument follows keyword argument错误排查

报错原因与修复方案

核心错误根因

你收到的语法错误完全来自rule prokka的output段定义不符合Python语法规范:Python要求所有位置参数必须放在关键字参数之前,你在output里第一个子项用了关键字命名faa = xxx,第二个子项直接写directory(xxx)没有加关键字,就触发了「位置参数跟在关键字参数后」的语法报错。

其他隐含错误

除了直接的语法错误,你的rule prokka还有三处隐含逻辑错误:

  • output段第二个目录路径的通配符多写了一个闭合大括号:{sample_id}}多了一个},会导致通配符识别失败
  • shell命令中--outdir参数直接传了{output},会把所有输出项(包括faa蛋白文件)都传给路径参数,实际只需要传入输出目录即可
  • shell命令中错误使用了{params.contigs},但你没有定义params.contigs,应该调用输入文件{input.contigs}

修正后的完整rule prokka代码

rule prokka:
    output:
        faa = "{sample_id}/annotation/prokka/{sample_id}.faa",
        outdir = directory("{sample_id}/annotation/prokka/{sample_id}")
    input: 
        contigs = rules.skesa.output.contigs
    shell:
        "prokka --outdir {output.outdir} --prefix {wildcards.sample_id} {input.contigs}"

验证方法

修改后重新执行snakemake -np即可正常通过语法检查。

内容的提问来源于stack exchange,提问作者Forrest Vigor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 11:27:00