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[…]

SHELXのインストール

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

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

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

$ which shelxl
/usr/local/bin/shexl

PLATONのインストール

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

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

$ which gfortran
/usr/local/bin/gfortran 

/usr/local/bin/gfortran とでればインストールされています

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

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

PLATONのインストール

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

platonのダウンロードサイトから platon.tar.gzcheck.def をダウンロードフォルダ (~/Downloads) にダウンロードします。これを解凍してコンパイル (実行可能形式に変換) します。

$ 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

 

コンパイルがうまくいくと、platon というファイルができるので、このファイルと check.def を下記コマンドで、/usr/local/binの中にコピーします。

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

PLATONの設定

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

$ cd  #ホームフォルダに移動
$ touch .bash_profile  #.bash_profileを作成
$ touch .bashrc  #.bashrcを作成

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

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

下記内容を .bashrc に書き込む。

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.08.04追記)
Olex2 の動作が重たいときは、[Tools]-[Settings]-[Lines of Text]で表示する行数を減らしてみて下さい。表示する行数を減らせば減らすほど劇的に動作が軽くなります。

PLATON が起動しないとき (2020.08.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