分子モデリングライブラリ libuilcule

libuilcule は,当サイトで開発している分子モデリング用のライブラリです.

このライブラリは,Builcule の非 GUI 部分を独立させて開発を始めたものです.
ライブラリとしての完成度はまだまだ高くありません.
現在は,Builcule,BCMD シリーズ,および Detiral のライブラリとして開発できるように整理している段階です.

独立した分子化学ライブラリとして利用可能なレベルをめざしています.

libbuilcule について

データ構造とアルゴリズム


データ構造と構造検知
領域の選択と接続
分子構造の調整

アルゴリズムの開発に係る実験


タンパク質における共有結合の検知
構造アラインメントの開発

libbuilcule を利用したソフトウェア

libbuilcule は現在,以下のソフトウェアで利用しています.


Builcule:分子モデリングソフト
BCMD シリーズ:CLI 版分子モデリングソフト
Detrial:分子表示ソフト(スケジュールの都合がつかなかったので,旧版の libbuilcule-1 を利用しています)

ビルドとインストール

開発環境

ビルドには C++ コンパイラ + GNU Autotools + Eigen + LibOpenBabelが必要です.
下の表は,私がインストールしている開発環境に係るパッケージです.いくつかのパッケージは,依存関係により,同時にインストールされるかもしれません.
プログラミングに,開発環境の練習記録があります.

パッケージ名(バージョン)
g++ (12.2.0)GNU C++ コンパイラ
make (4.3)コンパイルを制御するユーティリティ
automake (1.16.6)GNU標準準拠のMakefile生成ツール
autoconf (2.71)configure スクリプト自動作成プログラム
libtool (2.4.7)汎用ライブラリサポートスクリプト
libeigen3-dev (3.4.0)線形代数用のライブラリ.分子の三次元座標の処理
libopenbabel-dev (3.1.1)ライブラリ版 Open Babel

ソースファイル

libbuilcule のビルドとインストール

常法どおりです.
~$ tar -xzvf libbuilcule-2.3.4.tar.gz
~$ cd libbuilcule-2.3.4
~/libbuilcule-2.3.4$ ./configure
~/libbuilcule-2.3.4$ make
~/libbuilcule-2.3.4$ sudo make install

バージョン 2.2.1 でパラメータを変更しました

ホームディレクトリ ~/.builcule/b10/adjust.prm の 5 行め(VdwFact と書いてある行)の数値を変更しています.
2.2.1 より旧いバージョンから 2.2.1 以上のバージョンに変更する際に削除してください.Builcule などのプログラムで,構造調整機能使用時に新規作成します.
~/libbuilcule-2.3.4$ rm ~/.builcule/b10/adjust.prm

共有ライブラリのパスを設定

このライブラリを利用するプログラムががこのライブラリをロードできるように,パスを設定しておく必要があります.
~/libbuilcule-2.3.4$ sudo ldconfig

libbuilcule のアンインストール

アンインストールは,ビルド & インストールした後の状態なら(./configure で Makefile を作成した状態),
~/libbuilcule-2.3.4$ sudo make uninstall
とします.

バージョンアップでファイルの増減や名前の変更をする場合があるので,ディレクトリと一部のファイルが残ったままになるかもしれません.
そのような場合は,
~$ sudo rm /usr/local/lib/liblb2*
~$ sudo rm -rf /usr/local/include/builcule/lb2 あるいは sudo rm -rf /usr/local/include/builcule
とすれば削除できます.

また,ホームディレクイトリに ".builcule/b10" という隠しディレクトリを作成し,その中に設定ファイルや一時ファイルを格納します.
テキストファイルしか入っていませんが,削除する場合は手動で作業してください.例えば,
~$ rm -rf ~/.builcule

不具合

アラインメント済みあるいは同一座標のタンパク質をアラインメントしようとすると異常終了する場合があります.

ダウンロード等で入手した PDB ファイルでは,数値の記述位置がずれていることがあり,libbuilcule でファイルが開けない場合があります.
ただし,OpenBabel で他の形式に変換するなどの対策を取れば開けることがあります.
libbuilcule の課題と位置づけておきます.

リリース履歴

仕様上の課題

アミノ酸の変異に伴う側鎖の立体障害
ポイントミューテーションやホモロジーモデリングに伴い,内部でアミノ酸側鎖を接続しています.
接続された側鎖は,タンパク質分子の他の部分と重なり合ってしまう場合があります.
側鎖の重なり合いを少なくするためには,エネルギ極小化または構造調整が必要です.
現在のところ,重なり合いを完全に解消できません.

ダウンロードしたタンパク質の編集
PDB ファイルなど,ダウンロードしたタンパク質の編集中に異常終了する場合があります(バグと紛らわしい).
バグでない原因を挙げると,ダウンロードしたファイルには実験結果を説明するために必要な,しかし化学構造上ありえない情報が記述されている場合があることです.
[編集(_E)]-[クリーンアップ(_A)] は,それに対処するために作成した機能です.極端に接近した原子(おそらく 1 つの原子を複数の座標で記述している)を削除します.
これですべて解決というものではありませんが,異常終了する場合にはとりあえず使用して,反応を見てください.

検知されたアミノ酸コードとファイルに記述されているアミノ酸コードとの不一致
実験的に側鎖の三次元座標が決定できなかった場合などが該当します.
例えば,PDB ファイルにコードが LYS と記してあって側鎖が β 炭素までしか記述されていないような場合です.Builcule では Ala と検知されます.

アミノ酸残基の欠失操作での原子の残存
アミノ酸残基の欠失操作では,C-末が修飾(非解離型の水素も)されている場合の修飾基や,異常アミノ酸の側鎖が削除されません.
削除する方がいいのか,残しておく方がいいのか,ケースバイケースだとと考えるからです.