2006年05月31日

Tinker & Force Field Explorer

今回は、分子モデリングツールとして有名なTinkerとそのGUIでもあるForce Field Explorer(FFE)についてメモしたいと思います。

TinkerはJay William Ponder博士によって開発されている分子モデリングパッケージです。1990年頃より開発が始まっているようで、現時点でのソースコードのライン数は134,500、そして、その多くがFortranで書かれています。

分子モデリングソフトウェアの開発を行う場合、多くは、分子力場を使い、エネルギー最小化(EM)やMolecular Dynamics(MD)をプログラミングすることになると思います。EMやMD自体も相当に大変なのですが、その前に入力された構造に分子力場を適用するための多くの前処理が待っています。例えば、Bond,Angle,Torsionエネルギーを計算するためには、それぞれに対応するAtomとBondのリストが必要ですし、Atom Typeの決定もする必要があります。
また、この処理が不適切だと、舟形ベンゼン環(笑)など、とんでもない構造が生成されたりします。

私が学生の時に始めにつまずいたのは、EMやMDではなく、上に書いた前処理でした。そのときに役にたったのが、ケムインフォマティクスで学んだ種々のアルゴリズムとこのTinkerのソースコードだったのです。今になって思うのですが、Tinkerのソースコードは非常に分かりやすく、テクニックを学ぶ上で本当に勉強になったと思います。

さて、ここ最近、Tinkerに触れる機会がなかったのですが、久しぶりにチェックするとFFEとうGUIからTinkerを操作できるそうです。早速、テストしてみることにしました。

1.Tinkerの入手(ライセンスは各自確認してください)。
以下のサイトからInstallation Kit for Linux (53.4Mb)をDOWNLOAD。
http://dasher.wustl.edu/tinker/

2. 解凍
$ gunzip tinker-linux.sh.gz

3. インストール
$ su
# sh tinker-linux.sh
デフォルトでは/opt/tinkerにインストールされます。

4. パスを通す。
/opt/tinkerにパスを通す。

5. 実行
$ ffe

実行例:

1.分子の読み込み
(exampleの分子を使います)
$ cp /opt/tinker/example/dialanine.xyz .
$ ffe
[File]->[Open]->dialanine.xyzを選択。
分子力場はcharmm27を選択。

tinker1.png

2.分子表示形式の変更
[Display]->[Tube]
Java3Dを使っているので、結構きれいです。
tinker2.png

3. Optimizeの実行
[Modeling Commands]タブを選択。
その左下にあるコマンド選択用のリストボックスから[Optimize]を選択。
その他のパラメータはデフォルトを使用。
リストボックスの左にあるロケットを押す。
tinker3.png

logsのタブに切り替わり結果が見れます。
Graphicsタブを押すとOptimizeされたdialanineが表示されていますよ。

本当に便利ですね。昔からコマンドラインになれていると別にGUI無くても計算さえできればいいやと思ってましが、FFEはかなり便利です。もう少しFFEに熟知したらまたメモします。



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








posted by わばのり at 08:32| Comment(0) | TrackBack(0) | その他ツール | このブログの読者になる | 更新情報をチェックする

2006年05月30日

PyMolで超簡単分子グラフィクス

PyMolの機能の1つにpresetというものがあります。これを使うと簡単にProtein/Drug相互作用部位にフォーカスしたグラフィクスをゲットすることができます。

ここでは、HIVプロテアーゼ/阻害剤の結晶構造を利用したいと思います。まずは、Protein Data Bankにアクセスし、3AIDを取得します。

1. PDBファイルの読み込み
Pymolを起動->[File]->[Open]->3AIDを読み込む。

2. グラフィクスの作成
画面右側の3AIDの横にあるA(Actions:)ポタンをクリックし、
[preset]->[ligand sites]->[transparent(better)]と選択。
pymol1.png

3. レイトレイシングの実行
画面右上のRayボタンを押す。もしくはコマンドラインから"ray"とタイプする。そして、[File]->[Save Image]により、PNGで保存できます。
pymol2.png

