RGI 输出文件名与 snakefile 输出文件名不匹配
RGI output filename does not match snakefile output filename
问题是:
名为“RGI”的软件会自动将 .txt
作为后缀附加到输出文件。所以如果我的 sampleID
是 7
。那么实际的RGI输出文件将是7.txt
,这与snakefile规则中定义的输出文件(7
)不同。而snakemake会报Job Missing files after 20 seconds
这样的错误。但是,即使您已经预设了后缀,RGI 仍然会附加 .txt
作为后缀(实际输出文件将看起来像 7.txt.txt
)。
我该如何解决这个问题?
以下是我的部分代码:
rule rgi:
output:
cardTxt = "{sampleId}/annotation/rgi/{sampleId}"
input:
faa = rules.prokka.output.faa,
cardDb = config['rgi']['cardDb']
shell:
"""
rgi load -i {input.cardDb}
rgi main -i {input.faa} -t protein -o {output.cardTxt} --include_loose --clean
"""
在将其传递给 rgi
之前从输出文件名中去除 .txt
前缀。我在这里使用 bash 字符串操作来执行此操作,但您可以通过其他方式执行此操作:
rule rgi:
input:
faa = rules.prokka.output.faa,
cardDb = config['rgi']['cardDb'],
output:
cardTxt = "{sampleID}/annotation/rgi/{sampleID}.txt",
shell:
"""
card=${{{output.cardTxt}%.txt}}
rgi load -i {input.cardDb}
rgi main -i {input.faa} -t protein -o $card --include_loose --clean
"""
(我假设您希望 .txt
成为输出文件名的一部分。即您可以使用 7.txt
)
问题是:
名为“RGI”的软件会自动将 .txt
作为后缀附加到输出文件。所以如果我的 sampleID
是 7
。那么实际的RGI输出文件将是7.txt
,这与snakefile规则中定义的输出文件(7
)不同。而snakemake会报Job Missing files after 20 seconds
这样的错误。但是,即使您已经预设了后缀,RGI 仍然会附加 .txt
作为后缀(实际输出文件将看起来像 7.txt.txt
)。
我该如何解决这个问题? 以下是我的部分代码:
rule rgi:
output:
cardTxt = "{sampleId}/annotation/rgi/{sampleId}"
input:
faa = rules.prokka.output.faa,
cardDb = config['rgi']['cardDb']
shell:
"""
rgi load -i {input.cardDb}
rgi main -i {input.faa} -t protein -o {output.cardTxt} --include_loose --clean
"""
在将其传递给 rgi
之前从输出文件名中去除 .txt
前缀。我在这里使用 bash 字符串操作来执行此操作,但您可以通过其他方式执行此操作:
rule rgi:
input:
faa = rules.prokka.output.faa,
cardDb = config['rgi']['cardDb'],
output:
cardTxt = "{sampleID}/annotation/rgi/{sampleID}.txt",
shell:
"""
card=${{{output.cardTxt}%.txt}}
rgi load -i {input.cardDb}
rgi main -i {input.faa} -t protein -o $card --include_loose --clean
"""
(我假设您希望 .txt
成为输出文件名的一部分。即您可以使用 7.txt
)