()

Qiita Articles

公開記事のミラー・バックアップ

計算化学・分子構造

【Linux】最新版のOpenBabelをローカルにインストールする

Qiita公開: · 元記事更新:
バックアップ取得:

筆者自身のQiita記事を転載しています。内容は取得時点の記録です。Qiitaの元記事 · 原文Markdownを保存

この記事の目次

OpenBabelは情報化学(ケモインフォマティクス)の領域で利用されるツール群のパッケージで、主にファイル・データのフォーマットを変換するために用いられます。公式のGithubリポジトリで公開されているバージョンのリストは以下。(最新版は3.1.1)

https://github.com/openbabel/openbabel/releases

公式サイトからは古いバージョンしかインストールできないため、最新版を導入するにはソースコードからコンパイルする必要があります。本エントリでは最新版のOpenBabelをローカルにインストールする手順を示します。

前提

● ${HOME}/usr/app/ というディレクトリが存在する(無ければ作成しておく or 適切なパスに書き換えてください)
● CentOS7のLinux環境である(バージョンは cat /etc/os-release で確認できます)

CentOS7 未満だとC++11が使えず、別途アップデートが必要となります。

OpenBabelのインストール

カレントディレクトリが ${HOME}/usr/app の状態で以下を実行します。

OpenBabelのインストール手順
git clone https://github.com/openbabel/openbabel.git
mkdir -p openbabel/build
cd openbabel/build
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/usr/app/babel -DENABLE_OPENMP=ON -DBUILD_GUI=OFF ..
make -j6
make install

git cloneするとopenbabelという名前のディレクトリが生成します。
上の例では DCMAKE_INSTALL_PREFIX のオプションで、インストール先のディレクトリを ${HOME}/usr/app/babel としています。GUIを無効化し、並列化を有効化する設定で cmake を実行します。

上の例では時間短縮のために make -j6 として6並列でコンパイルしています。cpuinfo や less /proc/cpuinfo などでCPUのコア数を確認してから指定してください。

完了すると ${HOME}/usr/app/babel/bin/ に実行可能ファイルが生成していますので、.bashrc などのログインシェルに以下の行を追記して source します。

ログインシェルに追記する行
export PATH=${HOME}/usr/app/babel/bin:${PATH}

以上で obabel というコマンドによってOpenBabelを呼び出せるようになります。

【※】CMakeのバージョンでエラーが出る場合

私の環境ではCMakeのバージョンが2.8系と古かったため、cmake の際に以下のようなエラーが出てしまいました。

エラーメッセージ
CMake 3.1 or higher is required.

そこで、最新の CMake をインストールします。(2023年1月現在の最新バージョンは3.25.2)

CMakeをローカルにインストールする
wget https://github.com/Kitware/CMake/releases/download/v3.25.2/cmake-3.25.2.tar.gz
tar -zxvf cmake-3.25.2.tar.gz
cd cmake-3.25.2
./configure --prefix=${HOME}/usr/app/cmake/
make -j6
make install

cmake の展開場所はどこでも良いですが、上の例では ${HOME}/usr/app/ の配下に cmake というディレクトリを用意しています。私の環境では ./configure に数分要しました。makeの際は上記と同様に必要に応じて並列して下さい。

完了すると ${HOME}/usr/app/cmake/bin/ に実行可能ファイルが生成していますので、.bashrc などのログインシェルに以下の行を追記して source します。

ログインシェルに追記する行
export PATH=${HOME}/usr/app/cmake/bin:${PATH}

この順番で$PATHに追加しないと、元々導入されていた古いバージョンのcmakeを優先的に参照してしまうので注意。

以上を済ませた上で、再度OpenBabelのインストールを行います。

OpenBabelを使ってみる

せっかくなので、導入したOpenBabelを使ってみます。
例として、以下のような4-アミノサリチル酸のsdf形式のデータ(PubChemから取得)を別のフォーマットに変換してみます。

