Matlantis環境に Open Babel をインストールする方法を紹介します。Open Babel本体のみではなく Python用インターフェースのインストールが必要です。
このインストール方法はPython 3.9 環境で動作検証しました。途中コンパイル作業などが含まれるため、所要時間は40分程度要します。
- 動作検証環境:Python3.9環境
※ Open Babel インストール後、pfcc-extras の一部の関数が実行できない(カーネルが落ちる)問題が確認されています。対処方法はこちらをご覧ください。
目次
- インストールディレクトリの作成
- Open Babel とPython用インターフェースのダウンロード
- Python 環境のアクティベート
- 必要なPythonライブラリをインストール
- Open Babel本体のインストール
- Python用インターフェースのインストール
- Notebook環境での動作確認
操作手順
1. インストールディレクトリの作成
Matlantis環境で操作します。まず、Open Babel のインストールディレクトリを決めて、そこに次のようにディレクトリを作成します。ここでは、インストールディレクトリをホームディレクトリ直下として説明します。(インストールディレクトリは任意の場所に、各ディレクトリ名は任意の名前でも構いません。変更した場合はこの後のパス指定を間違えないようご留意ください)。
インストールディレクトリ: /home/jovyan (ホームディレクトリ)
- openbabel/
- openbabel/python_package/
- openbabel/build/
- tools/
- tools/openbabel-install/
2. Open Babel とPython用インターフェース のダウンロード
必要な2つのファイルをダウンロードし、1. で作成したディレクトリに配置します。
これらのファイルはこの後の (5-2) や (6-2) のタイミングで、コマンドで解凍してください。
(右クリックメニュー> Extract archive では解凍できません)
- Open Babel本体
- リンク:https://github.com/openbabel/openbabel/releases
- ディレクトリ:openbabel/
- Python用API
- リンク:https://pypi.org/project/openbabel/#files
- ディレクトリ:openbabel/python_package/
3. Python 環境のアクティベート
ここから 6 まではターミナルでの作業です。MatlantisのTerminalを開き、Python環境をアクティベートします。ターミナルの開き方はこちらをご参照ください。
use_venv python39
※ ターミナルでPythonを利用する方法はMatlantis Guidebook にも記載されています。
4. 必要なPythonライブラリをインストール
wheel と swig をインストールします。
pip install -U wheel swig
5. Open Babel本体のインストール
-
ディレクトリopenbabelへ移動
cd /home/jovyan/openbabel
-
tar ファイルの展開
ディレクトリopenbabel 内に格納したopenbabel-3.1.1-source.tar.bz2 を展開します。
tar -xvf openbabel-3.1.1-source.tar.bz2
-
Open Babel のインストール
ディレクトリopenbabel内で、以下の2 つのコマンドを順に実行します。コンパイルするため時間を要します。
cmake ./openbabel-3.1.1 -DCMAKE_INSTALL_PREFIX=~/tools/openbabel-install
make && make install
6. Python用インターフェースのインストール
-
ディレクトリopenbanel/python_packageへ移動
cd /home/jovyan/openbabel/python_package
-
tarファイルの展開
openbabel-3.1.1.1.tar.gz を展開します。
tar -xvf openbabel-3.1.1.1.tar.gz
-
展開されたディレクトリopenbabel-3.1.1.1へ移動
cd /home/jovyan/openbabel/python_package/openbabel-3.1.1.1
-
Python 用インターフェースのインストール
ディレクトリopenbabel-3.1.1.1 内で、以下の2 つのコマンドを実行します。
特定のユーザー環境にインストールしているため、実行時のオプションで、(5-3) にてインストールしたOpen Babelの場所と、そのライブラリの場所を指定します。途中で何度かエラーメッセージのようなものが出力されますが、コンパイル時のコードチェックにおける警告であれば問題ありません。
指定するパス:
- /home/jovyan/tools/openbabel-install/include/openbabel3
- /home/jovyan/tools/openbabel-install/lib
python setup.py build_ext -I /home/jovyan/tools/openbabel-install/include/openbabel3 -L /home/jovyan/tools/openbabel-install/lib
pip install -U .
7. Notebook環境での動作確認
-
Openbabelライブラリの読み込み
以下のようにインポートしてください。 ※ libopenbabel.so.7 についてパスを設定する方法はこちらをご覧ください。パスを設定後は最初の2行は不要です。
import ctypes
ctypes.cdll.LoadLibrary('/home/jovyan/tools/openbabel-install/lib/libopenbabel.so.7')
from openbabel import openbabel
from openbabel import pybel
参考:https://qiita.com/namakemono/items/06a606488de03a046f44
-
サンプルコード実行
例)m = pybel.readstring("smiles", "C1=CC=C(C=C1)O")
m
openbanel/python_package/openbabel-3.1.1.1/examples/examples.py にサンプルコードがあります。
※ pfcc-extras ご利用時の注意 (2024/12/18 追記)
Open Babel インストール後 liquid generator や smiles_to_atoms などの関数が実行できない(カーネルが落ちる)問題が確認されています。対処療法とはなりますが、以下ご対応をお願いします。
1) ノートブックごとに都度対応する場合
Openbabel を実行しない場合にもノートブックの初期処理に以下を追記
import ctypes
ctypes.cdll.LoadLibrary('/home/jovyan/openbabel/tools/openbabel-install/lib/libopenbabel.so.7')
2) 環境変数を設定
/home/jovyan/.bashrc に以下を追記
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/tools/openbabel-install/lib
/home/jovyan/.ipython/profile_default/startup/00-startup.py を作成し、以下を追記
import ctypes
ctypes.cdll.LoadLibrary('/home/jovyan/tools/openbabel-install/lib/libopenbabel.so.7')