我正在尝试使用.json文件作为输入来运行snakemake代码。在检查空转时,出现了错误
InputFunctionException in line 172 of /home/Snakefile_ChIPseq_pe:
KeyError: '130241_1'
Wildcards:
library=130241_1
这是snakemake代码的一部分
rule findPeaks:
input:
sample = os.path.join(HOMERTAG_DIR, "{library}"),
input = lambda wildcards: os.path.join(HOMERTAG_DIR, config['lib_input'][wildcards.library])
output:
os.path.join(HOMERPEAK_DIR, "{library}.all.hpeaks")
params:
config['homer_findPeaks_params']
shell:
"findPeaks {input.sample} -i {input.input} {params} -o {output}"
“ lib_input”部分缺少输入样本周围的单引号。如何在变量前添加单引号?
库名称也像12345_1、12345_2等,以前从未遇到过此问题,但是第一次我的库名称中带有“下划线”。 Snakemake首先将尝试将给定值解释为数字。仅当失败时,它将值解释为字符串。在这里,它不会失败,因为下划线_被解释为千位分隔符。
答案 0 :(得分:0)
我的猜测是在您的json文件中未引用库ID。例如。你有这个:
{
"lib_input": {1234_1: "input.txt"}
}
代替:
{
"lib_input": {"1234_1": "input.txt"}
}
还是库130241_1根本不在json中?