おお!なかなか綺麗です。
このグラフィクスって、Bioorg.Med.Chem.あたりでもよく見かけますよね。
あとは、好みで配色やラベルなどを付加すれば、プレゼンや論文でも十分使えると思います。

最後に、背景を白に変えて([Display]->[Background]->[White])、左右に動かしてみます(右上のRockボタンを押す)。
anime_pymol.gif



banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 22:47| Comment(0) | TrackBack(0) | 分子グラフィクス | このブログの読者になる | 更新情報をチェックする

2006年05月29日

ケモインフォマティックス

「ケモインフォマティックス-予測と設計のための化学情報学-」は、日本語で読める初めてのケモインフォマティックスの教科書とも呼べる書籍ではないでしょうか。参考文献もしっかりと記載されているため、さらに深く内容を理解したい場合においても便利です。

私が学部生のころは、ケモインフォマティックス関連の授業といえば、各先生が原著論文などを使ってそれぞれ授業されていたため、なかなか系統的な理解が難しく苦労しました。しかし、授業自体は、情報処理のアルゴリズムと化学がみごとに融合し、率直におもしろい学問分野だなっと思いました。

本書籍は、特にこれからケモインフォマティックスを勉強したい学部生にお勧めです。グラフ理論の基礎、化合物の線形/行列表現をしっかりと理解し、SSSR、Morgan法などで基礎的なアルゴリズムを学び、そして、構造検索、QSAR、反応予測などの応用研究を理解することができると思います。価格は若干高いですが、それ相当の価値はあると思います。




banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 18:29| Comment(0) | TrackBack(0) | 書籍紹介 | このブログの読者になる | 更新情報をチェックする

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 | このブログの読者になる | 更新情報をチェックする

2006年05月27日

2D-3Dコンバータ

化学構造の2次元情報から3次元構造の構築は、化学、創薬など様々な分野で利用されている重要な技術だと思います。多くの商用ソフトウェアが市販されていると思いますが、今回は、Web上で簡単に2D->3Dコンバートを試すことができるCORINAについてメモしたいと思います。

CORINAは、ケムインフォマティクスの分野で最も有名な研究者の一人であるGasteiger博士の研究グループで開発されたソフトウェアです。Gasteiger博士といえば、他にもGasteiger-Marsili法、CACTVS、WODCA、PETRAなどご存知のとおり、多くの著名な業績を有する研究者ですね。

それでは、CORINAについてメモしたいと思います。
1. 以下のCORINAのサイトにアクセスする。
http://www2.chemie.uni-erlangen.de/software/corina/free_struct.html

2. 構造入力
図左にあるJMEで直接構造を書いてもかまいませんが、今回は、JMEで書くにはちょっとしんどいキラル中心を9つもつ以下の分子を図右のOptionsに直接入力します。

入力構造:N1[C@@]23[C@@H]([C@H]4[C@]([C@@H]([C@@H]2[C@H](NC1=[NH2+])O)O[C@@]([C@H]3O)(O4)[O-])(O)CO)O

co3D-3s.png

3. 3次元化
上の画面で"Generate 3D Structure"ボタンを押すとアプレットが立ち上がり生成された3次元構造を見ることができます。

co3D-4s.png

おお!お見事!適切な3次元化だと思います。

このようなコンバータは、SBVSを行う研究現場では必須なツールだと思います。ただ初めから適切に3D化された化合物のライブラリがほしいなというニーズもあったらしく、ZINCという便利なサイトが公開されています。
http://blaster.docking.org/zinc/

ZINCは論文としてPublishされているので、3D構造の生成手法など読んで把握しておくといいと思います。
Irwin and Shoichet, J. Chem. Inf. Model. 2005;45(1):177-82

あと、いわゆるフリーソフトを用いても、一応(改良の余地があると思いますが)、2D-3Dコンバートできますので、後日メモしますね。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 10:38| Comment(0) | TrackBack(0) | その他ツール | このブログの読者になる | 更新情報をチェックする

2006年05月26日

バベる!5世:obrotate

