LoginSignup
1
2

More than 5 years have passed since last update.

目的

pythonライブラリにあるRdkitを使って、化合物を2次元可視化すること

※ちなみに、これを書いた人は完全な文系であるため、専門的知識はない。(本やネットで得た知識を自分なりに解釈をしている。)そのため、間違っていたら、ご教授を願いたい!

実装

まずは、データ入手から始める。
今回は、pythonライブラリの1つである「pubchempy」を使って、pubchemから化合物データを入手する!
※pubchempyはAnacondaから入手できる(https://anaconda.org/bioconda/pubchempy)

from rdkit.Chem import Draw #可視化する時に使う
import pubchempy as pcp #pubchemからデータを入手に使う

まずはこれらをインポートをして置く。

columns = ['IUPACName', 'MolecularFormula', 'CanonicalSMILES']

先にpubchemから入手しておきたいカラム名をリスト型で決めておく。(左から、「IUPA名、分子式、smiles」)
今回は、「セロトニン」をpubchemから取ってくる。

次に、セロトニンをpubchemからDataFrameに取得

sample.py
sero = pcp.get_properties(properties, 'Serotonin','name', as_dataframe=True)
sero #=> CanonicalSMILES:C1=CC2=C(C=C1O)C(=CN2)CCN    IUPACName:3-(2-aminoethyl)-1H-indol-5-ol  MolecularFormula:C10H12N2O
sample.py
pcp.get_properties(properties, 'Serotonin','name', as_dataframe=True)

as_dataframe=Trueにすることで、pandasのDataFrameのような形になります。

次に、可視化をして行きます。

sample.py
a = sero.iloc[:, 0].values

for i in a:
    mol = Chem.MolFromSmiles(i)

Draw.MolToImage(mol) #=>MolToImageが描写するメソッド

あまり美しくないが、今回は「可視化」が目的なので省略します。
これによって、出されるのが

スクリーンショット 2018-11-17 22.12.03.png

このように表示されます。Wikiやpubchemで実際の形を見てみると、左右逆になっているが、とりあえずOKかな!?
(SMILES式で描写しました。違ったら指摘してください)

まとめ

今回は、Rdkitを使って描写をしたが、他にも計算や三次元の描写ができるらしい。まだまだ使い始めたばかりだが、挑戦して行きたい。

参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2