magattacaのブログ

日付以外誤報

Macで独習!量子化学計算入門!! 〜インストールでつまずいた話〜

電子書籍「独習 量子化学計算」を購入し、一通りポチポチ遊んでみました。

ゼロからわかる!!」の謳い文句の通り、ど素人でもソフトウェアを動かすことができ、とてもオススメです!

WindowsでもMacでも実践できるように解説してくださっているのですが、 私のMacではソフトウェアのインストールなど、環境構築でいくつかつまずきました。

備忘録としてメモを残します。

尚、本記事は以下の環境での事例です。

書籍の紹介とオススメポイント

まず書籍について、初学者からみた感想とオススメポイントをご紹介します。

ゼロからわかる!!独習 量子化学計算」は、めちゃくちゃわかりやすくて素晴らしいサイト「PC CHEM BSICS.COM」さんが出されている電子書籍です。

こちらのサイト、量子化学の用語を検索すると何度もトップにヒットしました。いずれの記事も簡潔でわかりやすく、初学者の私にとって非常に参考になりました。

また、理論・用語の解説だけでなく、「無料で楽しむ量子化学計算サイト」とのことで、 自宅のPCで試すことができるソフトウェアとその利用方法についてもたくさん紹介してくださっています。

気軽に試せるのは初心者にとってとてもありがたいですよね!

で、この素晴らしいサイトの電子書籍独習 量子化学計算」ですが、 サブタイトルは「理論からはじめない新しい量子化学計算の本」!!!

「難しいことよくわかんないけど、とりあえずやってみたい!」という、私にとってピッタリすぎる謳い文句です!

早速購入して一通りやってみましたが、「初学者が独学でつまずくポイントがよくわかっていらしゃる・・・」という感じでとても分かりやすかったです。

具体的には、以下のような構成となっているのが良かったです。

  1. 実際に計算を経験することを通して学習できるように構成
  2. ソフトウェアのインストールから使い方結果の解析まで解説
  3. 一つ一つの章が簡潔で、初学者でも力尽きずに取り掛かかれる
  4. ステップバイステップでより複雑な計算の設定がわかるようになる

OSはWindowsMac両方に対応しており、一方でしか使えないソフトについては、その旨と別の方法の解説がのっています。(使われているソフトはちょっとWindowsより?)

また、操作方法は実際の画面の図で解説されているのでわかりやすくなっています。

個人的にとても助かったのは、操作方法を繰り返し説明してくださっている点です。

私は記憶力が貧弱なので、書籍をよんでいるとよく「基本忘れた!また、前の章に戻って確認しなきゃ。面倒くさいからもういいや。」と投げ出してしまうのですが、今回はそうならずにすみました!*1

ちょっと気になった点は、操作画面の写真の解像度が少し低く、 拡大してもボタンや設定の文字がよくみえないということがありました。*2

あと、「文字検索できたら便利なのになー」と思いました。*3

また、ソフトウェアのインストールや様々なサイトの紹介に際してリンクが記載されていますが、 Kindleから直接Webページに飛んだり、文字列のコピーをしたり、ということができませんでした。ただし、この点は「書籍のサポートページ」にリンク集を用意してくださっているので、そちらで解決しました。

さらにリンクだけでなく、サポートページには「サンプルファイル」も用意してくださっています。「自分で作った初期構造だと計算が収束しない!振動数めっちゃ負!もう嫌だ!!」となった時には、サンプルファイルを利用して計算を進めていくことができます。

「できの悪い人間の諦めポイント」がよくわかっていらっしゃる!ありがとうございます!!

というわけで、「量子化学計算興味はあるけど、どこからスタートすれば良いかわからない」という方は この書籍から始めるのがとてもオススメだと思います!

Macで環境構築する際につまずいた点

では本題、Macで環境構築する際につまずいた点とその回避策の備忘録です。

Avogadroの英語化

