SDPD の履歴(No.2)


粉末X線回折データを使って構造解析する方法についてのメモ

 SDPDとはstructure determination by powder diffraction dataのこと

 別項でSuperflipとFoxを使った解析の手順をまとめた(Superflip_plus_Fox)。また、それに関連して全体的に少し直した。

RIETAN-FP (Rietveld法)関係の話題

回折パターンの表示について

 RIETAN-FP v.2.3以降ではgnuplotを使って回折パターンを表示できるようになりました。入力ファイル(*.ins)でgnuplot出力のオプション(NPAT=1)を選んで、Rietveld解析を実行する。なおinsファイルも変更されているので、Examplesの新しいinsファイルを雛形として使う。プロット関係の*.plt, *.gpdファイルが出来る。graph.commandを実行させると回折パターンがpdfファイルで表示される。プロットの細かい調整は、*.pltファイルをeditorで開き、パラメータ等を直すことで可能である。pdfファイルの余白を切りたい時は、pdfcropを使います。以下のコマンドを実行する。pdfcrop実行にはpdfcrop(Perlスクリプト)とghostscriptが必要であるが、これらはMacTeXをインストールするとその中に含まれている。プレビューでも余白をとることは出来るが、これは実際に余白を削っているのではないので、注意。

% /usr/texbin/pdfcrop --margins 5 --pdfversion 1.4 test.pdf

 gnuplotを使う方はこれで結構なのですが、gnuplotを使えない、使わない方のために、.gpdファイルをPlot2用にコンバートするコードを作っておきました(2016/02/21)。以前置いていたitx2plot.pyの代わりです。
 表示にはPlot2というフリーのMac OSX用グラフソフト(https://plot.micw.eu )が必要です。Appstoreからダウンロードできます。RIETAN-FP実行後、ターミナル上で以下のコマンドを実行し、RIETAN-FPから出力された.gpdファイルをコンバートしておきます。

% ./gpd2plot2.py test.gpd test.txt

 Plot2のファイルメニューから、Import ASCIIで、コンバートしたファイルを読み込みます。この時に、Import ModeはMulticolumn, Field Separatorは','にします。とりあえずパターンが表示されるはずです。Plot2では強度データが正しく表示されていないことがよくあります。これはデータが多い時に間引いて表示しているために生じるようです。正しく表示させるには、Inspector windowの上部一番左のツールアイコン(General Inspector)をクリックして、Enable drawing of every data point:にチェックを必ず入れてください。デフォルト状態ではチェックが外れてます。
 上記で一応回折パターンが表示されて、fittingがよいかどうか等は判断できますが、回折位置を
示す縦棒(tick)がまだちゃんと表示されていません(水平線になっている)。正しく表示するには、まずツールアイコンの右端(Data Buffer Inspector)をクリックして、各データ列を表示させます。4番以降が回折線位置のデータになってます。一番左側の矢印列をダブルクリックすると、その番号の操作ができます。なお、矢印列以外でダブルクリックするとデータの表示/非表示が切り替わります。まず4番目の矢印列でダブルクリックすると、矢印が4番に移動してきます。この状態でツールアイコンの左から2番目(Data Style Inspector)を選択します。そうするとこのデータの表示方法を変更できます。縦棒を示したいので、まずLineのチェックを外して、Y Stickをチェックします。そして、Sticksizeを適当な長さに設定します。またStickの色もここで設定できます。グラフ画面を見ながら、見やすいように適当に設定していきます。同様に他のデータについてもスタイル等で見やすくなるように変えておきます。0番目は測定データなので、普通はLineのチェックは外して、Dotで表示するのがいいと思います。見やすくなったら、ここでツールアイコンの右から3番目(Macro Editor)をクリックします。一番下左の歯車プルダウンアイコンから、Insert Styleを選択すると、現在のスタイル用のマクロを記録してくれます。次回から、データを読み込んだ後に、このマクロをMacroメニューから実行すると、一発で現在のスタイル設定に変更できます(ただデータ自体が異なると細かい調整が再度必要)。先のEnable drawing of every data point:はマクロでは設定できないので、ここのチェックは忘れずに。そのようにして作成したグラフを下に示します。これは計算チェックのみのためです。また見ると分かりますが、refinementがそれほどうまくいっていない例です。

plot2-sample.png

使ったpythonスクリプト.今のところ縦棒(tick)は5相までに対応してます(6相以上の場合はスクリプトをちょっと直す必要があります)。Macではpythonはデフォルトでインストールされてますが、このスクリプトが実行できるようにおまじないが必要です(>chmod 755 gpd2plot2.py) 。

Foxについて

 Foxは実空間のモンテカルロ法によって初期結晶構造を求めるためのプログラムです(https://vincefn.net/Fox/FoxWiki )。リンク先からプログラムをダウンロード可能です。Windows, Linux版もあります.
 結晶構造,回折パターン等全てがオブジェクト化されてます。そこがFoxの特徴です。多面体等を入力できるのでケイ酸塩の構造解析には最適です。我々の場合、NMR装置があるので、そちらから配位多面体の情報が直ちに得られます。その情報をモデルにうまく活かすことができます。
 indexing、空間群探索、Le Bail法も使えて、結構総合的な粉末X線解析ソフトとなってます。ただRietveld法はできません。粉末X線データのみがあれば、計算が始められます。indexingはDicvolを使ってます。ただし必ずしもうまく見つけてくれません。また低対称性でひどく時間がかかる場合があります。大体こんな場合は強制終了してしまうので、そのまま放っておいても正常に終了するのかどうか分かりません。ピークのリストをテキスト出力できるので、それを使ってTREORなど別のプログラムで確認した方がいいでしょう。なおKalpha2のピークや不純物ピークが混ざっていることがあるので、TREORで処理する場合にはeditorで取り除いておく必要があります。これはテキストファイルに出力して編集すればいいのですが、Powder Patternのwindowで余分なピークをRemove peakで削除してもいいです。
 Le Bail法によるパターンフィッテングは今のところpseudo-Voigtのみ使えます。Le Bail法の結果はセーブすると作られるxmlファイルの中にあります。Le Bail法の結果はフーリエマップを書かせる時にも使われています。
 空間群の推定ができます。これは可能な空間群についてLe Bail法を使ってRwp、 GoFを計算しているようです。GoFの小さい順で候補が表示される。対称性にもよるが、これには時間がかかります。必ずしもリストの1番が正解とは限りません。最近遭遇した例では、非常に小さいピークで、それが空間群を決める重要なものであっても、より少ない、強いピークをフィットした方がRwpが下がるため、全く間違った空間群がリストの上位を占めることがありました。この場合、計算にだけ頼っていてはまず正しい空間群にはたどり着けません。やはりパターンをよく見て、弱いピークが選んだ空間群で説明されているかを地道にチェックする必要があります。
 適当な粉末回折データがあれば,Foxだけでindexing、空間群推定、Le Bail法による格子常数やプロファイルパラメーターの最適化、フーリエ合成、そして本命の構造を実空間探索法のParallel Tempering法で決めることまでできます。ただ最終的な精密化には別にRietveld法プログラムを使う必要があります。出力はFullprof用だけのようです。ただcifで構造を出力しておいて、
それをVESTAで読んで,RIETAN-FP用の.insファイルを作ればRIETAN-FPで計算できます。
 MacでFoxを使っているとしばしば異常終了する時があります。そのためデータはこまめにセーブする必要があります。特にindexingする前に。
 粉末回折データの入力フォーマットに関する情報が見つかりませんでした。Fullprofのフォーマット等いくつかは用意されてます。付属のサンプルデータはFullprofのフォーマットのようです。私は手持ちのデータ等(マックサイエンスやSPring-8で取ったもの)をサンプルデータと同じフォーマットに変換して試してます。または1行に2thetaと強度の1ペアで入っているデータでも読み込めました。リガクのrasフォーマットの強度部分以外を削除したものも読み込むことができます。

Foxで遊んでみる

PbSO4

(マニュアルにPbSO4のチュートリアルがありますが、格子常数と空間群は天下り的に与えられています。ここではそれらも含めて計算してます。中性子データは使わない)

ZrO2

Cr2O3

Al2O3

calcite

F-apatite (Ca5P3O12F): これはRIETAN付属のデータを使った

t-AlF3:4つAlの席があるのでこれまでよりも手強い。全て6配位。これの粉末X線データからの構造解析論文はLe Bailら, J. Solid State Chem., 100, 151-159, 1992.

Fox + 固体NMRで使う

Fox + Superflipで使う

FullprofのMac版インストール

Expo2004をMacで動かす

Superflip (Charge flipping法)

リンク