gpt4 book ai didi

蛇形定义文件夹作为输出

转载 作者:行者123 更新时间:2023-12-03 21:21:19 28 4
gpt4 key购买 nike

我尝试使用snakemake运行prokka并统治所有。在后者中,我定义了 prokka 将生成的所有输出文件夹以写入结果。 Prokka 需要提供一个文件夹作为输出而不是文件。

我所拥有的简化版本在这里:

PATIENTID_ls = range(2)
rule all:
input:
expand("results_{subjectID}_outputfolder",subjectID=PATIENTID_ls),

rule prokka:
input:
"contigs/subject_{subjectID}/contigs.fasta",
output:
"results/subject_{subjectID}_outputfolder",
shell:
"prokka --cpus 1 --proteins ../GCF_000009645.1_ASM964v1_genomic.gbff --outdir {output} --prefix contigs500_anno9ref {input} "

运行时:
$snakemake -p
Building DAG of jobs...
MissingInputException in line 2 of Snakefile:
Missing input files for rule all:
results_1_outputfolder
results_0_outputfolder

但是,当明确指定输出时,它可以工作:
snakemake -p results/subject_1_outputfolder

我确信这是我的菜鸟错误,但经过数小时的玩耍后我无法解决问题。非常感谢帮助。
谢谢

最佳答案

您的示例有一些问题,因为您的 rule all输出文件与您的 rule prokka 不匹配输出文件。

但是,实现您想要做的事情的一种方法是使用 params指定输出目录并将其用作标志 --outdir {params.outdir} 的参数.

一个类似的例子如下所示:

PATIENTID_ls = [1,2]
PREFIX = "contigs500_anno9ref"

rule all:
input:
expand("results_{subjectID}_outputfolder/{prefix}.gff",subjectID=PATIENTID_ls, prefix=PREFIX),

rule prokka:
input:
"contigs/contigs.fasta",
params:
outdir= "results_{subjectID}_outputfolder",
prefix= PREFIX,
output:
"results_{subjectID}_outputfolder/{prefix}.gff",
shell:
"echo '{params.prefix}' > {params.outdir}/{PREFIX}.gff"

您仍然应该在 rule prokka 中指定一个文件作为输出并在 rule all .基于 prokka 上的示例 repo输出文件本质上是 {outdir}/{prefix}.gff .您可以将其指定为 rule all 的输出和 rule prokka在调用命令时从未直接使用它。

或者,即使似乎没有原因,您也可以使用模拟文件来表示规则的完成。

一个例子是:
PATIENTID_ls = [1,2]
rule all:
input:
expand("results_{subjectID}_outputfolder/mockfile.txt",subjectID=PATIENTID_ls),

rule prokka:
input:
"contigs/contigs.fasta",
params:
outdir= "results_{subjectID}_outputfolder",
prefix= "contigs500_anno9ref",
output:
"results_{subjectID}_outputfolder/mockfile.txt",
shell:
"echo '{params.prefix}' && touch {params.outdir}/mockfile.txt"

关于蛇形定义文件夹作为输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53749519/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com