Macでの結晶構造解析環境の構築

Macで結晶構造解析

分子の構造を知るもっとも直接的な手法の一つがX線結晶構造解析です。今や結晶構造解析は、データ解析だけなら個々人のPCで(非商用なら)無料でできるようになりました。さまざまな解析ソフトウェアがありますが、中でも最近急速に人気を伸ばしつつあるのが Olex2 です。フリーウェアであり、かつ美しい画面の Olex2 は、ありがたいことにMac版もあります。ここでは、Mac版 Olex2のインストール方法を紹介したいと思います。

Olex2で表示したORTEP図

Olex2の仕組み

Olex2SHELXPLATON と組み合わせて使います。ざっくり言えば、Olex2 上で解析作業しますが、実際にその裏で結晶構造解析するのが SHELX、その細々したお手伝いをするのが PLATON です。

あらかじめ入れておくもの

Homebrew, XQuartz, iTerm2 (通常のターミナルでも可), zsh (なくても可) はインストールしておいてください。

関連記事

Homebrew (パッケージ管理システム) を使おう! 有機化学をやるMacユーザーにとって、OfficeやChemDrawのように必須というわけではないけれど、とても便利なソフトウェアとしてHomebrewがあります。Homebrew[…]

関連記事

M1 Macで化学をする環境を作ろう! 早くて安いと評判のM1 Macにて、便利なパッケージ管理システムであるHomebrewを使って化学をする環境を構築する手法を紹介したいと思います。 Intel Mac版はこちら↓ [si[…]

SHELXのインストール

shelx は The SHELX homepage からダウンロードします。まず、Registration をおこなうと、ダウンロードに必要なパスワードが送られてきます。

Downloadページから、送られてきたパスワードを使って、macフォルダの中のshelxlと拡張子.bz2のファイルを一式ダウンロードします。低分子の解析をする人はとりあえず、shelxt.bz2, shelxl, ciftab.bz2 は必ずダウンロードしてください。これらをMacのダウンロード フォルダ (Downloads) の中に作ったフォルダ (ここでは temp フォルダとします) にダウンロードします。

次に iTerm2 を開いて、temp フォルダに移動して、bz2 ファイルを解凍します。

$ cd ~/Downloads/temp  #tempフォルダへ移動
$ bunzip2 *.bz2  #bz2ファイルを全て解凍

次に解凍してできたプログラムに全てのユーザーの実行権限を付与します。

$ chmod ugo+x shelxt  #shelxtに全てのユーザーの実行権限を付与
$ chmod ugo+x shelxl
$ chmod ugo+x ciftab
$ chmod ugo+x <その他の解凍したファイル>

これらの解凍したファイルは全て /usr/local/bin へ移動します。

※M1 Macの場合、/usr/local/bin フォルダがないかもしれません。その時は /usr/local/bin を作成します。下記コマンドを入力するとログインパスワードが要求されるので、パスワードを入力して下さい。

$ sudo mkdir /usr/local/bin #M1 Macの場合はフォルダを作るところから。パスワードが要求されるので、それを入力
$ mv shelx* /usr/local/bin/
$ mv ciftab /usr/local/bin/ 
$ mv <その他の解凍したファイル> /usr/local/bin 

M1 Macでは/usr/local/binのパーミッションの関係でmvコマンドが弾かれると思います。その時は頭にsudoをつけて下さい。

$ sudo mv shelx* /usr/local/bin/
$ sudo mv ciftab /usr/local/bin/
$ sudo mv <その他の解凍したファイル> /usr/local/bin

ファイルの移動ができたらiTerm2を再起動して which コマンドでパスが通っていることを確認します。下記のように出力されれば成功です。

$ which shelxl
/usr/local/bin/shexl

PLATONのインストール

PLATONのインストールの前準備

PLATON をインストールするには gfortran が必要です。iTerm2gfortran コマンドが使えるかを確認します。

$ which gfortran
/usr/local/bin/gfortran 
あるいは /opt/homebrew/bin/gfortran  #M1 Macの場合

/usr/local/bin/gfortran (M1 Macでは /opt/homebrew/bin/gfortran) とでればインストールされています

gfortran not found と表示されるときは gfortran が入っていないので、Homebrewからインストールします。gfortrangcc に組み込まれているので、gccをインストールします。

$ brew install gcc  #gfortranがないと言われたらgccをインストール

PLATONのインストール

platonのサイトにあるマニュアル (pdf) に沿ってやります。一部改変してます。

platonのダウンロードサイトから platon.tar.gz をダウンロードフォルダ (~/Downloads) にダウンロードします。これを解凍してコンパイル (実行可能形式に変換) します。(2020年12月23日 リンクが変わっていたので修正)

$ cd ~/Downloads  #ダウンロードフォルダに移動
$ tar zxvf platon.tar.gz #ファイルを解凍
$ cd platon  #解凍してできたplatonフォルダに移動
$ gunzip *.gz  #フォルダ内のgzファイルを全て解凍
$ gfortran -o platon platon.f xdrvr.c -L/opt/X11/lib -lX11 -I/opt/X11/include #platonファイルをコンパイルして作成。

gfortranコマンドは少し時間がかかります。

Mojave では stdio.h がないとエラーメッセージがでることがあります。そのときは、下記コマンドをうちこんで、開いたフォルダのmacOS_SDK_headers_for_macOS_10.14.pkg を実行してください。その後、再度上記 gfortran コマンドを実行します。
参考:macOS Mojave にアップデートしたら stdio.h がないって言われた (Qiita)

$ open /Library/Developer/CommandLineTools/Packages/

もしエラーが出るなら。下記のように、gfortran の前に sudoを入れます。このときは、パスワードを要求されるはずなので、入力してください。

$ sudo gfortran -o platon platon.f xdrvr.c -L/opt/X11/lib -lX11 -I/opt/X11/include

Catalina では下記コマンドでインストールできるそうです(2020年8月4日 追記。名古屋大学 山下誠先生に教えていただきました。ありがとうございます。)

$ gfortran -o platon platon.f xdrvr.c -I/opt/X11/include -L/opt/X11/lib -lX11 --sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk

Big Sur (IntelMac) では下記コマンドでインストールできます。”11.1.sdk”の数字の部分はOSのバージョンによって変わってくる可能性があります。”MacOSX11″まで打ち込んで、Tabキーをおせば、後の部分が補完されます(2021年2月3日 追記)。

Big Sur (M1 Mac) でも同様に下記コマンドでインストールできるそうです。その際、”Class AMSupportURLConnectionDelegate is implemented in both ?? ~”といったエラーが出ることがありますが、これは platon が動けば気にする必要はないようです(2021年4月7日 追記。東京大学 齋藤杏実先生に教えていただきました。ありがとうございます。)

$ gfortran -o platon platon.f xdrvr.c -I/opt/X11/include -L/opt/X11/lib -lX11 --sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk

コンパイルがうまくいくと、platon というファイルができるので、このファイルと check.def を下記コマンドで、/usr/local/binの中にコピーします。M1 Macの人は頭に sudo をつけてコマンド入力して下さい。

$ cp platon /usr/local/bin/. #ファイルplatonを/usr/local/bin/にコピー。最後のピリオドを忘れずにとのことです。
$ cp check.def /usr/local/bin/.
$ chmod -R 755 /usr/local/bin/platon #ファイルplatonのパーミッションを変更して実行可能に
$ chmod -R 755 /usr/local/bin/check.def #ファイルcheck.defのパーミッションを変更して実行可能に

PLATONの設定

check.def の場所を環境変数CHECKDEFで設定します 。cifファイルのVALIDATIONで使うファイルです。この設定、しなくても良いという説もありますが、いちおうやっておきます。面倒くさい人はすっとばしてください。たぶん、問題ありません。XQuartz のシェルに対して設定します。シェルは特に変更していなければ、bash (Catalina以降は zsh) のはずなので、.bashrc (Catalina以降は .zshrc) に設定します。最近のMacはbash設定ファイル、.bashrc, .bash_profile がそもそもないので、これを作るところから始めます(Catalina以降は .bashrc, .bash_profile の作成は必要ありません)。

$ cd  #ホームフォルダに移動
$ touch .bash_profile  #.bash_profileを作成。Catalina以降は不要
$ touch .bashrc  #.bashrcを作成。Catalina以降は不要

下記内容を .bash_profile に書き込む (Catalina以降は不要)。
※頭が”.“(ピリオド)から始まるファイルは隠しファイルになっていて、通常のFinderからは見えません。VSCodeやvim等のエディタから開くのが簡単です。

if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi

下記内容を .bashrc に書き込む。(Catalina以降は .zshrc に書き込みます)

export CHECKDEF='/usr/local/bin/check.def'

Olex2 のインストール

Olex2のユーザー登録とインストール

Olex2のウェブサイト OlexSys から一番新しい Olex2 をダウンロードし、インストールします。以前はユーザー登録が必要でしたが、不要になったようです。

Olex2の設定

SHELXPLATON のパスを指定する必要があります。Olex2 を起動して、Home の中の Settings をクリックして展開し、表示された PATH:/usr/local/bin と入力します。

Settings をクリック
PATH:/usr/local/bin を入力

その後、再起動します。パスを上手く認識していると、アイコン欄に PTON ボタンが表示されます。これをクリックすると PLATON が起動します。また、SHELX が認識され、SolveSHELXT が、最小二乗法 (LS) で SHELXL が選べるようになります。

PTONボタンをクリックするとPLATONが起動

補足

Olex2 の動作が重たいとき (2020年8月4日 追記)
Olex2 の動作が重たいときは、[Tools]-[Settings]-[Lines of Text]で表示する行数を減らしてみて下さい。表示する行数を減らせば減らすほど劇的に動作が軽くなります。

PLATON が起動しないとき (2020年8月11日 追記)
まずコマンドラインからwhichコマンドで platon へのパスが通っていることを確認します。

$ which platon  # platonへのパスが通っていることを確認する
/usr/local/bin/platon  #こう表示されればOK。

もし “platon not found” と表示されたら platon が/usr/local/binにコピーできていないか、実行権限が付与されていません(パーミッションの設定に失敗しています)。

無事に platon へのパスが通っていることが確認できたら、次にコマンドラインで platon を実行してみます。

$ platon

platon が起動すれば問題ありません。エラーが出て platon が起動しないときは platon を再度インストールし直す必要があります。

Olex2 の使い方について

Olex2 の使い方は東京大学の強力X線実験室や、琉球大学研究基盤センターのページが詳しいです。

ShelXleのインストール

(2020.08.11追記)構造精密化に特化したソフトウェア ShelXle のインストール方法を別記事にまとめました。

関連記事

ShelXleとは ShelXle は SHELX (特にSHELXL) を扱うためのグラフィカルなインターフェースを提供するソフトウェアです。最小二乗法による構造精密化に威力を発揮します。Mac版もあります。アカデミック用途は無料で使え[…]

>mitsudo.net

mitsudo.net