目次
目的
- Molオブジェクトを描写するときに、atom indexなどの好きな情報を一緒に表示する方法をまとめる
- atomLabel, atomNote, molAtomMapNumber プロパティの違いを理解する
コード
RDKitのatom propertyにatomLabel, atomNote, molAtomMapNumberがあり、これらを設定することでMolオブジェクトと一緒に好きな情報を描写できます。
- atomLabel: 原子の位置が入力値に置き換わる。
- atomNote: 原子の上下に入力値が描写される。
- molAtomMapNumber: 原子シンボルの横に入力値が描写される。
from rdkit import Chem
from rdkit.Chem import Draw
mol_label= Chem.MolFromSmiles("CC(=O)NC")
mol_note= Chem.MolFromSmiles("CC(=O)NC")
mol_map= Chem.MolFromSmiles("CC(=O)NC")
# 3種類のpropertyをセット
for atom in mol_label.GetAtoms():
atom.SetProp("atomLabel", str(atom.GetIdx()))
for atom in mol_note.GetAtoms():
atom.SetProp("atomNote", str(atom.GetIdx()))
for atom in mol_map.GetAtoms():
atom.SetProp("molAtomMapNumber", str(atom.GetIdx()))
# Label(左), Note(中), Map(右)
Draw.MolsToGridImage([mol_label, mol_note, mol_map], molsPerRow=3, subImgSize=(200,200))
これを利用して、ほかの情報(電荷など)も描写することができる。
また、atomLabelとatomNoteは数字以外も出力できる。(おそらく、日本語は不可)
mol_label= Chem.MolFromSmiles("CC(=O)NC")
mol_note= Chem.MolFromSmiles("CC(=O)NC")
# 3種類のpropertyをセット
for atom in mol_label.GetAtoms():
atom.SetProp("atomLabel", "abcd")
for atom in mol_note.GetAtoms():
atom.SetProp("atomNote","abcd")
Draw.MolsToGridImage([mol_label, mol_note], molsPerRow=2, subImgSize=(200,200))
終わり。