Chapter 34

RDKitで分子のDescriptorを表示

poclabweb
poclabweb
2022.11.05に更新

2. 分子のDescriptorを表示

1つの分子に対してDescriptorで数字を表示する。

# Descriptorsに入っているものがList形式になっている。
from rdkit.Chem import Descriptors
len(Descriptors.descList)

molファイルから、その分子のTPSAやNumHDonorsを出力してみる。

今回はpubchemで名前からsmilesに変換してRDKitのmolファイルに変換しています。

import pubchempy as pcp
compoud = "quercetine"
pcp_quercetine = pcp.get_compounds(compoud, 'name')
quercetine_smiles = pcp_quercetine[0].isomeric_smiles
mol = Chem.MolFromSmiles(quercetine_smiles)

molをTPSAの値に変換する。

#TPSAの出力
Descriptors.TPSA(mol)

molをHBDの値に変換する。

#HBDの出力
Descriptors.NumHDonors(mol)

複数分子を読み込んだデータフレームにDescriptorを追加

前回、google driveに保存したsdfファイルからpandasのデータに変換したものを再度使用する。

from google.colab import drive
drive.mount('/content/drive')
from rdkit.Chem import PandasTools
df = PandasTools.LoadSDF('/content/drive/MyDrive/data/PubChem_TCI_phenol_records.sdf')

TPSAの追加

df["TPSA"] = df["ROMol"].map(Descriptors.TPSA)

MolLogPの追加

df["MolLogP"] = df["ROMol"].map(Descriptors.MolLogP)

qedの追加

df["qed"] = df["ROMol"].map(Descriptors.qed)

複数分子を読み込んだデータフレームにDescriptorを全て追加

for i, j in Descriptors.descList:
    df[i] = df["ROMol"].map(j)