C7H7NO3.sdf
4649
  -OEChem-02022307383D

 18 18  0     0  0  0  0  0  0999 V2000
    0.6705   -2.1801   -0.1869 O   0  0  0  0  0  0  0  0  0  0  0  0
    2.5574    1.4370   -0.4767 O   0  0  0  0  0  0  0  0  0  0  0  0
    2.8355   -0.6088    0.4742 O   0  0  0  0  0  0  0  0  0  0  0  0
   -3.5675    0.0822    0.0040 N   0  0  0  0  0  0  0  0  0  0  0  0
    0.6306    0.2081    0.0328 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.0296   -1.0154   -0.0820 C   0  0  0  0  0  0  0  0  0  0  0  0
   -2.1578    0.1243    0.0136 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.4239   -1.0573   -0.0916 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.1033    1.3895    0.1380 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.4974    1.3476    0.1284 C   0  0  0  0  0  0  0  0  0  0  0  0
    2.0857    0.2729    0.0462 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.9333   -2.0140   -0.1815 H   0  0  0  0  0  0  0  0  0  0  0  0
    0.3818    2.3565    0.2417 H   0  0  0  0  0  0  0  0  0  0  0  0
   -2.0585    2.2748    0.2139 H   0  0  0  0  0  0  0  0  0  0  0  0
   -4.1001    0.9386    0.0795 H   0  0  0  0  0  0  0  0  0  0  0  0
   -4.0470   -0.8044   -0.0797 H   0  0  0  0  0  0  0  0  0  0  0  0
    1.6243   -2.0052   -0.2179 H   0  0  0  0  0  0  0  0  0  0  0  0
    3.5377    1.4721   -0.4639 H   0  0  0  0  0  0  0  0  0  0  0  0
  1  6  1  0  0  0  0
  1 17  1  0  0  0  0
  2 11  1  0  0  0  0
  2 18  1  0  0  0  0
  3 11  2  0  0  0  0
  4  7  1  0  0  0  0
  4 15  1  0  0  0  0
  4 16  1  0  0  0  0
  5  6  2  0  0  0  0
  5  9  1  0  0  0  0
  5 11  1  0  0  0  0
  6  8  1  0  0  0  0
  7  8  2  0  0  0  0
  7 10  1  0  0  0  0
  8 12  1  0  0  0  0
  9 10  2  0  0  0  0
  9 13  1  0  0  0  0
 10 14  1  0  0  0  0
M  END
$$$$

SDF形式をSMILES記法に変換するには以下のようなコマンドを叩きます。

obabel C7H7NO3.sdf -O C7H7NO3.smi

 ↓ 出力結果

C7H7NO3.smi
Oc1c(ccc(N)c1)C(=O)O	

SDF形式をXYZ形式に変換するには以下のようなコマンドを叩きます。

obabel C7H7NO3.sdf -O C7H7NO3.xyz

 ↓ 出力結果

C7H7NO3.xyz
18

O          0.67050       -2.18010       -0.18690
O          2.55740        1.43700       -0.47670
O          2.83550       -0.60880        0.47420
N         -3.56750        0.08220        0.00400
C          0.63060        0.20810        0.03280
C         -0.02960       -1.01540       -0.08200
C         -2.15780        0.12430        0.01360
C         -1.42390       -1.05730       -0.09160
C         -0.10330        1.38950        0.13800
C         -1.49740        1.34760        0.12840
C          2.08570        0.27290        0.04620
H         -1.93330       -2.01400       -0.18150
H          0.38180        2.35650        0.24170
H         -2.05850        2.27480        0.21390
H         -4.10010        0.93860        0.07950
H         -4.04700       -0.80440       -0.07970
H          1.62430       -2.00520       -0.21790
H          3.53770        1.47210       -0.46390


画像に変換することもできます。

obabel C7H7NO3.sdf -O C7H7NO3.svg

 ↓ 出力結果
C7H7NO3.png

Qiitaに掲載する都合上、png形式の画像に変換しています。

参考資料

https://qiita.com/kuchida1981/items/d028940ade41096490de

sudo権限がある場合は以下の記事のようにして導入可能です。

https://qiita.com/MasafumiTsuyuki/items/73af68e94b14447a3d74