openbabelにはobfitっていうツールがあることをケムインフォマティクスに虚空投げで知った。なかなかイカス。今まで、「babelって調子いいフォーマットコンバーターだよな」ぐらいの認識だったヨ。
でもobfitはmol,molで重ね合わせるコマンドライン向きのプログラムなんで、普通にライブラリをMCSでぶん回すには、シェルスクリプト書いたりしなきゃならんし、シェルスクリプトでまわすとin,outでテンポラリのファイルがたくさんできるからやだナァ。
と思ったのでドキュメント漁りをしてみたら、Chemistry::OpenBabelっていうperlラッパーがあった。 うーんCPANでみたことないなぁ、、、と思ったらCPANにはあがってなくて、展開したアーカイブのscripts/perl/で配布してるみたい。
ソースを眺めたら、SWIG使っているのね。普通にインストールはOK。C++の関数をそのままPerlでラップしてるみたいなので、obfitのソース眺めながら、そのままperlで書きなおしてやれば、perlスクリプトとして使えるかな?って感じなのであとでやる。
それよりもSWIG覚えたいかも。実用perlプログラミングの初版には詳しく書いてあったはずだけど、第二版ではばっさり削られてInline::Cとかになってた。こんなん覚えてくるとperlでjavaライブラリのCDKとか呼びたくなるにちがいないんだろうけど、Inline::Javaって使えるのかな?これもあとで調べる。
ただ、API見る感じだと、Chemistry::OpenBabeで分子のモディファイとかリアクション関連いじるのやりにくくなかろうか?やっぱPerlMolははずせないわなと思ったが、Readmeに、そのうちPerlMolとopenbabelのグルーモジュール作るよん!って書いてあった。ナイス、楽しみ。
Future development will include a "glue module" to integrate with PerlMol and other Perl chemistry projects.
で、さらにケムインフォマティクスに虚空投げでOELibという記述が何度か出てきたので、もしやOpenEyeかと思ったら、やっぱそうだった。OpenEyeのライブラリなんだったら別にPerlMol使わなくても、化合物いじり出来るんではないの?とか思ったが、FAQに歴史的な経緯が書いてあった。だから、やっぱ素直にPerlMol使ったほうがいいのでしょう。OEChemはOELibを書き直してるってことはデータの内部構造結構違うんだろうな。
というわけで、ツールキットみたなかではいまんとこOEChemが一番良く出来てる気がしてる。