[**OpenBabel**](http://openbabel.org/wiki/Main_Page)は情報化学(ケモインフォマティクス)の領域で利用されるツール群のパッケージで、主にファイル・データのフォーマットを変換するために用いられます。公式の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` の状態で以下を実行します。 ```bash: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` します。 ```bash:ログインシェルに追記する行 export PATH=${HOME}/usr/app/babel/bin:${PATH} ``` 以上で `obabel` というコマンドによってOpenBabelを呼び出せるようになります。 # 【※】CMakeのバージョンでエラーが出る場合 私の環境ではCMakeのバージョンが2.8系と古かったため、`cmake` の際に以下のようなエラーが出てしまいました。 ```bash:エラーメッセージ CMake 3.1 or higher is required. ``` そこで、最新の CMake をインストールします。(2023年1月現在の最新バージョンは3.25.2) ```bash: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` します。 ```bash:ログインシェルに追記する行 export PATH=${HOME}/usr/app/cmake/bin:${PATH} ``` > この順番で$PATHに追加しないと、元々導入されていた古いバージョンのcmakeを優先的に参照してしまうので注意。 以上を済ませた上で、再度OpenBabelのインストールを行います。 # OpenBabelを使ってみる せっかくなので、導入したOpenBabelを使ってみます。 例として、以下のような4-アミノサリチル酸のsdf形式のデータ([**PubChem**](https://pubchem.ncbi.nlm.nih.gov/compound/4649)から取得)を別のフォーマットに変換してみます。 ```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記法に変換するには以下のようなコマンドを叩きます。 ```sh: obabel C7H7NO3.sdf -O C7H7NO3.smi ```  ↓ 出力結果 ```:C7H7NO3.smi Oc1c(ccc(N)c1)C(=O)O ``` * * * SDF形式をXYZ形式に変換するには以下のようなコマンドを叩きます。 ```sh: 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 ``` * * * 画像に変換することもできます。 ```sh: obabel C7H7NO3.sdf -O C7H7NO3.svg ```  ↓ 出力結果 ![C7H7NO3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697094/b6ee72ea-6dd6-a70f-ede9-7d90e6d4b1ff.png) > Qiitaに掲載する都合上、png形式の画像に変換しています。 # 参考資料 https://qiita.com/kuchida1981/items/d028940ade41096490de sudo権限がある場合は以下の記事のようにして導入可能です。 https://qiita.com/MasafumiTsuyuki/items/73af68e94b14447a3d74