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