RDKit
RDKitインストールに関する参考
https://future-chem.com/rdkit-intro/
RDKitで化学構造を取得する
試しに神経膠腫(グリオーマ)の投薬治療で使われるテモゾロミドを取得してみます。
分子式:$C_6H_6N_6O_2$
分子量:194.15
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という公共データベースからデータを取得する。
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から取得。