Snakemake-输入函数异常

时间:2019-05-18 21:48:27

标签: snakemake

我正在尝试使用.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首先将尝试将给定值解释为数字。仅当失败时,它将值解释为字符串。在这里,它不会失败,因为下划线_被解释为千位分隔符。

1 个答案:

答案 0 :(得分:0)

我的猜测是在您的json文件中未引用库ID。例如。你有这个:

{
    "lib_input": {1234_1: "input.txt"}
}

代替:

{
    "lib_input": {"1234_1": "input.txt"}
}

还是库130241_1根本不在json中?