obrotateは任意の二面角を任意の角度に回転させるプログラムです。
obfitと同様にまずSMARTパターンに一致する部分構造を検索し、
回転の軸とする原子を決定します。

例としてブタンの二面角を0度から360度まで30度刻みで
回転させたいと思います。

$ obrotate "CCCC" butane.mol 1 2 3 4 0 > butane0.mol
$ obrotate "CCCC" butane.mol 1 2 3 4 30 > butane30.mol
$ obrotate "CCCC" butane.mol 1 2 3 4 60 > butane60.mol
....
....
$ obrotate "CCCC" butane.mol 1 2 3 4 360 > butane360.mol

ここで、butane.molは水素原子の付加されたbutaneのmolファイルであり、"CCCC"というSMARTパターンでbutane.mol内を検索することを指示しています。1 2 3 4はbutane.mol内の原子IDを示しているのではなく、SMARTパターン上の原子を示しています。最後の引数が指定した二面角の角度となります。

生成されたmolファイルからアニメーションgifを作ってみました。
指定どおり回転していることが分かります。
anime.gif

任意の二面角の回転は、化合物のコンフォメーション解析やドッキングなど利用できる場面が多くあると思います。obrotateはOELibを使ってシンプルに実装されていますので、興味のある方はソースコードをチェックしてみてください。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 00:38| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする

2006年05月25日

分子モデリング概説

分子モデリングに関する書籍の紹介をしたいと思います。
Andrew R. Leach博士の著書「Molecular Modelling-PRINCIPLES AND APPLICATIONS-」は、分子モデリングに最低限必要な数学から量子化学、分子力学、最後にドラックデザイン手法まで系統的にまとめられた書籍です。私は学生時代、分子モデリングを学ぶためにこの本を悪戦苦闘しながら、牛歩のようなスピードで読みました。英語が苦手だったのです。

地人書館より発行されている「分子モデリング概説-量子力学からタンパク質構造予測まで-」は、上記書籍の翻訳本です。本のサイズもB5判と大きく見やすくなり、英語の苦手な学部生だけではなく、研究者の方にも役に立つ内容だと思います。

私が印象に残ってるのは、第9章配座解析の中にある距離幾何学法(Distance Geometry)の説明が例と共に非常に分かりやすく解説されているところで、当時、距離行列から3D化の仕組みがやっと理解できたと喜んだことを思い出します。この他にも、分子モデリングのエッセンスがたくさんつまっている本だと思いますので、分子モデリングに興味のある方にお勧めしたいと思います。



banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 08:06| Comment(0) | TrackBack(0) | 書籍紹介 | このブログの読者になる | 更新情報をチェックする

2006年05月24日

PDFで分子グリグリ!

みなさんのお気に入りの分子ビューワは何ですか?描画のきれいなソフトウェアは多くありますが、私はRasmolが一番好きです。何といってもあのレスポンスの良さが使っていて快適だからです。細かい作業はスクリプトで行えばいいですし、それなりに見栄えのよい図も作れますしね。

さて、最近AdobeからAcrobat3Dという製品が発表されました。3D CADフォーマットをPDFに変換でき、そのPDF上で3Dモデルをグリグリと動かせるとのこと。しかもOpenGLで描画しているソフトウェアに対しては、プリントスクリーン経由でデータをキャプチャーし、PDFが作れるそうです。

今回は、Acrobat3DとPymolを使って、PDFで分子をグリグリさせるまでをメモしたいと思います。

1.Acrobat3Dを起動
[PDFの作成]->[3D Capture]
img1.png

2.Pymolを起動
適当な分子を読み込んで、stick表示などにする。
そして、プリントスクリーンを押す。
img2.png

3.PDF変換に関する諸設定
プリントスクリーンを押すと以下のダイアログが表示されるので、
必要であれば変更してOKを押す。
img3.png

4.PDFの出来上がり!
img4.png

あまりにもシンプルにPDFが作れたので驚きました。すごい!
(ただし、pymolからはじめてデータをキャプチャーするときは、
pymolをAcrobat3Dに登録するなど諸設定を促すダイアログがでます)

