🔖

rdkitで芳香族性などについて

2022/12/01に公開

RDKitでは、芳香族性などの情報を得ることができる。

芳香族性とは環状共役(共 鳴)系を持ち、その共役に関与する電子の数が 4n+2 個の 2 つの条件を同時に満たすもの。
代表的なものとしてベンゼンがあります。rdkitでは、どの原子が芳香族性を有しているかなどの情報を得ることができます。

本家のサイトの芳香族性についての解説は、こちらです。

https://www.rdkit.org/docs_jp/The_RDKit_Book_jp.html
こちらの説明の補足として試したコードを共有します。

google colabolatoryで試したコードを共有します。

https://drive.google.com/file/d/1sK33P2wiK_5VjY4DHy5oRG9LX1TqeeNI/view?usp=sharing

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

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