用python计算原子的价数

时间:2013-07-19 15:42:35

标签: python modeling

可以在此处找到indigo模块的文档

http://ggasoftware.com/opensource/indigo/api#inputoutput

因此,例如,如果我有一个SMILES字符串的分子对象,例如"[C](=[O])",我希望计算每个原子的化合价,例如这里所需的输出为[atom=C, unbound_electrons=2],[atom=O, valency=0]

如果我考虑原子"[C]" 任何人都可以解释为什么此代码打印[atom=C, unbound_electrons=0]不是[atom=C, unbound_electrons=4]

from indigo import *
indigo = Indigo()

mol=indigo.loadMolecule("[C]")

print(mol.grossFormula(),"\n")

for atom in mol.iterateAtoms():
        print([atom.symbol(),atom.radicalElectrons()])

编辑:如果我能够与atom.atomicNumber()一起生成原子上键的类型列表,我可以解决这个问题。例如。如果我能说[C]有一个双键我可以把它的原子序数 - 2(第二个壳) - 2(双键)

编辑#2:这对于可视化我正在谈论的内容可能很有用

from indigo_renderer import *
renderer = IndigoRenderer(indigo)
renderer.renderToFile(mol,"mol.png")
编辑#3:我不是化学家,所以可能有一些概念错误

0 个答案:

没有答案