macOSのopen-source PyMOLでAPBS GUIを使う

## APBS GUIについて

PyMOLのバージョンが2になってからバイナリ版PyMOLの配布が始まりました。このバイナリにはいくつかの有名なプラグインがプリインストールされており、特に何も設定をしなくてもそれらの機能を使うことができるようになっています。しかし、バイナリ版はライセンス制になっているため、自由に使い続けることはできないかもしれません。ただし学生ならばEducational Licenseを利用することもできます。

一方で自身でビルドしたopen-source版PyMOLはライセンス制限がない代わりに、APBS GUIのプラグインが同梱されていないため、一見APBS GUIの機能を使うことはできないように見えます。しかし、以下の方法であればその問題をクリアすることができます。

とはいえ、そこそこ手間がかかるので、ふつうは各OSで配布されているバイナリ版のAPBS GUIを使ったほうがいいです。ただ、このやり方をマスターしておけば、macOSだけでなくどのOSでもPyMOL+APBSができるようになると思います。

![スクリーンショット 2018-08-06 22.46.18.png](https://qiita-image-store.s3.amazonaws.com/0/224327/8ac69d15-a6a7-c977-fc6e-8ce2c494e8fc.png)

## 環境

- macOS 14.5 (Sonoma)
- [ターミナルからHomebrewをインストール](http://brew.sh/index_ja.html)してある
- [macOS/CentOS 7/Ubuntu 22.04へのオープンソース版PyMOLのインストール方法](https://qiita.com/Ag_smith/items/58e917710c4eddab46ee)などを参考にしてオープンソース版のPyMOLをインストールしてある

## APBS, PDB2PQRのインストール

やり方は3通りあって、Homebrewを使う方法と、バイナリインストールとソースコードからのインストールがあります。macOSの方はHomebrewの方法を使うほうがおすすめです。また、近年の**Apple Silicon (M1チップ)搭載以降のmacbookなどでも唯一apbsを使うことができます**。ソースコードからのインストールの方法は上級者向けです。
一応、M1 Macでも[SchrodigerのウェブサイトからPyMOL 3.0のバイナリ](https://www.pymol.org/)をインストールしてくると、中にAPBSバイナリが同梱されているので、それを使うこともできます。

### APBS, PDB2PQRをインストールする（おすすめ）

macOSまたはLinuxを使っている方は、私が作成したHomebrewのFormulaを使うことで簡単にインストールすることができます（2024年7月29日以降）。

```bash
brew install brewsci/bio/apbs
```

これにより、`/usr/local/bin/apbs`（M1 mac以降は`/opt/homebrew/bin/apbs`）をインストールすることができます。

PDB2PQRはPyPIからpipコマンドでインストールすることができます。

```bash
python3 -m pip install pdb2pqr
```

`python3`の部分は使っているPythonのバージョンに合わせて`python3.11`, `python3.12`などに変更してください。2024年7月時点でのPython 3の最新バージョンは3.12ですが、3.12からはpipコマンドを使ったインストール（`python3.12 -m pip foopackage`でのインストール）の推奨ルールが大きく変化しました（2023年10月頃から？）。具体的には、それぞれの作業ディレクトリに仮想環境を構築して、その中でモジュールをインストールすることが推奨されるようになりました。これにより、異なるプロジェクトで異なるバージョンのモジュールを使うことが容易になり、また、モジュールの依存関係が壊れることを防ぐことができます。

Python 3.11までの場合は、作業ディレクトリごとの仮想環境構築を行わずに従来通り`python3.11 -m pip install foopackage`が使えます。なので、

```bash
brew install python@3.11
python3.11 -m pip install pdb2pqr
```

の方が今はまだ楽かも？

## APBS GUIプラグインのインストール

オープンソース版PyMOLはバイナリ版と違い、GUIプラグインがあらかじめインストールされていません。
しかしバイナリ版のプラグインのディレクトリをそのままオープンソース版の方のディレクトリにコピーしてくれば使用することができます。

このGUIプラグイン部分は[私のGithub](https://github.com/YoshitakaMo/pymolplugin)にコピーして置いてありますので、それをオープンソース版PyMOLのプラグインディレクトリに追加してやります。ターミナルを開いて

```bash
# pymolpluginディレクトリをダウンロード
cd ~ ; git clone https://github.com/YoshitakaMo/pymolplugin.git
# ファイルをオープンソース版PyMOLのプラグインディレクトリに追加（macOSのHomebrewで入れた場合）。
# $(brew --prefix)/はIntel Macの場合は/usr/local/に、M1 Macの場合は/opt/homebrew/に自動変換されます。
cp -rp ~/pymolplugin/* $(brew --prefix)/opt/pymol/libexec/lib/python3.12/site-packages/pmg_tk/startup
# ここでPyMOLを立ち上げてみて、プラグインがインストールされていればOK
# インストールできたら~/pymolpluginディレクトリは削除してOK
rm -rf ~/pymolplugin
```

と入力します。このコピーを行った後にopen-source版PyMOLを立ち上げると、上部メニューのPluginのところにAPBS Electrostaticsの文字が現れているはずです。

![スクリーンショット 2020-11-04 12.22.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224327/b27ed1ad-fb50-54b8-c3cb-68a42cbf908c.png)

この文字をクリックし、Advanced Configurationのタブをクリックします。このProgram Locationsを自身の環境にあわせて設定する必要があります。

![スクリーンショット 2020-11-04 12.23.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224327/59804f9c-e692-e967-953f-5745aa9cb851.png)

HomebrewでAPBSとPDB2PQRをインストールした場合は、上図のようにapbsの欄を`/usr/local/bin/apbs`にし、pdb2pqrの欄を`/usr/local/bin/pdb2pqr`に設定します（M1 mac以降は`/opt/homebrew/bin`になります。）。もしソースコードからインストールした場合にはこの限りではありませんので、適切なapbs, pdb2pqrバイナリ本体へのpathを指定しましょう。

他の部分は特に変更する必要はありません。これで右下のrunを押せばめでたくAPBSが動くはずです。