MENU

RDKitでatom indexなどの好きな情報を分子構造と一緒に表示する方法[Tips]

目次

目的

  1. Molオブジェクトを描写するときに、atom indexなどの好きな情報を一緒に表示する方法をまとめる
  2. 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))

終わり。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次