目的
以下の記述子を理解する。
- MaxEStateIndex
- MinEStateIndex
- MaxAbsEStateIndex
- MinAbsEStateIndex
はじめに
RDKitで計算できる4つのEstate記述子(MaxEStateIndex, MinEStateIndex, MaxAbsEStateIndex, MinAbsEStateIndex)は、単にある分子のEstateIndexの最大値、最小値、絶対値の最大値と最小値を取得しています。そのため、本記事ではEstate indexについて理解することを目的とします。
https://github.com/rdkit/rdkit/blob/master/rdkit/Chem/EState/EState.py
Electrotopological State(EState)
RDKitのEStateは各原子の電気的な状態を表した記述子であり、以下の論文で定義されています。
Lowell H. Hall, Brian. Mohney, and Lemont B. Kier
Journal of Chemical Information and Computer Sciences 1991 31 (1), 76-82
DOI: 10.1021/ci00001a012
概要
- EState(\(S\))は、分子の各原子ごとに計算されます。
- \( S \) は、Intrinsic value(\(I\))とPerturbation term(\( \Delta I \))の和からなります。
つまり、ある原子iについて、
$$
S_i= I_i +\Delta I_i
$$
で計算されます。
Intrinsic value(\( I \))
Intrinsic value(\( I \))は、π電子やlone-pair電子の数から原子の電気的な状態を表現しようとした値です。
以下の式で計算されます。
$$
I= \frac{(2/N)^2 \times \delta^v +1}{\delta} \\
ただし、\delta^v= Z^v – h \\
\delta= \sigma – h
$$
ここで、\( N \)は主量子数、\( Z^v \)は価電子数、\( h \)は、水素原子との結合数、\( \sigma \)はσ軌道電子の個数を表します。
例えば、NH2の場合、\( \delta^v=5-2=3 \)、\( \delta=3-2=1 \)となります。
π電子とσ電子の比によって\( I \)が表現されているので、一般的にπ電子が多くなるほど\( I \)が大きくなります。
分子の+1の意味
分子の+1は、分子をスケーリングしています。
もし、+1がなければCH1, CH2, CH3 のようなケースが全て同じ値になってしまいます。
これを避けるために+1でスケーリングしています。
分子の2/Nの意味
分子の2/Nは、主量子数を用いて\( \delta^v \)の影響を補正しています。例えば、同じ族の酸素原子と硫黄原子では価電子の数が同じです。しかし、第2周期の酸素よりも第3周期の硫黄の方が電気陰性度が小さいです。このような違いを表現するために、2/Nで補正しています。
Perturbation term(\( \Delta I \))
Perturbation term(\(\Delta I \))は、周囲の原子の影響を表した値です。
以下の式で計算されます。
$$
\Delta I= \sum_{j=1}^{N} \frac{I_i – I_j}{r_{ij}^2}
$$
ここで、\( r_{ij} \)はグラフ表現における原子iとj間のエッジの個数を表します。
酢酸メチルのEState を計算してみる
from rdkit import Chem
from rdkit.Chem.EState import EState
MethylAcetate= "CC(=O)OC"
mol= Chem.MolFromSmiles(MethylAcetate)
estate= EState.EStateIndices(mol) # EStateを計算
for i, at in enumerate(mol.GetAtoms()):
prop = str(round(estate[i], 3))
at.SetProp('atomNote',prop)
mol
終わり。