粉末X線回折データを使って構造解析する方法についてのメモ.Mac OSXで使えるソフトのみ.SDPDとはstructure determination by powder diffraction dataのこと.

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

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

  • Intel Mac版(Windows版も)のRIETAN-FP.http://fujioizumi.verse.jp/
  • 回折パターンの表示について
    • 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用グラフソフト(http://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) 。
      • なお、rietan.commandの最後の方に
        ./gpd2plot2.py $sample.gpd $sample.txt
        を追加しておけば、RIETAN-FP実行時に自動的に計算してくれます。さらにその後に、
        open -a "Plot2"
        を追加しておけば、Plot2を自動起動できます。

Foxについて (Foxは実空間のモンテカルロ法によって初期構造を求めるプログラムです)

  • Foxは初期結晶構造を求めるためのプログラムです(http://vincefn.net/Fox/FoxWiki ).リンク先からプログラムをダウンロード可能です.Mac用はユニバーサルバイナリーになってます.Windows, Linux版もあります.
  • 結晶構造,回折パターン等全てがオブジェクト化されてます.そこがFoxの特徴です.
  • 多面体等を入力できるのでケイ酸塩の構造解析には最適です.我々の場合,NMR装置があるので,そちらから配位多面体の情報が直ちに得られます.その情報をモデルにうまく活かすことができます.
  • Foxgrid 追加(2011/12/29)
    • 最近、並列計算ができるようになってます(Foxgridのタブが追加)。時間がかかる複雑な構造に適用すればいいでしょう。複数のネットワークで繋がったPCだけではなくて、複数のcoreを持つ場合にも利用できますが、Macでは問題があるようで、ちゃんと使えてません。
    • 使用方法は簡単で、Global optimization計算ができる状態になっているFoxファイルを用意します(.xml.gz)。または現在作業しているジョブに適用することもできます。
    • 直接Foxgridからファイルを読むこともできそうですが、Macだとトラブルが生じるようです。最初にfileメニューからxmlファイルを読んでおいた方がよさそうです。
    • Foxgridメニューから、Run Serverを選ぶ。Foxgridのタブで、Create jobボタンをクリック。既にメモリーにロードされているので、Crate job (from mem)ボタンをクリック。ジョブの設定windowが出てくるので、試行回数など設定。セーブする。設定はjob listでjobを選んで、Edit jobボタンで変更できる。
    • Run localボタンをクリックし、OKをボタンをクリックするとローカルのcoreを使った計算が始まる。終わるとResult listに行が加わる。本来その行を選択して、Show resultボタンをクリックすればいいはずだが、表示されずに反応がなくなる。計算ファイル自体は出来ている。
  • 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用の.insファイルを作ればRIETANで計算できます.
  • MacでFoxを使っているとしばしば異常終了する時があります.そのためデータはこまめにセーブする必要があります.特にindexingする前に.
  • 粉末回折データの入力フォーマットに関する情報が見つかりませんでした.Fullprofのフォーマット等いくつかは用意されてます.付属のサンプルデータはFullprofのフォーマットのようです.私は手持ちのデータ等(マックサイエンスやSPring-8で取ったもの)をサンプルデータと同じフォーマットに変換して試してます.または1行に2theta, Iの1ペアで入っているデータでも読み込めました。リガクのrasフォーマットの強度部分以外を削除したものも読み込むことができます。

Foxで遊んでみる

  • PbSO4 (マニュアルにPbSO4のチュートリアルがありますが,格子常数と空間群は天下り的に与えられています.ここではそれらも含めて計算してます.中性子データは使わない)
    • まず新しいcrystal objectを作る.ObjectsメニューからNew Crystalを.とりあえず名前以外はそのまま.
    • 新しいPowder_Pattern objectを作る.ObjectsメニューからNew Powderpatternを.Dataボタンを押して,付属の粉末X線強度データを読み込む.Patternボタンでパターンを表示させる.正常に表示出来ない時はフォーマットがおかしい.RadiationをCuKa12に選択,PhasesボタンからAdd Backgroundでバックグランドを引く.普通20以下で十分であるが、キャピラリーなどでバックグラウンドが複雑なものは30-40を設定する。ここでついでにPhasesボタンからAdd Crystalline Phaseでcrystal objectで定義したものを追加する.
    • Powder Patternのwindowで右クリックで出てくるメニューからFind peaksを選ぶ.ピークにd値が表示される.拡大表示してよく見る.ピークのリストはSave peaksでファイルに書き出すことが出来る.
    • 次に右クリックでIndex!を選ぶ.デフォルトではQuickである.Find Cell!ボタンをクリック.PbSO4の場合,1つだけscoreの高いorthorhombicの候補が出てくる.これは正しい.上のChoose crystal to apply selected cell ...のボタンをクリック.さらにAutomatic Profile Fittingのチェックを入れるとLe Bail法でfittingを行う.GoF, Rwpをチェック.今見つかった格子常数がcrystal objectに自動的に設定されている.空間群も設定されているが,これはこのセルに対応したものが適当に入っているだけである.
    • パターンのところで右クリックして,Fit profile and Le Bail extractionを選ぶ.ここでQuick FitタブでボタンをクリックするとまたLe Bail法が始まる.Spacegroup Explorerタブを選択して,ボタンを押すと空間群の探索が始まる.得られたリストではP21cn, P21/c, Pmcnと続く.格子はorthoなのでorthoの中で最も良いのはPmcnであり,これは実際に正しい空間群である(チュートリアルで出ているPnmaとは軸の取り方が異なるだけ).Crystalsのところでこの空間群を入力する.フーリエ合成で使うので,この空間群について,Quick FitでLe Bail fittingを1度はやっておく.
    • Z=4と推定される.一般位置は8個なので,Pb,Sともに特殊位置にある.どちらも1サイトのみとして,位置に拘束つけずにまず計算してみる.
    • ScatterersでAdd Atomic Scattering PowerでPb, S, Oをまず設定.そしてPbを1個Add atomで1つ定義し,SO4もAdd Tetrahedronで1つ定義.S-O距離は1.5とする.
    • Global OptimizationでNew Monte-Carlo Objectを追加.ここでOptimized objectとして,定義済みのcrystalとpowerpatternオブジェクトを追加.これでRun/StopからMultiple Runsを選ぶ.すぐにChi^2, Rwpが下がる.Pb, Sの座標を見るとxは1/4の特殊位置であるように見える.1/4で固定(チェックを外)して計算する.酸素が余分にあったりするが,そこは無視.基本的に解けている.
    • 3D Displayで右クリックして,観測強度によるフーリエマップ,または差フーリエマップを描かせて,原子位置と電子分布が一致していることを確認.Optimizationの時に表示させておくと便利.
    • CrystalsでFileからCIFファイルを出力.VESTAで眺める.もし余分な酸素が残っているなら取り除く.特殊位置からずれていることで1つの原子が複数に分離していることもあるので,座標値をよくチェックする.必要ならこの座標を元にして,Foxで全ての原子をatomとして,Limitを付けておいて再計算することもできる.またはRietveld法でさらにrefineする.
    • Max sin(theta)/lamdaをなるべく大きく設定して,Le Bail法でfittingする.ファイルをxml.gzで書き出す.解凍して,xmlファイルを得る.中に強度データがあるので,別項Superflip_plus_Foxのプログラムを作って,superflip用の入力ファイルを作って実行する.superflip自体は数秒で終了.出来たxplorファイルをVESTAで見る.Pb, Sに相当する電子密度が高い山があり,座標値も特殊位置にあって,構造は正しい.しかし酸素はいくつか抜けている.EDMAを実行すると座標値を取り出しCIFファイルに出力してくれる.これをまたVESTAで見る.S周りの酸素が2−3個しか検出されてない.やはり酸素はPbに比べて圧倒的に電子数が少ないので見づらいのだろう.
  • ZrO2
    • まず新しいcrystal objectを作る.ObjectsメニューからNew Crystalを.とりあえず名前以外はそのまま.
    • 新しいPowder_Pattern objectを作る.ObjectsメニューからNew Powderpatternを.Dataボタンを押して,Le Bailさんのところからdlした粉末強度データを読み込む.Patternボタンでパターンを表示させる.正常に表示出来ない時はフォーマットがおかしい.RadiationをCuKa12に選択,PhasesボタンからAdd Backgroundでバックグランドを引く.ここでついでにPhasesボタンからAdd Crystalline Phaseでcrystal objectで定義したものを追加する.
    • Powder Patternのwindowで右クリックで出てくるメニューからFind peaksを選ぶ.ピークにd値が表示される.拡大表示してよく見て,ピークとして認識されてない場合はその部分で右クリックして出てくるメニューでAdd peakを選ぶ.逆に不純物相によるピークを除くにはその位置で,右クリックして出てくるメニューでRemove peakを選ぶ.ピークのリストはSave peaksでファイルに書き出すことが出来る.
    • 次に右クリックでIndex!を選ぶ.デフォルトではQuickである.Find Cell!ボタンをクリック.Figure of Meritの順で出てくる.この場合は正しくmonoclinicで指数付けされていた.上のChoose crystal to apply selected cell ...のボタンをクリック.さらにAutomatic Profile Fittingのチェックを入れるとLe Bail法でfittingを行う.refineされた格子常数がcrystal objectで設定される.これを行ってGoFなどが小さくなっているかをチェックすると,間違ったindexingを判定できる.
    • またピークには指数が付いているはずである.沢山あってピーク自体が見づらい時は,Hide peaksで消す.
    • パターンのところで右クリックして,Fit profile and Le Bail extractionを選ぶ.ここでQuick FitタブでボタンをクリックするとまたLe Bail法が始まる.Spacegroup Explorerタブを選択して,ボタンを押すと空間群の探索が始まる(時間がかかるが).この場合,P21/cがGoFが最小となった.これは正しい空間群である.Crystalsのところでこの空間群を入力する.
    • Zrは配位数が6よりも高いので多面体をscattererとして使うことはやめておく.
    • 密度からZ=4と推定される.ZrがOよりもはるかに重いので,まずZrのみ考える.Zrはセル内に4個あるが,一般座標が4eなので,Zrは単一サイトで一般位置である可能性をまずチェック.
    • Zrを1個add atomで追加し,座標には制約付けずにoptimizeする.すぐ収束して,FobsのフーリエマップとZrの位置が一致している.したがってZrは一般位置にあると分かる.Zrはこの位置に固定する.
    • Oは8個あるので,2つの一般座標4e位置を占めているとまず仮定して,2つのOを追加.どちらも制約なし.
    • これでoptimizeするとすぐにRwpが下がる.フーリエマップを見て,正しいことを確認.
    • 3D Display windowにFobsのフーリエ合成や差フーリエマップを原子に重ねて表示させておいて,optimizeするとマップも更新されるので構造が解けたかどうか分かりやすい.
  • Cr2O3
    • 上記同様.
    • indexingでQuickだとmonoclinicが多数出てくるが,明らかに正しくない.Advancedのところでhexagonalで試行錯誤するとやっとhexagonal (rhombohedral)の正しいセルが表示される.Advancedではセルの大きさ(デフォルトで3が最小だが酸化物ではしばしば2.7-2.8くらいもありうる),spurious peakの数(1-2), 表示するscoreをもっと小さくする,などのパラメータを変えて計算させるといいようである.しばしば異常に計算に長い時間がかかることがあるので,ここで計算する前にデータをセーブしておいた方がよい.
    • 空間群の探索をさせるとR3cとR-3cが同じ値で1番にリストされた.
    • 密度からZ=6と推定される.簡単な構造なので,1)Cr,Oを原子として扱う,2)CrO6として扱う2つのやり方が考えられる.
    • まず原子として扱う方から試す.CrとOを1つづつ入れる.R3cでは収束しないが,R-3cならすぐ収束する.
    • CrO6八面体として扱ってもR3cはダメで,R-3cだとすぐ正しい構造に収束する.
  • Al2O3
    • 上記同様.データはLe Bailさんのところから.
    • Le Bail法で問題あり.ここで尺度因子がおかしいのかfittingが明らかに変になる.計算されたパターンの強度が異常に低く,そのためRwpなども悪い.manualで尺度因子をいじってもだめ.何度最初からやってもダメ.先に進めず.構造的には上記Cr2O3と同じなのだが.マニュアルではPatternのところからScaleを更新できるとあるが,これもダメだった.別のAl2O3のデータと比べると強度比がかなり異なる.そちらのデータでは問題が起こらなかったので,回折データ自体に何か問題か.
  • calcite
    • まず粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
    • パターンを表示させる.右クリックでピークサーチ,次にindexingする.うまくindexできない.ピークのリストをファイルに出力して,TREORでindexingする.なおこのファイルにはKalpha2も拾われているので,それらは除いておく必要がある.Patternを拡大して,よく見ながらKalpha2や明らかにおかしいピークは除く.TREORではhexagonal (rhombohedral cell)でうまくindexingできた.
    • 空間群の探索をさせるとR3cとR-3cが同値で1番であった.
    • 密度からZ=6.R-3cの場合,CaとCが000, 001/4の特殊位置のどちらかを占める.Ca=0 0 0, C=0 0 1/4でまあまあRwpは下がる.R3cの場合,Ca, Cは00zを占めることになるが,RwpはR-3cよりも悪い.
    • Le Bail法でfittingして,superflip用データを作って,実行する.superflip自体は数秒で終了.出来たxplorファイルをVESTAで見る.CO3に相当する3つ角が生えた電子密度が見られる.Ca, CO3の位置は正しく再現されている.
  • F-apatite (Ca5P3O12F): これはRIETAN付属のデータを使った.
    • Fullprofのフォーマットに変換した粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
    • パターンを表示させる.右クリックでピークサーチ,次にindexingする.Quickではorthoとhexagonalの2つの候補が出てくる.TREORではhexagonalのみがヒット.これはFoxの2番目の候補と同じ.これが正しい.
    • Crystals objectでcrystalを1つ定義する.
    • 空間群の探索をさせると,あまり差がつかずに並んでいる.上から順番に試していくしかない.実際の空間群は3番目のP63/mであった(これは2thetaをどこまで使っているかなどに依存する).
    • Z=2と推定される.Caはセル内に10個あるが,P63/mの場合,一般位置は12個なので一般位置には入れられない.2種以上の特殊位置にいると推定できる.一方Pはセル内に6個あるので,1種類以上の特殊位置にいると考えられる.
    • P63/mとして,とりあえずCaを2席,PO4を1席で計算してみる.どれも一般位置にしておく.またantibumpも指定しておくと素早く収束するようになる.ただしまだFを入れてないので,Rwp等は小さくならないのでそちらからは判定できない.Fo, Fo-Fcのフーリエマップからはこの構造が正しそうなことが分かる.またFo-Fcマップから計算に入れていないFの位置がわかる.その位置からFの特殊位置の内どれかが決まる.そこにFを固定して,さらに計算するとRwpがかなり下がった.
    • P63/m以外の空間群で試してみたが,GoFの低いものは見つからない.
    • 最初からCaを2席,PO4を1席, Fを1席で座標を拘束せずに計算してみると,P63/mですぐに収束した.antibumpを使っている.使わないと収束しなかった.
  • t-AlF3:4つAlの席があるのでこれまでよりも手強い.全て6配位.これの粉末X線データからの構造解析論文はLe Bailら, J. Solid State Chem., 100, 151-159, 1992.
    • Le Bailさんのところからdlした粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
    • パターンを表示させる.右クリックでピークサーチ,次にindexingする.Quickでは沢山候補が出てくる.
    • ピークサーチしたリストをテキスト出力して,TREORを使ってindexingする.この相はピークがブロードなのでKa2がよく分離してない.TREORでは直ちにFigure of meritの高い確実な解が得られた.tetragonal.Foxではtetragonal指定してやるとこれも出てくるが,3〜4番目.indexingはやはり複数のプログラムでチェックしないといけない.
    • Crystalsでt-AlF3結晶を定義する.空間群にはとりあえずP4を入れておく.指数付けで決まった格子常数をCrystalsで設定する.
    • 空間群の探索をさせると,時間がかかるがP4/nmmのGoFが最小となった.これは正しい空間群である.
    • 密度からZ=16と推定される.Alはセル内に16個あるが,一般座標が16個なので,Alは単一サイトで一般位置にある可能性をまずチェック.AlF6の八面体を1個add octahedronで追加し,座標には制約付けずにoptimizeする.全く収束しない.
    • 八面体を増やしていくが,あまり芳しくない.そのためAlの席が4つであると知っているとして,以下続ける.27Al 3Q MAS NMRで測定するとAlの席が同定できるであろう。なお指数に合わない不純物と思えるピークが1つあった.この領域を計算から除外する.
    • 座標に制約を与える.4つの席があると,それらは特殊位置を占めることになるので,1〜2個を特殊位置の制約を付けて,その他の席には制約を与えずに計算をしてみる.International table Vol.AのP4/nmmを見ると,どれかの席がx=1/4である可能性が高い.x=1/4を2つの席に制約として使う場合と,x=1/4, y=1/4を1つの席に制約として使った場合に,GoFが構造が解けたというほどではないが,結構下がる配置が見つかる.この配置はこのような制約を付けて計算している時に何度も現われた.これの差フーリエマップを見ると,1つだけ大きな山がx=1/4,y=1/4, z=~0.4に残っている.その周りにはFが6個あり,本来Alのいるべき位置と推定される.さらによく見ると2つのAlF6が1つの位置で重なっている.そこで重なっている1つを1/4, 1/4, ~0.4に置いてzは固定せずさらに計算するとGoFが下がって,正しい構造が得られた.実は1/4, 1/4, zという特殊位置に2種のAlが入るのであるが,これがうまく探索されていないようである.
    • 座標を全く拘束せずに収束させることができないか,anti-bump(近接を防ぐペナルティ)をコスト関数に入れてみたが,今のところ成功してない.
  • 未知構造
    • 手元にある未知構造物質2種をFoxでindexingから初期構造決定まで試してみた.放射光X線+デバイ・シェラーカメラのデータを使っている.2日ほど苦闘して,どちらも構造を解く事ができた.ただNMRから陽イオン多面体の席数と量比は事前に分かっていた.この情報があると可能な空間群に制約が与えられたり,特殊位置に入るべきだとかが分かる.antibumpを適切に設定するとうまくいくことも多い。その後、うち1相は既知の構造タイプと同じであるとわかった。最終的に結果はActa Cryst. Bに出した。
    • その後さらに1つ未知構造物質をFoxでindexingから初期構造決定まで試してみた。この場合は実験室のX線装置(Kalpha1のみ)を使ったが、構造を解くことができた。これもNMRからの情報を使っている。これも結局アナログな構造が見つかった。refinementはSPring-8で得たデータを使った。論文はInorganic Chemistryで出版された。
    • またその後さらに2つ未知構造物質をFOXでindexingから初期構造決定まで。こっちは学生さんがやっているが、構造は解けている。これもNMRからの情報を使っている。こちらはPhys. Chem. Mineralsで出版された。
  • Foxの注意点.
    • (Foxに限らないが)indexingは注意してやらないといけない.他のプログラムも使って確定しないと無駄な努力をすることになる.かならず出力データを丹念に読む必要がある.しばしばターミナル表示ではなく,詳細な出力ファイルの中で正解が見つかることがある.TREORをMacで使うには、公開されているTREOR90のソースコード(Fortran)を自分でコンパイルすることで使えるが、最新版を使いたい場合はEXPO2009に入っているN-TREOR09を使うことになる。
    • 私の経験ではbetaが90˚にかなり近い単斜晶系を、indexingで斜方晶系と出たので、斜方晶系で解析して、R factor等が下がらず、時間を無駄にしたことがある。この場合はSpacegroup ExplorerでmonoclinicでGoFが低いので、試しにmonoclinicにして、beta=90でLe Bail fittingを行ったら、明らかに斜方晶系の場合よりもRwpが改善されて、やっと単斜晶系であると気づいた。refineされたbetaは90.1くらいになっていた。よくパターンを見ると、斜方晶系で解析した場合、測定データではいくつかのピークが2つに分裂しているのに、Foxの計算では1つのピークしか出ていない。本来はここで気づくべきであった。よくパターンを眺めることが重要だという例。
    • 目の前で計算させていると,色々パラメータをいじったりして,結果的に短い計算となり収束しないことが多かった.ある程度パラメーターを決めたら,単純に沢山計算をやらせた方が早く解が得られるようである.
    • ある原子ー原子ペアが近づきすぎる時はantibumpを利用する.まず取り得ない原子間距離を各ペアについて入力しておく.それより短くなるとペナルティが発生する.antibumpのスケールを適当にいじって,antibumpがコスト関数に十分反映されるようにする.なおantibumpの設定はScatterersメニューの中の"Show Scattering Powers Parameters Window"から行う.なおantibump等のコスト関数は構造にバイアスを及ぼす。これらを使って得られた構造をそのまま使うのは危険である。Rietveldで精密化を行なう必要がある。または、各座標等にlimitを付けた上で、antibumpのスケールをゼロにして、構造を求める。ここでは3D Displayの原子の色も指定できる.別元素が同じ色で見づらいときは,ここで変えられる.
    • 私の場合,陽イオン多面体が重なったりして、酸素が千手観音のように見えることがあります.antibumpで酸素ー酸素間距離を入れておくと,本来の酸素1つにマージされていきます.または特殊位置にあるので、特殊位置でfixする必要があります。
    • 座標が明らかにその空間群の特殊位置に収束しているようなら、座標のところで特殊位置の値を入れて、refineしないようにチェックボックスをアンチェックする。
    • 5配位が予想される時は(5配位に対応する多面体は用意されていないので),とりあえず八面体で計算する.ただし余分な酸素のためにRwpの低下がはっきりしないので、構造が解けたかどうかの判定が微妙になる。多面体が3次元的に繋がっているような構造では,5配位部分の八面体は取り除いて,そのかわり中心元素を単独の元素として扱う.八面体の時の座標を初期値としてLimitを付けて最適化する.
    • 上と似た話だが,陽イオン多面体が陰イオンを共有して3次元的につながっている構造では,全てを多面体として定義して扱わない方がよい.陰イオンが全て含まれているだけの数の多面体を使い,残りの多面体は中心の陽イオンを原子単体として入れた方が収束しやすい.これはそちらの方が自由度の数が減るためであろう.私の経験した例では,全ての原子を単体として扱った時に自由度が54,全て多面体として扱ったときに自由度が36,半分を多面体として残りは原子として扱った時が27であった.最初は試してないが,2番目と3番目では3番目の場合が最も早く収束した.また陰イオン同士のマージが生じない(余分な陰イオンがないので)のもマージや動的占有率計算が不要となることも効いているのであろう.配位数の低い方を多面体として扱って,配位数の高い方を原子として扱った方が収束が早い気がする.これは配位数の低い方がrigidなためだろうか.
    • それらしい構造が得られたら,CIFファイルとして出力し,VESTAで読み込む.酸素などマージしていなくて,重複しているやつは取り除く.構造を眺めてよさそうなら,陽イオン位置にlimitを付けて,さらに計算してみる.酸素(または陰イオン)の数に注意.数がZから予想されるよりも多い場合には余分な酸素がまだ残っている.うまく計算がいくと,重複している酸素等は自動的にマージされて,消えて行くはず.
    • Limitの入力の仕方
      • Windowsの場合は、マニュアル通りに文字(_xRなど)の上で、右クリックすればOK。
      • Macの場合は、値を入力するボックスの境界上で右マウスボタンをクリックするとlimit入力のダイアログが出てくる.ボックスの中を右クリックしてもダメ.
    • Mac版しか使ってませんが,よく落ちます.こまめにセーブする必要があります.
    • 保存した時に出来るxmlファイルにはLe Bail法で求めた各指数の強度のデータが入っている.見た感じは多重度の補正はされているよう。取り出してSuperflipで使うことが出来る.
    • Profile Fittingのwindowは終わったら閉じておく.そのまま置いておくと,optimizeする時にTracked dataの表示がおかしくなったりする.
    • Global Optimizationの"Number of Runs to perform"はMultiple Runsの時にカウントダウンしていき,0になると計算が停まる.ここが0になっていると計算が行われない.マイナスだといつまでも計算することになる.
    • max sin(theta)/lambdaを大きくした時に,延長された部分のバックグラウンドがおかしくなることがある.この場合はPowder Diffraction --> Powder Pattern ComponetsのObjectボタンでバックグラウンドの再計算ができる.なおmax sin(theta)/lambdaは普通は0.25くらいで十分。あまり大きくしても計算が遅くなるだけ。
    • バックグラウンドのフィッティングの内挿点数はフラットなら20で十分。複雑なバックグラウンドなら40くらいを使った方がよい。元の2theta-強度データで低角度端、高角度端でデータが大きく変化しているものは予めエディタで削除しておく。
    • Foxのxml出力中の格子常数は,晶系の関係で例えばa=bである場合にも,a=bとなってない.特にこのファイルを流用する時に注意.私はこれを素直に読んでsuperflipのデータとしたところ,hexagonalで格子常数と空間群が一致してないとエラーが出た.よく見るとa=bでなかった.aにはrefineされた値が入っているが,bは以前に入っていた値から更新されていないようだ.cubic, tetragonalでも同じことが起こるので注意.