今後、いろんな分野のJournalなどで利用されるのではないでしょうか。
最後に今回作成したpdfをアップしておきます。

molecule.pdf

Adobe Reader7.0以上でpdfを開いてください。分子が表示されると思います。分子の上あたりでマウスを右クリックすると“3Dをアクティブにする”とでますので、選択してください。そうするとグリグリできます。元に戻すには、同様にマウスを右クリックし、“3Dを非アクティブにする”を選択すればOKです。



banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 12:56| Comment(0) | TrackBack(0) | 分子グラフィクス | このブログの読者になる | 更新情報をチェックする

2006年05月23日

バベる!4世:obfit

obfitは、分子の重ね合わせを行うことができます。特徴は、任意に指定したSMARTパターンに一致する部分構造をベースとして、重ね合わせを行うところにあります。もっとも単純な実装の1つとして、各分子ごとに3つの原子を任意に指定し、これをベースに重ね合わせを行うというものが挙げられますが、自動化には不向きです。obfitのように部分構造検索と組み合わせれば、複数分子の重ね合わせを瞬時に得ることができ便利ですね。

obfitの使用例として、下の化合物Aに化合物Bを重ね合わせたいと思います。ここで、重ね合わせに用いるSMARTパターンは"n1c(ccn1C)"とします。

babel2.png

$ obfit "n1c(ccn1C)" compA.mol compB.mol > compBm.mol

compBm.molは、compA.molに重ね合わせを行ったcompB.molの座標をもっています。
次に、重ね合わせの結果を見てみます。

compAB.png

おお!見事に重なっていますね。

今回は、SMARTパターンとして、化合物Aと化合物Bの最大共通部分構造(Maximum Common Substructure:MCS)を用いています(目視で選択)。OpenBabelでは、まだMCSは実装されていないと思いますが、そのうち実装されると期待しています。分子の重ね合わせは、ファーマコフォアの推定や3D-QSARの前処理に必須ですので、利用価値が高いと思います。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 08:56| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする

2006年05月22日

バベる!3世:obprop

あのダビスタの園部さんの作品である「カルチョビット」期待もこめて買いました。おもしろい!久しぶりに楽しめるゲームに出会えてラッキーです。

さて、今日はobpropについてメモしたいと思います。obpropは分子量と分子に含まれる環構造の数を計算するプログラムです。

$ obprop compA.mol
name a1
mol_weight 172.226
num_rings 2

ここでnum_ringsは、Smallest Set of Smallest Rings (SSSR)検出アルゴリズムにより算出されています。SSSRは芳香族環の検出の前処理など多くの場面で使う機会があると思います。シンプルなプログラムですが、それなりに使う場面があるかも?しかし、せめてRule of 5の判定ができる程度のpropertyが算出できるとうれしいですね。自分で作れということでしょうか。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 23:18| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする

2006年05月21日

バベる!2世: obgrep

OpenBabelをインストールするとbabel以外にも以下の5つのプログラムがインストールされます。

obgrep : SMARTSを使った部分構造検索
obfit : 分子の重ね合わせ
obrotate : torsion angleの回転
obprop : 分子の物性計算
obchiral : キラル中心の検索

これらはどれもOpenBabelのAPIであるOELibを利用して作られたプログラムです。上記プログラムを全て自力で作ろうと思えば、それなりに大変な内容なのですが、OELibを使うと非常にシンプルに実装できることが分かると思います。また、OELibを使いこなすよい参考にもなります。

今回はobgrepについてメモしたいと思います。
上記ツール郡は、openbabel-2.0.1/tools以下にソースコードが置かれており、まずは自力でコンパイルしたいと思います。Makefileはこの場所に置かれていますので、これを使ってもいいのですが(見た目にちょっと複雑ですね)、よりシンプルな方法でコンパイルしたいと思います。

obgrep.cppを作業ディレクトリにコピーする。
$ cp (展開したディレクトリ)/openbabel-2.0.1/tools/obgrep.cpp .

obgrep.cppの以下の3行を変更する。
(変更前)
#include "mol.h"
#include "obconversion.h"
#include "parsmart.h"
(変更後)
#include "openbabel/mol.h"
#include "openbabel/obconversion.h"
#include "openbabel/parsmart.h"