まず、Avogadroについてです。 Avogadroはさまざまな量子化学計算ソフトウェアの入力ファイルを作成することができ、 本書でも繰り返し利用方法が解説されています。

MacでAvogadroをダウンロードすると、メニューが日本語化されているのですが、 ちょっと微妙で、英語・日本語の重複があったりして混乱します。

こんな感じ・・・

f:id:magattaca:20210204232001p:plain
Avogadroの日本語がちょっと微妙

書籍の表記と合わせるためにも英語化した状態で利用するのがオススメです。

Avogadroのメニューを英語にする方法は、PC CHEM BASICS.COMさんの記事 「Avogadroを使ってみよう」 でも解説されていますが、私の環境ではうまくいきませんでした。

サイト記載の方法は以下の通り。

  1. Avogadroのアプリケーションをcontrolボタンを押した状態でクリック
  2. 「パッケージ内容を表示」を選択
  3. Contents⁩>Resources⁩内の「ja.lproj」をフォルダごと削除

この通りにしても日本語のままでした。

そこで、Avogadroのメールフォーラム(?)(こちら)の記述を参考にして、さらに「xxxxx.qm ファイル」を削除しました。

f:id:magattaca:20210204232510p:plain

こちらのファイルもAvogadroを右クリックして「パッケージの中身を表示」すれば確認できます。

このqmファイルが翻訳に関与しているそうなので、削除すれば自動的にデフォルトの英語となります。

こんな感じ・・・

f:id:magattaca:20210204232138p:plain
英語にしてしまった方がわかりやすい

メニューの重複も無くなってわかりやすくなりました。

Fireflyのテスト失敗(Wineの設定、prefix)

次にFirefly(PC GAMESS)(version 8.2.0)の計算を実行しようとしてつまずいた点です。*4

Fireflyインストール後、以下のコマンドでテストを実行しましたが失敗しました。

/Applications/Firefly/BENCHMARKS-THREADED-TESTJOBS-RUNSCRIPT-DualCore-Only.sh

ターミナルで実行すると、以下のようなメッセージがでて計算が走りませんでした。

wine: 'ホームディレクトリ/.wine' is a 64-bit prefix, it cannot be used with 32-bit Wine.

「テストファイルが問題?」と、別に用意した「水(H2O)の構造最適化計算」を試しましたが、 こちらもアウトプットがファイルが作成されず、Fireflyがすぐに閉じてしまいました。

エラーメッセージのWINEですが、「Windows用のソフトウェアをMacで利用するための環境をつくる」ためのものだそうです。

Mac用のFireflyをインストールすると、内部に「WINE」というディレクトリもあり、Fireflyパッケージの中に含まれているようです。

で、ソフトウェア起動時に、WINEの設定がホームディレクトリ下の「.wine」ディレクトリにつくられて読み込まれるようなのですが、 どうもこのprefix(?)のバージョンの違いが問題となったようです。

そこでこの「.wine ディレクトリを一度全て削除」してしまったあとに、再度Fireflyのテストを試したところ無事実行することができました!

Firefly実行後に再度確認すると、同じ場所に新しい「.wine」ディレクトリができていました。

注) この方法だとWINEに依存する既存の他のパッケージに影響があるかもしれません。もっと良い方法をご存知の方はご教示いただければ幸いです。

私の場合、以前に別のWindows用ソフト(WinMOPAC)を利用しようとして、Wineを個別にインストールしたことがあり、 その時に作られた設定が今回のFireflyと合わなかったのが原因だったようです。FireflyのWINEはwine 1.1.33 ソースに基づいているようですが、10年くらい前のもののようなので、以前のWINEが64-bitで、Fireflyが32-bitだったのかなぁと推測しています。

尚、Firefly付随のインストールマニュアルに書かれているテスト用のコマンドは、現在のバージョンとずれているので修正が必要です。

マニュアルでは、Dual coreの場合ターミナルで以下を実行するように記載されています。