Fox + 固体NMRで使う

  • 本来Foxでは非経験的に構造が解けるのでしょうが、私たちのところでは高分解能固体NMRと組み合わて効率よく構造が解けてます。特に最近は1/2スピン以外の核でも、高分解能のスペクトルが得られ、席の数、配位数が決められます。これまで6つの高圧未知相をこの組み合わせで解くことができました。
  • NMRからはAl, Si, P等の配位数や席の数の情報が得られます。さらに高度な方法では、中距離でのつながりの情報が得られます。この情報を利用すると、空間群を制約したり、特殊位置がすぐ特定できたり、またFoxで配位多面体モデルを作る場合に直接役に立ちます。また逆に得られた初期構造がNMRの結果と一致するかどうかをチェックすることで、誤りを防ぐこともできます。配位数や繋がり方がわかっているとantibumpの距離設定も適切に調整できます。例えば、ABO4系でA-O-AやB-O-Bがない場合でも、Foxの計算ではA-O-A, B-O-Bの構造に収束している場合がかなりあります。もしNMRからそれらがないと分かっていると、antibumpでそれらが実現しないようにでき、正しい構造が早く得られます。

Fox + Superflipで使う

  • これはFox内蔵のLe Bail法を使って,その強度データをSuperflipで利用するという意味で、Foxの作成者の意図してないであろう利用方法です.Superflip自体は強度データのリストを入力で必要として、Le Bail法の機能を持っていないため、別途Le Bail法等を使って、強度を推定する必要があります。Foxは元々Le Bail法目的のプログラムではありませんが、Fox自体で構造解析ができることや,indexingや空間群探索ができるなどの利点があります.いくつか試しに計算してみたところ,両者を相補的に使うことで,構造解析に有効かもしれません.Foxではモデリングでつまずいたり,沢山の可能性を試す必要があったりしますが,Superflipではモデリングは不要で全ての原子位置が直ちに判明することがあります.一方データの質が悪くなると,Superflipではきれいな電子密度の山が見えなくなったり、重い元素だけしか見えないことがあります。こうなるとSuperflipではお手上げですが、重原子だけの情報をFoxで使って、構造を解くことができるかもしれません。.
  • Foxの出力するxmlファイルから強度部分を取り出し、さらにSuperflip用の入力データの雛形を作るプログラムを作りました.こちら(Superflip_plus_Fox)を参照してください。これを使うとFox->Superflipの流れで計算ができるようになります。Superflip計算で得られたxporファイルをVESTAで表示させます.
  • 計算例 (上記Fox自体の計算例で使ったものを,ここでも使ってます)
    • 新しく計算手順をこちら(Superflip_plus_Fox)に書いてます。
    • PbSO4: FoxでMax sin(theta)/lamdaをなるべく大きく設定して,Le Bail法でfittingする.ファイルをxml.gzで書き出す.解凍して,xmlファイルを得る.ここからsuperflip用の入力ファイルを作って,実行する.superflip自体は数秒で終了.出来たxplorファイルをVESTAで見る.Pb, Sに相当する電子密度が高い山があり,座標値も特殊位置にあって,構造は正しい.しかし酸素はいくつか抜けている.やはり酸素はPbに比べて電子数が少ないので見づらいのだろう.
    • ZrO2: Zrに相当する電子密度が高い山があり,構造は正しい.しかし酸素は等曲面のしきい値を変えてやっと扁平なものが見える.これも重元素を含むので酸素は見づらいのだろう.
    • Cr2O3: この場合はCrも酸素もVESTAで素晴らしくきれいに見えました.位置も正しい.
    • calcite: この場合もCa, C, Oの密度が正しく表示されたが,かなり試行錯誤が必要であった.悪い場合にはCO3部分がドーナツ状になり,Caも同じような形状に なってしまう.まあこれでもC, Caの位置自体は得られるのであるが.
    • F-apatite: この場合には酸素位置がところどころ抜けていた.Ca, P, Fの位置はOK.
    • t-AlF3: この場合には全ての原子の山がFoxで最終的に得られたものと同じ位置に出ている.こっちの計算は1分もかからず.VESTAで表示した時の電子密度分布の奇麗さにはちょっと感動した.この結晶はFoxではかなり難しかったが,Superflipを使うことで簡単に解ける.ただEDMAはAl, Fを電子数が近いためか,間違って判定してしまう.なのでEDMAが出すCIFファイルをVESTAで読んで,1個ずつ訂正したが,ちょっとバカバカしい.なおVESTAでも電子密度から原子位置を求めることができる。
    • 自分で見つけた未知構造4種をSuperflipで解析してみました。これらはFoxで既に構造は分かっているものです。以前試した時はいまいちだったのですが、今回は空間群などが確定していることもありますが、比較的簡単な構造はうまくいきました。一部、酸素が見えない場合もありましたが、その場合はFoxで残り元素位置を求める必要があります。

