2015-07-16 2 views
0

Я хочу получить отпечатки пальцев, используя смайлики соединений. Я сделал, но проблема в том, что я хочу получить более высокий бит и формат списка, чтобы я мог рассчитать длину списков. В этом случае я просто получаю классы. Любое решение в python с использованием pybel? Я сделал это, но когда я пишу len(fps[0]) я получаю сообщение об ошибкеФингерпринт с использованием модуля python под названием pybel

import pybel 
smiles = ['CCCC', 'CCCN'] 
mols = [pybel.readstring("smi", x) for x in smiles] 
fps = [x.calcfp() for x in mols] 
print fps[0] 
+0

Какую ошибку вы получаете? Вам просто не нужно писать 'len (fps)'? – Falko

+0

У меня есть проблема с установкой OpenBabel. Какая ошибка возникает при этом? Возможно, '__len __()' не определено для 'x.calcfp()' -elements ... – adrianus

+0

Ошибка: объект типа «отпечаток пальца» не имеет len() –

ответ

0

Вы можете использовать функцию Ф.П. для объекта отпечатков пальцев. По умолчанию FP2 отпечатков пальцев рассчитывается, его длина равна 32. Существует код, длина которого выходной и бит-0

import pybel 
smiles = ['CCCC', 'CCCN'] 
mols = [pybel.readstring("smi", x) for x in smiles] 
fps = [x.calcfp() for x in mols] 
print len(fps[0].fp) 
print fps[0].fp[0] 

Результат:

32 
0 
Смежные вопросы