🔖
rdkitで光学異性体の判定や近傍原子のCIPランクなどについて
RDKitで不斉点の情報を得ることができる。
- どこの位置の原子が不斉点の情報
- 不斉点の近傍の原子のCIPランクなどの情報
について調べました。
CIP則などについては、以下のページなどを御覧ください。
ライブラリーのインストールなど
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