FullprofのMac版インストール

  • こちらはRietveld解析用のソフトです.FoxがFullprof用のファイルしか出力しないので,Fullprofも試してみようと本家のHPを見るとGUIを使ったMac版も置いてありました.X Windowが必須です(Mac OSXのインストールDVDに入ってます).早速試してみましたが,GUI使ってないものはターミナルで問題なく動きますが,GUI版ではエラーが出ます./usr/OpenMotif-2.1.32-22i/lib/libXm3.dylibがないのが原因のようです.OpenMotifをインストールする必要があります.
  • 最初Macportsを使ってOpenmotifのインストールを行いましたが,libXm4がインストールされて,これではダメでした.Finkでインストールすると,libXm3.dylibがインストールされてました.ただこれらはそれぞれ/optや/swなどのディレクトリーに入っているので,ln -s で/usr/OpenMotif-2.1.32-22i/lib/libXm3.dylibにリンクします(エイリアスを作る).これでGUI版も動くようになりました.あまりGUI版の説明がないのですが,tfpというのがWindows上にあるFP Suite TBに対応するようです.実行するとtoolbarが出てきます.ここからFullprof, Dicvol,TREOR, Winplotr-2006などが起動できる.
  • Fullprofをちょっと使ってみてます.マニュアルはわかりづらい.codewordをまず理解しないといけない.
  • 発散すると計算が止まらない状態になり,1つのCPUをほぼ100%使っている状態になります.そういう意味ではやたらと計算サイクル数を増やさない方がよいでしょう.止まらなくなったら強制終了では終了できないので,Activity Monitorからfp2kを終了させてやるか,terminalからfp2kをkillする必要があります.

