Я пытаюсь запустить код snakemake, используя в качестве входных данных файл .json. При проверке пробного прогона я получил следующую ошибку
InputFunctionException in line 172 of /home/Snakefile_ChIPseq_pe:
KeyError: '130241_1'
Wildcards:
library=130241_1
Это часть кода змейки
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 сначала попытается интерпретировать данное значение как число. Только в случае неудачи он интерпретирует значение как строку. Здесь это не сработает, потому что знак подчеркивания _ интерпретируется как разделитель тысяч.