2006年05月28日

Pythonでケムインフォ

Lightweight Language(LL)で手軽にケムインフォマティクスのライブラリを使いたい。研究現場でプログラムを書いているとこんなことをよく思います。他のLLでも同様のことが言えるかもしれませんが、Pythonには、cheminformatics toolkitであるFrownsが公開されています。この他にも例えば、ケモメトリックス/統計ではPyChem/PyRが、分子モデリングでは、MMTKPyQuanteが、分子グラフィクスでは、PyMolChimeraなどが公開されています。商用でも有益な製品が多く販売されています。これらを使えば、ちょっと思いついたアイデアを短時間に実装/テストができ便利ですね。

さて、今回は、cheminformatics toolkitであるFrownsについてメモしたいと思います。

Windowsでのインストール方法(Linux上でもほぼ同様です):

Frownsのサイトよりfrowns-0.9a.zipを入手する。
http://frowns.sourceforge.net/
Python2.2以上を事前にインストールしてください。
パスを通すのをお忘れなく!

適当なフォルダでfrowns-0.9a.zipを解凍。

解凍したフォルダに移動し、以下のコマンドをコマンドプロンプト上で実行する。
> python setup.py build
> python setup.py install
インストールの完了!

次に例として簡単なスクリプトを書いてみます。
ここでは、Smiles.smilinを用いてSMILESを入力し、arbsmiles()及びcansmiles()でそれを出力しています。前者は、入力されたSMILESをそのまま出力し、後者は規範化して出力します。
SMILESは、同じ分子を複数の表現方法で示すことができ、今回入力しているSMILESは全て同じ分子(フェノール)を示しています。したがって、cansmiles()では規範化され全て同じSMILESとなって出力されています。残念ながらOELibにはCanonical SMILESはまだ実装されていません。RoadMapにはのっていますが。

規範化といえば、データベース検索における重要な技術の一つであり、Morgan法があまりにも有名ですね。Morgan法は次の機会にでもメモしたいと思っています。

-------------------------------------------------------
ソースプログラム:test.py
from frowns import Smiles

mol1 = Smiles.smilin("Oc1ccccc1")
mol2 = Smiles.smilin("c1ccccc1O")
mol3 = Smiles.smilin("c1ccc(O)cc1")

print 'mol1:Smiles ' + mol1.arbsmiles()
print 'mol2:Smiles ' + mol2.arbsmiles();
print 'mol3:Smiles ' + mol3.arbsmiles();
print ''
print 'mol1:Canonical Smiles ' + mol1.cansmiles()
print 'mol2:Canonical Smiles ' + mol2.cansmiles();
print 'mol3:Canonical Smiles ' + mol3.cansmiles();
-------------------------------------------------------
実行:
> python test.py
-------------------------------------------------------
出力:
mol1:Smiles Oc1ccccc1
mol2:Smiles c1ccccc1O
mol3:Smiles c1ccc(O)cc1

mol1:Canonical Smiles c1(ccccc1)O
mol2:Canonical Smiles c1(ccccc1)O
mol3:Canonical Smiles c1(ccccc1)O
-------------------------------------------------------


banner_02.gif
人気ブログランキング(クリックして応援してね)


posted by わばのり at 13:22| Comment(0) | TrackBack(0) | Frowns | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。