RDKit ChEMBL を使ってみる


RDKit

RDKitインストールに関する参考
https://future-chem.com/rdkit-intro/

RDKitで化学構造を取得する

試しに神経膠腫(グリオーマ)の投薬治療で使われるテモゾロミドを取得してみます。

分子式:$C_6H_6N_6O_2$
分子量:194.15

https://www.info.pmda.go.jp/go/pack/4219004F1025_1_03/

from __future__ import print_function
from rdkit import Chem

# テモゾロミド
m2 = Chem.MolFromSmiles('O=C(C1=C(N2C=N1)N=NN(C)C2=O)N')
m2

ちょっと回転がかかってますが、同じものが取得できました。

SMILESについて

RDKitでは分子式ではなく、SMILESという表記に乗っ取って出力されるようです。
構造式から表記も辿れなくもないのですが、今回は分子式がわかっていたので、以下のSMILES検索サイトで分子式からSMILESを出力してもらいました。

自分で化合物をお絵かきして、オリジナルのものを作ってSMILEを取得することも可能です。
創薬的な観点からすると、既存のものを表示するよりも、こっちの方が価値があるのかもしれません。

SDFで取得

SDFというのは「多数の構造式を一纏め」にしたテキストファイル。
テキストファイルゆえ、軽いので、試薬カタログや計算化学のデータ受渡しに有用らしいです。

from rdkit.Chem import AllChem
AllChem.Compute2DCoords(m2)
print(Chem.MolToMolBlock(m2))

私は解読不能です。

ChEMBL

ChEMBLという公共データベースからデータを取得する。

https://www.ebi.ac.uk/chembl/

ChEMBLでTemozolomideで検索をかけると、対応したIDが見つかります。
テモゾロミドの場合は CHEMBL810 がID。

# pip install chembl_webresource_client
from chembl_webresource_client.new_client import new_client

# moleculeの初期化
molecule = new_client.molecule

# CHEMBL810のデータをChEMBLから取得する
m1 = molecule.get('CHEMBL810')
m1

dict型で大量のテモゾロミドに関する情報が得られます。

dictの中から欲しい指標を取得するのですが、今回は化合物名、分子量、極性、SMILESを取得します。

QED / Quantitative Estimate of Drug-likeness

という『薬らしさ』を直観的に創出する指標なんかもあったりして、
QEDに用いられるパラメータである
MW, AlogP, HBD, HBA, tPSA, RB, NAR, Structural Alertなども出力が可能です。

print(m1['pref_name'], # 化合物名
      m1['molecule_properties']['full_mwt'], # 分子量
      m1['molecule_properties']['molecular_species'], # 極性
      m1['molecule_structures']['canonical_smiles'] # SMILES
      )

TEMOZOLOMIDE 194.15 NEUTRAL Cn1nnc2c(C(N)=O)ncn2c1=O

こんな感じの出力が得られます。

まとめ

RDKit: SMILESになっていればよい。オリジナル化合物でもよい。

ChEMBLE:既存のIDから取得。