/Applications/Firefly/BENCHMARKS-THREADED-TESTJOBS-RUNSCRIPT.sh

実際には、配布されているファイルは以下でした。

/Applications/Firefly/BENCHMARKS-THREADED-TESTJOBS-RUNSCRIPT-DualCore-Only.sh

テストされる際にはご注意を!

Fireflyでインストールが推奨されているアプリ

Firefly 8.0.0(for Mac)で推奨されているソフトウェアとして以下のものがあります。

  1. TextWrangler
  2. wxMacMolPlt

Firefly 7.1.G update 以降、これらのソフトウェアへの依存性(dependency)はなくなっているようなので、 別に入れなくても問題はないようです。

ですがFireflyのインストールマニュアルに「便利だし無料だからマジでおすすめ!(“strongly recommended”)」と書かれていたので導入しました。 デフォルトの「/Applications」ディレクトリに入れておくことがオススメされています。

TextWranglerは無料のテキストエディタです。 Firefly計算実行した際に出力の「.outファイル」がTextWranglerで自動的に開かれ、 逐次内容が更新されるので計算が走っているかどうかの確認に便利です。・・・が、邪魔といえば邪魔です。。。

無料のテキストエディタは色々あるので、別にTextWranglerに拘らなくても良いのかなーという感じです。 オススメな理由をご存知な方がいらっしゃったら教えていただければ幸いです。

もう一つのwxMacMolPltは、計算結果の解析に使うことができ、「独習 量子化学計算」でも何度もでてきます。こっちはインストールしておきましょう!

GamessQ立ち上げ時のエラー

2021年現在、「GAMESS for MacOS X」にはGamessQが含まれていません。別途インストールする必要があります。

私のMacOS環境では「GamessQ (v1.2.2)」を使おうとすると以下のエラーが出ました。バックエンドの立ち上げに失敗しているみたいです。

f:id:magattaca:20210204232717p:plain
GamessQのエラー

「Add」などのボタンがグレーになっていて使うことができません。・・・困った。

