分子動力学シミュレーションソフトOpenMM8をLinuxにインストールしてみました。

いつも有益な情報をおしえてもらっているこちらのツイート https://nitter.net/830RDEkpvteEODM
でOpenMM8のインストールの仕方の記事がリツイートされていました。これは機械学習の分子動力学 (MD) シミュレーションへの適用で開発された最新のMDシミュレーションソフトウエアです。


こちらのサイトで紹介されている方法で、Ubuntu Linux (Ubuntu 22.04.3 LTS) のPCにOpenMM8をインストールしてみました。
https://hira-labo.com/archives/2409
いろいろトラブルがおこりました。原因は、
1) anaconda3の不具合が原因で、インストールの時にライブラリが存在しているのにソフトがみつけられないというエラーがでたこと。そして、
2) NVIDIAのGPUのドライバーが純正のものでなかったので、GPUをMD計算に使う設定ができなかったの二点です。
それらを解消するのは簡単です。
1) まずanaconda3をインストールしている場合は最新版にアップデートします。私の場合はanaconda3が入っていたのですがインストール中にエラーメッセージがでて消えなかったのでChatGPT といろいろ改善策をためして、結局既存のanaconda3を完全にアンインストールしたうえで、公式サイトから最新版のLinux用のanaconda3のインストーラー(シェルスクリプト)をダウンロードしてきました。これをbashコマンドで実行して anaconda3 をクリーンインストールしました。またNvidiaのGPUを搭載しているPCなのでGPU計算をするためのcudatoolkitもインストールしました。これもNvidiaの純正ドライバーではなくて、オープンソースのX.Org X serverのものを使っていたのでエラーがでました。NVIDAの公式サイトから自分のPCにあうドライバをダウンロードしてセットアップしようとしましたが、面倒でうまくいきませんでした。結局、次のようにもっと簡単、手軽にNVIDIAのドライバー変更ができました。やり方は、Ubuntuの「ソフトウエアとアップデート」から「追加のドライバー」タブを開き、NVIDIAドライバーのプロプライエタリ、検証済みのものを選んで変更を適用ボタンを押すだけです。これでドライバが変わりました。あとは再起動してドラバが変更されているのをかくにんすればOKです。NvidiaのGPUドライバーにしておくと、OpenMM8をインストールしたときにGPUを計算に使うように設定されるので計算が高速になります。

では実際に私が実際にインストールした手順をメモしておきます。Ubuntuは一番ポピュラーなLinuxのディストリビューションですので参考になると思います。コマンドにはアンダーラインをつけておきます。

まずanaconda3の完全アンインストール
rm -rf ~/anaconda3
公式サイトから最新版のインストーラーをダウンロード。
Anaconda3-2023.09-0-Linux-x86_64.sh
というシェルスクリプトである。

シェルスクリプトがあるディレクトリ(Downloads)に移動。
cd Downloads/
移動後シェルスクリプトを実行。
bash Anaconda3-2023.09-0-Linux-x86_64.sh
anacondaの利用許諾条件がまず表示されるので、enterを何度もおして最後のyes,noの選択のところまでたどりつく。これが一番うざい。
いきすぎると、デフォルトでnoになっているのでenterを押し続けていると、インストーラースクリプトが終了してしまうので注意。
ときどききいてくるyes, noの選択にyesで答えてインストールを完了させる。

(注意:condaが最新版でないというwarningは無視したが、最新版にするには、conda update -n base -c defaults condaを実行する。又はconda install conda=23.11.0などとバージョン番号をいれたコマンドを実行する。)

OpenMMというディレクトリがなければつくり、そのディレクトリへ移動。
cd OpenMM
openmmをインストールする。ここでは最新のpython 3.11シリーズで使うことを指定する。
conda create -n openmm python=3.11
(仮想環境でOpenMM8を使うのは、anacondaの設定などがPCで使う別のプログラムの設定と衝突したりしないようにするためです。計算速度には影響がなく、エラーがおこりにくいそうです。)

次に
conda activate openmm
でopenmm環境を開始。この環境をストップするには、conda deactivateというコマンドを使う)
次にopenmmのソフト本体をインストールする。
conda install -c conda-forge openmm cudatoolkit=11.2
ここでcudatoolkitのバージョンを11.2にしていることに注意。
このコマンドラインを実行すると、openmmがインストールされる。同時にその他必要なライブラリ(numpyとかscipyその他)などと、GPUを利用できるcudatoolkitも一緒にインストールされる。ただしこのインストールには、PCの環境によるのかもしれないが、ものすごく長時間かかることがある。インストーラーが止まっているように思えるほどだが、インストール中の印(くるくる回っている)がでているかぎりそのまま放置でOKである。昼飯前にとまっているのが、昼食後インストール完了しているというような時間がかかることもある。
インストールが終わったら、次のコマンド
python -m openmm.testInstallation
でうまくインストールできているか確認する。
こんな感じのアウトプットが出ると成功。
OpenMM Version: 8.1.1
Git Revision: ec797acabe5de4ce9f56c92d349baa889f4b0821

There are 4 Platforms available:

1 Reference – Successfully computed forces
2 CPU – Successfully computed forces
3 CUDA – Successfully computed forces
4 OpenCL – Successfully computed forces

Median difference in forces between platforms:

Reference vs. CPU: 6.30278e-06
Reference vs. CUDA: 6.74181e-06
CPU vs. CUDA: 7.36039e-07
Reference vs. OpenCL: 6.73427e-06
CPU vs. OpenCL: 7.76535e-07
CUDA vs. OpenCL: 2.35576e-07

All differences are within tolerance.

次にグラフィカルユーザーインターフェイスのopenmm-setupをインストールして、ブラウザ上で設定ができるようにしましょう。
conda install -c conda-forge openmm-setup
でインストールできます。
インストールに成功するとこんなメッセージがかえってブラウザが開きます。
* Serving Flask app ‘openmmsetup.openmmsetup’
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
127.0.0.1 – – [23/Jan/2024 14:50:58] “GET / HTTP/1.1” 200 –
127.0.0.1 – – [23/Jan/2024 14:50:58] “GET /static/Icon.svg HTTP/1.1” 200 –
127.0.0.1 – – [23/Jan/2024 14:50:58] “GET /favicon.ico HTTP/1.1” 404 –
co

openmm-setupについては以下の記事をご覧ください。
https://magattaca.hatenablog.com/entry/2022/02/12/201641#f-8187c53b
実際の計算例は最初に紹介したサイトにあるとおりに実行してみると一分ちょっとで計算終了となりました。できたoutput.pdbをPymolで開くと動画でシミュレーションの結果をみることができました。その辺のところは明日にでも紹介することにします。

福岡は今、外で雪が降り風が強まっています。ではおやすみなさい。