🔖

rdkitで光学異性体の判定や近傍原子のCIPランクなどについて

2022/11/09に公開

RDKitで不斉点の情報を得ることができる。

  • どこの位置の原子が不斉点の情報
  • 不斉点の近傍の原子のCIPランクなどの情報

について調べました。

CIP則などについては、以下のページなどを御覧ください。

https://ja.wikipedia.org/wiki/カーン・インゴルド・プレローグ順位則

ライブラリーのインストールなど

google colabolatoryで試しています。
ライブラリーのインストールと呼び出しは、以下のとおりです。

!pip install rdkit==2022.3.5
from rdkit import Chem
from rdkit.Chem import Draw

S-ValineでRSの判定や不斉点近傍の原子を取得

S-valineで不斉点や、その近傍の原子を取得できるか確認しました。

S_Valine = Chem.MolFromSmiles("CC(C)[C@@H](C(=O)O)N")
mol = S_Valine

for atom in mol.GetAtoms():
    atom.SetProp('molAtomMapNumber', str(atom.GetIdx()))
Draw.MolsToGridImage([mol])

原子の番号なども表示させました。

以下のようにコードを書くと、

Chiral_center = Chem.FindMolChiralCenters(mol)
chiral_center_atom = mol.GetAtomWithIdx(Chiral_center[0][0])
print('Chiral_center: ', Chiral_center, 'Symbol', chiral_center_atom.GetSymbol())
neighbor_atoms = chiral_center_atom.GetNeighbors()
for atom in neighbor_atoms:
  print('AtomID: ', atom.GetIdx(), 'Symbol: ', atom.GetSymbol(), 'CIPRank: ', atom.GetProp('_CIPRank'))

不斉点の情報や近傍の原子、CIPランクなどの情報も得られることがわかります。

同様のことをR-Valineでも行うとR体であることが確認できます。

以下、実行した結果だけを表示させます。

Discussion