回避策(?)はこちらのGitHubページに書かれていました。(→Error launching backend on fresh install under OS X #19

  1. GamessQのディレクトリにあるコマンドラインバイナリ「gamessqd」をダブルクリックして実行
  2. アプリ「GamessQ.app」を立ち上げ

黒い四角のアイコン gamessqdをクリックするとターミナルが立ち上がります。 この状態でGamessQのアプリを立ち上げれば先のエラーが出ず、正常(?)に起動できました!

f:id:magattaca:20210204235848p:plain
「GamessQ.app」の前に「gamessqdd」を立ち上げる

「Add」や「Clean up」といったボタンが使えるようになっています(アクティブ?)。

f:id:magattaca:20210204232915p:plain

アプリを閉じるとターミナルにもlogoutと表示されてプロセスが終了します。

Gamess計算実行時のエラー(HOST_NOT_FOUND)

GamessQが使えるようにできたので、計算を実行したところ結果が得られずログに以下のエラーが出ました。

 Error: Gethostbyname(XYZXYZ) returned HOST_NOT_FOUND.
 ddikick.x: Fatal error detected.

Gethostbyname(XYZXYZ)のXYZXYZの箇所には、実際には私のMacBookに設定した名前が入っています。*5

上記のエラーはGamessQを使わずに、Gamess単独で以下のテストを実行しても再現しました。(GAMESS(US)は少し古い2018年のビルドです)*6

  1. ターミナルでGamess実行ファイルを格納したディレクトリに移動
  2. ./gms tests/standard/exam01
  3. output file name? [tests/standard/exam01.log]と聞かれるのでReturnキーを押す
  4. 出力されたexam01.logを確認

Gethostbyname()は指定したホスト名から、ホストに関する情報を得るための命令のようです。
つまり「PC(MacBook)に設定した名前のホストが見つからないよ!!(HOST_NOT_FOUND)」みたいなエラー???

色々調べた結果、macOShostsファイルの設定を追加してやればよいのではないか、となりました。

hostsは「./etc」(あるいは「./private/etc」)にあります。テキストエディタで開くとこんな感じでした。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost

「よくわからないけどローカルだからローカルホストでしょ!」ということで、 7行目の後ろにPCの名前(XYZXYZ)を追加して以下のように書き換えました。(書き換えには権限が必要です)

127.0.0.1 localhost XYZXYZ(←MacBookにつけた名前)

hostsファイル変更後に、Gamessのテストを再度実行すると以下のようなポップアップが出てきました。

f:id:magattaca:20210204233240p:plain

ddikick? OK!OK!・・・知らんけど。

「ネットワーク受信接続」を許可すると「exam01.dat」ファイルが作成され、無事計算実行できました!

「exam01.log」の中身も 「EXECUTION OF GAMESS TERMINATED NORMALLY」となっていました。

こちらのページによると、 「127.0.0.1ローカル・ループバック・アドレスと呼ばれ、自分自身を指す特別なIPアドレスである。「localhost」という名前でも参照できる。自分自身の上で動作しているサービスへ接続する場合は、このIPアドレスを利用できる。」だそうです。

GamessはローカルPCで計算を実行する場合でも、内部でネットワーク接続処理(TCP/IP?)を行う構成になっているのでしょうか???

localhostに追加するのが正しいのか全くわかりませんがとりあえず動いたのでヨシ!!

IPアドレスをもう少し検証

せっかくなのでもう少し実験してみました。

先ほどのページには以下の記載がありました。*7

一般的には「127.0.0.1」というIPアドレスIPv4の場合)が利用されるが、実際にはIPアドレスの最上位のバイト(最上位の8bit)の内容が「127」でありさえすればよいので、「127.0.0.1~127.255.255.254」の範囲内ならばどのIPアドレスでも利用できる(127.0.0.0と127.255.255.255の2つはブロードキャスト・アドレスのため除外される)。例えば127.0.0.2でもよいし、127.1.2.3でもよいが、一般的な用途では127.0.0.1だけが利用される。

別のアドレスでもOKなら、localhostの後ろに加えずに「127.0.0.2 XYZXYZ」としてもよいのでは???

ということでhostsファイルを以下のようにして再テストしてみました。

127.0.0.1 localhostt
127.0.0.2 XYZXYZ(←MacBookにつけた名前)

127.0.0.2を使っても計算は終了し、「exam01.log」は EXECUTION OF GAMESS TERMINATED NORMALLYとなりました。

ですが、データファイル「exam01.dat」(PUNCH出力)が作成されず、代わりに「exam01.F05」というファイルができました。 また、ターミナルもコマンド実行中のままで次に移行しませんでした。

logには計算結果が書かれていたものの、「.datファイル」(PUNCHファイル)への出力、計算プロセスの終了がうまくいっていない感じでしょうか?

正常な動作のためにはlocalhostと同じIPアドレスにしておいた方が良さそうです。

ソフトウェアの通信やコマンドラインの処理、何が行われているのかさっぱり意味がわからないです。。。。

wxMacMolPltによる結果の可視化の違い(FireflyとGamessQ)

「独習 量子化学計算 Chapter 8 フロンティア軌道で反応を予測しよう」では、MacMolPltにより分子軌道を可視化する方法が解説されています。

この操作で、書籍では「Fireflyで得た計算結果(.outファイル)」を解析していましたが、私の環境では再現できませんでした。

一方で、「GamessQで同じinputファイルを使って得た計算結果(.logファイル)」では、可視化操作がうまくいきました。

行いたかった作業は以下のように「Select Orbital Set : Molecular Eigenvectors」で、 「Select Orb : Energy」から目的の分子軌道を選択し描画することです。

f:id:magattaca:20210204233550p:plain
やりたかった作業

上図は、GamessQで得たlogファイルを用いたものです。対して、Fireflyのoutファイルでは以下となりました。