Expo2004をMacで動かす

  • (2014/02/20追記)現在のExpo2013ではMac用も用意されてます。以下のDawwineで動かす努力も不要になりました。Expo2013の使用方法については別に書きました(EXPO2013使用方法)。
  • Fox, Superflip, FullprofがMacで使えるなら,直接法のExpo2004もMacで動かしたくなります.Mac版はありませんから,Bootcampを使ったり,VMware Fusionなどを使ってMac上で動作させることは可能です.しかしそれではWindowsのインストールは必須だし,重かったりするので,Darwineを試してみました.LinuxでWindowsアプリケーションを使うためのWineという環境がありますが,それのMac版です.
  • 早速Darwineをインストールする.これもX Windowを利用している.Expo2004を使ってみると,起動しますが一部ダイアログのボタン文字が消えてしまいます.またメニュー下のツールバーアイコンなども消えてます.アイコンは見えないのだが,マウスをその上に置くと,その内容は表示されます.サンプルデータを読み込んでやると計算自体は特に速度も落ちず,Windows版同様に動いていました.計算とメインウインドウ内の表示は問題なく出来ている感じ.いくつかDarwineのフォント設定などを変えて試してみましたが,未だボタンの文字などを表示させることには成功してません.本当のWindows上で慣れていれば,ボタン文字(多くの場合OK/Cancel)が見えなくても使えるかもしれませんが,全く初めてだとちょっと難しいでしょう.

Superflip (Charge flipping法)

リンク


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-11-21 (木) 15:44:43 (1220d)