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:我不是化学家,所以可能有一些概念错误