f:id:magattaca:20210204233625p:plain
Fireflyの出力ファイルだとできない

上図のように、そもそも選択できる描画「Surfce Type」が少なく、「Atomic Orbitals」しか選択できませんでした。

Fireflyの計算結果(.outファイル)の中身を確認すると、以下のように「MOLECULAR ORBOTALS」の情報が記載されていたので、 おそらく描画ソフト側(wxMacMolPlt)の問題ではないかと推測しています。

f:id:magattaca:20210206210437p:plain
Fireflyでも分子軌道は出力されている

私のPC環境(or MacOS)特有の問題かもしれませんが、同じ問題に出くわした方のためにご参考までに紹介しておきます。

おまけ Gatekeeperへのアプリ許可の追加

GamessQのbackend エラー回避で参照したGitHubGateKeeperパーミッションについても言及されていました。 「administratorの権限がないと、先の回避策が使えないのでは???」って感じの話みたいです。

こちらのページによると、「Gatekeeperとは、Mac App Storeからインストールするかユーザーの右クリック操作により許可されたアプリだけを起動できるようにする、セキュリティ強化の仕組み」だそうです。

「開発元本当に信頼できる???」って聞いてくるあれですね!

この許可をターミナルのコマンド「spctl -add パス」を使って処理することもできるとのことです。

例えば、GamessQの場合なら以下のようなコマンドとなります。(パスは適宜修正してください)

spctl --add "/Applications/GamessQ/GamessQ.app"
spctl --add "/Applications/GamessQ/gamessqd"

許可リストから外す場合は「spctl -remove パス」とすれば良いそうです。

spctl --remove "/Applications/GamessQ/GamessQ.app"
spctl --remove "/Applications/GamessQ/gamessqd"

インストールの際にsudoと組み合わせておけば、administrator権限がない場合でも問題を回避できるようになるみたいです。(GitHubでは実習で生徒が使うPCの設定が議論されてました)

まとめ

以上、「独習 量子化学計算」の感想と、Mac量子化学計算の環境構築につまずいた点のご紹介でした!

繰り返しになりますが、とりあえず計算を始めてみたい初学者にとてもオススメな書籍という感想です。*8

ハートリー・フォックやDFTという用語をなんとなく知ったものの、実際にはどんな感じか全くわからなかったので非常に勉強になりました。

動かしてみると、「SCF計算ってわかったつもりになってたけど、具体的にどの部分の何を計算してるんだっけ???」とか、 「DFTで計算したら、HFでできたアセトンの構造最適化失敗するやん!負の振動とは一体???」などなど、新たな疑問がたくさん出てきました。

すこし初期構造を変えるだけで計算がうまくいかなくなったりして、計算化学の実験科学的な側面をちょっと体感できたのでよかったです。たぶん論文に載っているような結果は、膨大な試行錯誤の結果なのでしょうね。格好いい図くらいに思っててすみませんでした。

あと、途中で北浦-諸熊解析という用語が出てきて、おおっよくわからないけど格好いい!!!これが噂のONIOM??FMO??とテンション上がりましたが全然関係なかったです。

水分子1つの計算でつまずいているのに、タンパク質の計算を理解できる日はくるのでしょうか。。。。

ゆれるアセトン

f:id:magattaca:20210204234525g:plain

*1:レベル低い感想ですみません

*2:外付けモニタと私の視力のせいかも・・・

*3:私のKindleアプリが古いせいかも

*4:Fireflyのライセンス認証のメールが中々来ないと思っていたら、Gmailの迷惑フォルダに入っていました。受信日、翌日だったのでレンスポンスめちゃくちゃ早くてびっくりです。

*5:恥ずかしいので隠した

*6:テスト方法参考 量子化学計算ソフト GAMESS のエラー

*7:ローカル・ループバック・アドレス(127.0.0.1)とは?

*8:回し者ではないですよ!ノーアフィリエイトですよ!