ご注文はリード化合物ですか?〜医薬化学録にわ〜

自分の勉強や備忘録などを兼ねて好き勝手なことを書いていくブログです。

ケモインフォマティクス とは?/化学構造データを読み込もう

このブログはケモインフォマティクスも一応テーマにしているので、その内容も少しずつ書いていこうと思います。

偉大なる先人のブログを見れば事足りそうですが・・・

こことか 

datachemeng.com

こことか

future-chem.com

こことか

iwatobipen.wordpress.com

 

そもそもケモインフォマティクスとはいったいなんなのか?

定義は色々あると思いますが、

 

「コンピューターを用いて化学の課題にアプローチする」

 

というざっくりとした定義でいいと思います。つまり、最近流行の AI や機械学習を使うことはもちろん、化学データを画面に表示させることや量子化学計算、分子動力学計算もケモインフォマティクスの領域とみなせますし、有機合成や分析化学など、実験と組み合わせたっていいのです。

 

化学の問題を扱うには、まずはデータを読み込む必要があります。

化学者にとって馴染み深い構造式のデータは、「SD file」として扱うことが多いです。拡張子は .sdf です。sdf データの作り方はいずれ述べるとして、データを読み込むのにはどうすればいいのか。

Python  で化学データを扱うには、「RDKit」というライブラリが非常に強力です。RDKit を使いこなせると、ケモインフォの世界がグッと広がります。

手元のパソコンで RDKit を使えるようにするのは簡単で、anaconda をインストールして conda コマンドを使えるようにした上で、

mac: ターミナルで conda install -c rdkit rdkit を実行

windows: Anaconda prompt を開いて conda install -c rdkit rdkit を実行

 すると使えるようになります。

 

データの読み込みも簡単で、Python3 で以下のようにできます。


import numpy as np
import pandas as pd
from rdkit import Chem
from rdkit.Chem.Draw import IPythonConsole

data = Chem.SDMolSupplier("../data/logSdataset1290_2d.sdf")

data[0]

1~4 行目はライブラリの読み込みです。

NumPy は Python で行列を扱うためのライブラリ、Pandas はデータフレームを扱うためのライブラリです。とりあえず「おまじない」だと思って読み込みましょう。4 行目の IPythonConsole は Jupyter Notebook で構造式を表示させるためのクラスで、これもとりあえず読み込んでおくと良いです。

5 行目が重要で、 Chem.SDMolSupplier という関数を使うと、sdf データを読み込めます。( ) の中はデータの名前と場所を示しています。つまり、実行しているコードと別のフォルダにデータがあっても、パスを正しく記載すれば、読み込むことが可能となります。他に注意すべき点としては、( ) の中は文字列として扱う必要があるので、両端をダブルクォーテーション(")で囲む必要があります(クォーテーション ' でもいいです)。

data という変数の型は supplier という形式で、複数の化合物データが入っています。それを、対応する番号を指定することで、任意の化合物データを mol クラスとして取り出すことが可能です。

データの読み込みを説明するだけで意外と長くなった上に、色々用語が出てきてわかりにくくなってしまいました。もしかしたら、今後改訂するかもしれません。