LoginSignup
1
0

More than 1 year has passed since last update.

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

Posted at

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

公式サイトからは古いバージョンしかインストールできないため、最新版を導入するにはソースコードからコンパイルする必要があります。本エントリでは最新版の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並列でコンパイルしています。cpuinfoless /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形式の画像に変換しています。

参考資料

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0