Snakemake SyntaxError: No rule keywords allowed after run/shell/script/wrapper/cwl in rule

Snakemake SyntaxError: No rule keywords allowed after run/shell/script/wrapper/cwl in rule

我的 samtools_dup 规则有问题。

"/data/mypipeline.smk 的第 201 行出现语法错误: 在规则 samtools_dup 中的 run/shell/script/wrapper/cwl 之后不允许使用任何规则关键字。 (mypipeline.smk, 第 201 行)".

如果我 google 错误,我发现有人说,在他们的代码中,他可能将 "log:" 放在 "shell:" 之后(并且 shell 应该是每个规则中的最后一件事),但在我的代码中情况并非如此。在许多其他论坛中,我看到有人 post 正在回复它,但没有记录任何答案。我不确定这个错误还能在哪里......有什么想法吗?谢谢 !

这里我post代码给大家看看

dup_fun="rmdup"

# Mark or remove duplicates with Samtools
if ( mrDup == "mark" or mrDup == "rm" ):
    rule samtools_dup:
        input: f'{bamDir}' + '/{sample}_sort.bam')
        params: fun = dup_fun
        output: protected(f'{dupDir}' + "/" + f'{mrDup}dup.bam')
        shell: "samtools {params.fun} -s {input} {output}"

我在您的代码段中看到一个语法错误:input 部分中有一个右括号没有左括号:

input: f'{bamDir}' + '/{sample}_sort.bam')
                                         ^ where is the opening bracket?

您的文件中可能还有其他语法错误,但您肯定只提供了其中的一小部分。