🔖
rdkitで芳香族性などについて
RDKitでは、芳香族性などの情報を得ることができる。
芳香族性とは環状共役(共 鳴)系を持ち、その共役に関与する電子の数が 4n+2 個の 2 つの条件を同時に満たすもの。
代表的なものとしてベンゼンがあります。rdkitでは、どの原子が芳香族性を有しているかなどの情報を得ることができます。
本家のサイトの芳香族性についての解説は、こちらです。
こちらの説明の補足として試したコードを共有します。
google colabolatoryで試したコードを共有します。
ライブラリーのインストールなど
google colabolatoryで試しています。
ライブラリーのインストールと呼び出しは、以下のとおりです。
!pip install rdkit==2022.3.5
from rdkit import Chem
from rdkit.Chem import Draw
芳香族かどうかの確認方法
atom.GetIsAromatic()
で芳香族の原子かどうかを判定できる。
また、
def get_aromatic_from_smiles(smiles):
mol = Chem.MolFromSmiles(smiles)
for atom in mol.GetAtoms():
atom.SetProp('molAtomMapNumber', str(atom.GetIdx()))
print(atom.GetIdx(), atom.GetIsAromatic())
return mol
ベンゼン
基本的なベンゼンを見てみると、
smiles = "C1=CC=CC=C1"
mol = get_aromatic_from_smiles(smiles)
Draw.MolsToGridImage([Chem.MolFromSmiles(smiles), mol])
これを出力すると、全ての原子で芳香族になっている。(原子の番号は、上の右の図を参照)
0 True
1 True
2 True
3 True
4 True
5 True
1,3,5-ヘプタトリエン
この分子は、共役に関与する電子の数が 4n+2 個という条件は満たしていますが、環状という条件を満たしていないので芳香族ではありません。
rdkitでも芳香族とは判定されません。
0 False
1 False
2 False
3 False
4 False
5 False
シクロオクタテトラエン
この分子は、環状共役系ですが、4n+2個という条件をみたしていないので、芳香族ではありません。
rdkitでも芳香族とは判定されません。
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
シクロペンタジエンとシクロペンタジエンアニオン
シクロペンタジエン自体は芳香族性ではありませんが、アニオンになると芳香族性を示します。
0 True
1 True
2 True
3 True
4 True
フラン
ヘテロ原子があっても、芳香族性を示します。
0 True
1 True
2 True
3 True
4 True
ナフタレン
ナフタレンは、全ての原子で報告属性を示します。
0 True
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 True
9 True
スチレン
スチレンの場合には、芳香族の部分と芳香族性ではない部分が判定できます。
0 False
1 False
2 True
3 True
4 True
5 True
6 True
7 True
Discussion