はじめに
こんにちは,(株)日立製作所 研究開発グループ サービスコンピューティング研究部の露木です。
今回はOpenBabelプログラムのインストール方法を簡単に紹介します。OpenBabelは情報化学 (ケモインフォマティクス) 分野の各種計算に役立つツールボックスです。計算対象の化学構造や計算条件のフォーマットが統一されていない,シミュレーション計算用の入力ファイルの相互変換に特に役立ちます (ちなみにOpenBabelの名称は「バベルの塔」に由来しており,名称からもフォーマットを標準化したい気持ちを想像いただけるかと思います)。
OpenBabelをインストールするとき,Ubuntuではリポジトリから apt install openbabel
で可能できますが,本稿の執筆時点 (2020年2月) では,とても古いバージョン2.3.2しか使えません。そこで本稿ではopenbabelのGitリポジトリからソースコードを取得してコンパイルし,最新版のOpenBabelをインストールする方法を説明します。2020年2月現在の最新版は OpenBabel 3.0です。
前提環境
- OS: Linux (Ubuntu 18.04)
- GUIなし
依存関係のインストール
まずはOpenBabelのコンパイルに必要なライブラリをインストールします。以下のコマンドを実行してください。
sudo apt install -y git cmake libxml2-dev zlib1g-dev libwxgtk3.0-dev libboost-all-dev libomp-dev libeigen3-dev libcairo2-dev
コンパイル
次にOpenBabelのソースコードを取得し,コンパイルするための環境を整えます。
git clone https://github.com/openbabel/openbabel.git
mkdir -p openbabel/build
cd openbabel/build
オプションを設定し,コンパイルとテストを実行します。もしも,共有の計算機などroot権限が無い環境下でコンパイルを行いたい場合は cmakeコマンドに -DCMAKE_INSTALL_PREFIX=${HOME}/.local/app/obabel
といったオプションを指定してください。これにより,ホームディレクトリ以下にOpenBabelをインストールできます。
# GUIを無効化,スレッド並列化を有効化するオプションを設定
cmake -DENABLE_OPENMP=ON -DBUILD_GUI=OFF ..
# 8並列でコンパイル。並列数は計算機のCPUに合わせて変更してください
make -j8
# テストを実施
make test # make test ARGS=--verbose とすればエラー時に詳細ログがでます
# インストールの実行
sudo make install
インストールが終了したら,OpenBabelのバージョンを確認してみます。以下のようにOpenBabel Version 3.00 をインストールできたことがわかります。
$ obabel -V
Open Babel 3.0.0 -- Feb 12 2020 -- 12:34:21
動作確認
せっかくなのでOpenBabel3.0系にしかない新機能を動作確認してみます。具体的には,SMILESからBall and Stick形式の画像に変換して可視化してみます。SMILESは1行の文字列で分子構造を表すフォーマットであり,例えばベンゼンは c1ccccc1
と表記されます。SMIELSの文字列だけから分子構造をイメージするのは難しいため,画像に変換して可視化するのは重要な操作です。
なお,オプションの意味は, -i smi
でSMILESの文字列を入力とし, -O benzene.svg
で保存先の画像ファイル名を指定しています。また,--gen3D
は分子動力学法にもとついて3次元構造を最適化する指定であり,-xS
でBall and Stick形式を指定しています。
# SVGに-xSオプションをつけるとBall and Stickで可視化できる
echo 'c1ccccc1' | obabel -i smi -O benzene.svg --gen3D -xS
保存された benzene.svg を開くと以下のようになります。たしかに新機能が使えることがわかりました。
おわりに
今回の記事でOpenBabelの最新版をインストールし,利用できるようになりました。また,動作確認としてSMILESからの簡単な可視化を行う方法も合わせて示しました。しかし,開発元のマニュアル をご覧いただければわかるようにOpenBabelには今回紹介したもの以外にも多種多様な機能があります。そこで,次回の記事では「OpenBabelを使ってSMILES表記の分子式から3次元の分子構造を復元する方法」を説明し,シミュレーション計算の入力ファイルを作成できるようにします。