コンパイルの実行
$ g++ -I/usr/local/include/openbabel-2.0 -L/usr/local/lib -o obgrep obgrep.cpp -llibopenbabel

無事にobgrep.exe(Cygwin上なので)ができました。
obgrepの使用法は以下のとおりです。

Usage: ./obgrep [options] "PATTERN"
Options:
-v Invert the matching, print non-matching molecules
-c Print the number of matched molecules
-f Full match, print matching-molecules when the number
of heavy atoms is equal to the number of PATTERN atoms
-n Only print the name of the molecules
-t NUM Print a molecule only if the PATTERN occurs NUM times inside the molecule.

例)1000化合物を含むdata.smiからフェノール基をもつ化合物の数を調べる。
$ ./obgrep -c "c1ccccc1[OH]" data.smi
67

67個の化合物が含まれていることが分かりました。検索にかかった時間はPentium4(2.6GHz,512MB)、Cygwin上で約20secです。研究室内の小規模な化学構造検索システムであればobgrepを利用して構築できるかもしれません。また、AtomTypeのアサインや、QSAR Descriptorとして用いる構造フラグメントの検索などにも利用できると思います。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 16:21| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする

2006年05月20日

Windowsでバベる!

Babelといえば有名な化学構造のファイル変換ソフトウェアです。普段はもっぱらLinuxを使っているのですが、Windows上でも動かしたいとなと思いインストールしてみました。

今回はOpenBabelをソースからコンパイルしたいと思いますので、Cygwin上で作業を行います。Cygwinをインストールしていない場合は、まずはCygwinのインストールが必要です。

OpenBabelは以下のサイトより入手できます(現在のバージョンは2.0.1)。
http://openbabel.sourceforge.net/

openbabel-2.0.1.tar.gzを作業ディレクトリにコピーします。
$ cp openbabel-2.0.1.tar.gz (作業ディレクトリ)

作業ディレクトリに移動して、展開します。
$ tar zxvf openbabel-2.0.1.tar.gz

コンパイル・インストール作業です。
$ cd openbabel-2.0.1
$ ./configure
$ make
$ make install

無事にインストールできました。正直Cygwin上で一発でインストールできるとは思ってなかったので、Cygwin恐るべしっという感じです。

Babelの使い方はいたってシンプルです。
例)mol形式から水素原子を付加してPDB形式へ変換
$ babel -imol test.mol -opdb test.pdb -h

変換可能なファイル一覧は
$ babel -H
で取得できます。

mol2形式に変換するとGasteiger-Marsili法で計算された部分電荷が得られます。
$ babel -imol test.mol -omol2 test.mol2 -h
部分電荷はドッキングソフトウェアで利用したりできますので、役にたつと思います。

実は、以上のようなファイル変換はOpenBabelの一面にすぎません。
OpenBabelは、高機能なAPIを提供しており、これを利用することにより、SMILESによる部分構造検索や、分子構造の重ね合わせなど様々なことができるのです。しかも、OpenBabelはオープンソースですので、ケムインフォマティクスのエッセンスの詰まったソースコードを実際に見ることができ、学習するには最適な教材にもなります。具体的なプログラミングの仕方は、ぼちぼちメモしたいと思っています。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 12:25| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする

ご挨拶

わばのりです。

仕事柄ケムインフォマティクス関連のソフトウェアを利用したり、作ったりする機会が多いので、気になったことを思いのままにメモしていきたいと思います。

バイオインフォマティクスは今や書店に行けば多くの良書が手に入り、ネットからも多くの情報を得ることが可能ですが、ケムインフォマティクスに関しては、情報量が極端に少ないような気がします。

しかし、最近では、日本でもChemRuby(化学構造データをRubyで扱うライブラリ)の開発が進められたり、翻訳本が出版されたり(後日紹介しますね)と注目度もアップされはじめていると思います。

書籍や論文などの紹介もしたいと思っていますので、よろしくお願いします。


banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 00:16| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

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