分子モデリングライブラリ 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
- ライブラリは,/usr/local/lib/builcule/ 以下にインストールされます
- ヘッダファイルは,/usr/local/include/builcule/lb2/ 以下にインストールされます
バージョン 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 の課題と位置づけておきます.
リリース履歴
- 2024 年 1 月 2 日 :2.3.4 リリース.結合を切断した後の分子の検知にあったバグを修正しました
- 2023 年 12 月 2 日 :2.3.3 リリース.元素を変更した際に,結合長を変更しないように仕様変更しました
- 2023 年 11 月 27 日 :2.3.2 リリース.分子やアミノ酸の近傍を検知する際には,自分自身を除外するように仕様変更しました
- 2023 年 11 月 25 日 :2.3.1 リリース.アミノ酸の原子のアノテーションに甘い部分を見つけたので修正しました
- 2023 年 11 月 24 日 :2.3.0 リリース.近傍の原子を選択する際に,それらが属するアミノ酸も選択するように仕様変更しました
- 2023 年 11 月 20 日 :2.2.5 リリース.領域をカットしたときに,残った分子が移動しないように仕様変更しました
- 2023 年 11 月 18 日 :2.2.4 リリース.ファイルを開く際にアミノ酸の β 炭素に結合する水素を二重に取得してしまうバグを訂正しました
- 2023 年 11 月 16 日 :2.2.3 リリース.アミノ酸配列の扱いが甘くて異常終了する場合があったので訂正しました
- 2023 年 11 月 7 日:2.2.2 リリース.構造調整機能を利用する際の,ヒドロキシ基に対する部分電荷の設定を修正しました
- 2023 年 11 月 4 日:2.2.1 リリース.構造調整機能および分子間相互作用機能を改変しました
- 2023 年 11 月 2 日:2.2.0 リリース.構造調整機能を改変しました
- 2023 年 10 月 25 日:2.1.2 リリース.分子間相互作用の計算で,座標が異常値となるバグを修正しました.ライブラリ名とインストール先を変更しました
- 2023 年 10 月 20 日:2.1.1 リリース.Pro への変異でのバグを修正しました
- 2023 年 10 月 19 日:2.1.0 リリース.BCMD シリーズの BMutate の開発に伴い変更を加えました
- 2023 年 10 月 1 日:Makefile 作成ツールを qmake から GNU Autotools に変更し,リリースバージョンを 2.0.0 としました.本体に変更はありません
- 2023 年 9 月 4 日 : 20230831 リリース.分子間で結合を生成した際に異常終了する場合があるバグを修正しました
- (略)
- 2023 年 3 月 26 日 : α-1 リリース
仕様上の課題
アミノ酸の変異に伴う側鎖の立体障害
ポイントミューテーションやホモロジーモデリングに伴い,内部でアミノ酸側鎖を接続しています.
接続された側鎖は,タンパク質分子の他の部分と重なり合ってしまう場合があります.
側鎖の重なり合いを少なくするためには,エネルギ極小化または構造調整が必要です.
現在のところ,重なり合いを完全に解消できません.
ダウンロードしたタンパク質の編集
PDB ファイルなど,ダウンロードしたタンパク質の編集中に異常終了する場合があります(バグと紛らわしい).
バグでない原因を挙げると,ダウンロードしたファイルには実験結果を説明するために必要な,しかし化学構造上ありえない情報が記述されている場合があることです.
[編集(_E)]-[クリーンアップ(_A)] は,それに対処するために作成した機能です.極端に接近した原子(おそらく 1 つの原子を複数の座標で記述している)を削除します.
これですべて解決というものではありませんが,異常終了する場合にはとりあえず使用して,反応を見てください.
検知されたアミノ酸コードとファイルに記述されているアミノ酸コードとの不一致
実験的に側鎖の三次元座標が決定できなかった場合などが該当します.
例えば,PDB ファイルにコードが LYS と記してあって側鎖が β 炭素までしか記述されていないような場合です.Builcule では Ala と検知されます.
アミノ酸残基の欠失操作での原子の残存
アミノ酸残基の欠失操作では,C-末が修飾(非解離型の水素も)されている場合の修飾基や,異常アミノ酸の側鎖が削除されません.
削除する方がいいのか,残しておく方がいいのか,ケースバイケースだとと考えるからです.