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 (二重結合) を取ることができます
編集#2:これは、私が話していることを視覚化するのに役立つかもしれません
from indigo_renderer import *
renderer = IndigoRenderer(indigo)
renderer.renderToFile(mol,"mol.png")
編集#3:私は化学者ではないので、いくつかの概念が間違っている可能性があります