粉末X線回折データから構造解析する方法についてのメモ(書きかけ)SDPDとはstructure determination by powder diffractometryのこと.
Foxについて (Foxは実空間のモンテカルロ法によって初期構造を求めるプログラムです) †
- Foxは初期構造を求めるためのプログラムです.Sourceforgeからプログラムをダウンロード可能です.Mac用はユニバーサルバイナリーになってます.Windows, Linux用もあります.簡単な構造だと古いPowerbookでも動きます.構造が複雑になってくるとちょっと遅くて苦しい.
- 結晶構造,回折パターン等全てがオブジェクト化されてます.そこがFoxの特徴です.ユーザーは気にする必要はないと思いますが.
- 多面体等を入力できるのでケイ酸塩の構造解析には最適です.我々の場合,NMR装置があるので,そちらから配位多面体の情報が直ちに得られます.その情報をうまく活かすことができます.
- indexingも可能です.Dicvolを使っているそうです.ただ必ずしもうまく見つけてくれません.ピークのリストを出力出来るので,それを使ってN-TREORなど別のプログラムで確認した方がいいでしょう.なおKalpha2のピークも混ざっているので,TREORで処理する場合は取り除く必要があります.
- Le Bail法によるパターンフィッテングが可能です.今のところpseudo-voigtのみ使えます。ただLe Bailの結果を直接出力できないようです.ただセーブすると作られるxmlファイルの中に強度データがあるように見えるので,抽出は可能かもしれません.
- 空間群の推定ができます.これは可能な空間群についてLe Bail法を使ってRwp, GoFを計算しているようです.GoFの小さい順で候補が表示される.対称性にもよるが,これには時間がかかります.
- よい粉末回折データがあれば,Foxだけでindexing, 空間群推定,Le Bail法による格子常数やプロファイルパラメーターの最適化,フーリエ合成,そして本命の初期構造をParallel Tempering法で決めることまでできます.ただ最終的な精密化には別にRietveld法プログラムを使う必要があります.
- MacでFoxを使っているとしばしば異常終了する時があります.そのためデータはこまめにセーブする必要があります.
- 粉末回折データの入力フォーマットに関する情報がありません.Fullprofのフォーマット等いくつかは用意されてます.ExampleはFullprofのフォーマットです.手持ちのデータ(マックサイエンスでとった)をFullprofのフォーマットに変換して試してます.
Foxを評価するために粉末強度データなどで遊んでみる †
- PbSO4: まずはFox付属のチュートリアルにあるPbSO4で試す.
- チュートリアル通りだと中性子とX線データを同時に使うが,X線データだけでやってみた.問題なく正しい構造を得られた.
- ZrO2
- Le Bailさんのところからdlした粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
- パターンを表示させる.右クリックでピークサーチ,次にindexingする.Quickで正しくmonoclinicで指数付けされていた.
- CrystalsでZrO2結晶を定義する.指数付けで決まった格子常数をCrystalsで設定する.空間群にはとりあえずP2を入れておく.
- この結晶をPowder Diffractionのところで追加しておく.Le Bail法でパターンをfittingする.空間群の探索をさせると(時間がかかるが)P21/cがGoFが最小となった.これは正しい空間群である.
- ZrO2は配位数が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が下がる.フーリエマップを見て,正しいことを確認.
- 構造ディスプレイにFobsからのフーリエ合成や差フーリエを原子に重ねて表示させておいて,optimizeするとマップも更新されるので構造が解けたかどうか分かりやすい.
- Cr2O3
- 上記同様.
- indexingでQuickだとmonoclinicが多数出てくるが,明らかに正しくない.Advancedのところでhexagonalで試行錯誤するとやっとhexagonal (rhombohedral)の正しいセルが表示される.
- 空間群の探索をさせると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よりも悪い.
- F-apatite (Ca5P3O12F): これはRIETAN付属のデータを使った.
- Fullprofのフォーマットに変換した粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
- パターンを表示させる.右クリックでピークサーチ,次にindexingする.Quickではorthoとhexagonalの2つの候補が出てくる.TREORではhexagonalのみがヒット.これはFoxの2番目の候補と同じ.これが正しい.
- Crystals objectでapatite結晶を定義する.空間群にはとりあえずP3を入れておく.指数付けで決まった格子常数をCrystalsで設定する.
- 空間群の探索をさせると,あまり差がつかずに並んでいる.上から順番に試していくしかない.実際の空間群は8番目のP63/mであった.
- Z=2と推定される.Caはセル内に10個あるが,P63/mの場合,一般位置は12個なので一般位置には入れられない.2種以上の特殊位置にいると推定できる.一方Pはセル内に6個あるので,1種類以上の特殊位置にいると考えられる.
- とりあえずCaを2種,PO4を1種で計算してみる.P63/mだとすぐ収束.Fobsのフーリエマップを見ると,正しそうなことが分かる.またマップから計算に入れていないFの位置もわかる.Fも入れて,特殊位置でO, 1/3などと分かったものはそれに固定して,計算するとRwpがさらに下がり,解が得られた.
- P63/m以外の空間群で試してみたが,GoF/Rwpは下がらない.
- 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つであると知っているとして,以下続ける.なお指数に合わない不純物と思えるピークが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があり,本来Alのいるべき位置と推定される.さらによく見ると2つのAlF6が1つの位置で重なっている.そこで重なっている1つを1/4, 1/4, ~0.4に置いてzは固定せずさらに計算すると正しい構造が得られた.実は1/4, 1/4, zという特殊位置に2種のAlが入るのであるが,これがうまく探索されていないようである.
- 座標を全く拘束せずに収束させることができないか,anti-bump(近接を防ぐペナルティ)をコスト関数に入れてみたが,今のところ成功してない.ただ長い計算をやっていないので解けなかったとは言えない.
- 未知構造
- 手元にある未知構造物質2種をFoxでindexingから初期構造決定まで試してみた.まだ未発表なので,詳しいことは書けない.放射光X線+デバイ・シェラーカメラのデータを使っている.2日ほど苦闘して,どちらも構造を解く事ができた.ただNMRから陽イオン多面体の席数と量比は事前に分かっていた.この情報があると可能な空間群に制約が与えられたり,特殊位置に入るべきだとかが分かる.
- Foxのコツ.ちょっと使っただけですが...
- (Foxに限らないが)indexingは注意してやらないといけない.他のプログラムも使って確定しないと無駄な努力をすることになる.TREORの場合はかならず出力データを丹念に読む必要がある.
- 目の前で計算させていると,色々パラメータをいじったりして,結果的に短い計算となり収束しないことが多かった.ある程度パラメーターを決めたら,単純に沢山計算をやらせた方が早く解が得られるようである.
- ある原子ー原子ペアが近づきすぎる時はantibumpを利用する.まず取り得ない原子間距離を各ペアについて入力しておく.それより短くなるとペナルティが発生する.antibumpのスケールを適当にいじって,antibumpがコスト関数に十分反映されるようにする.なおantibumpの設定はScatterersメニューの中の"Show Scattering Powers Parameters Window"から行う.
- 5配位が予想される時は(5配位に対応する多面体はないので),とりあえず八面体で計算する.多面体が3次元的に繋がっているような構造では,5配位部分の八面体は取り除いて,そのかわり中心元素を単独の元素として扱う.八面体の時の座標を初期値としてlimitを付けて最適化する.
- それらしい構造が得られたら,CIFファイルとして出力し,Vestaで読み込む.酸素などマージしてなくて,重複しているやつは取り除く.構造を眺めてよさそうなら,陽イオン位置にlimitを付けて,さらに計算してみる.酸素(または陰イオン)の数に注意.数がZから予想されるよりも多い場合には余分な酸素がまだ残っている.うまく計算がいくと,重複している酸素等は自動的にマージされて,消えて行くはず.
- (Macの場合しか知りませんが)Limitの入力の仕方が分かりづらい.マニュアル(foxwiki)には文字のところで右クリックすると書いてあるのだがそれではダメ.値を入力するボックスの境界上で右マウスボタンをクリックするとlimit入力のダイアログが出てくる.ボックスの中を右クリックしてもダメ.
- Mac版しか使ってませんが,時々落ちます.こまめにセーブする必要があります.
- 保存した時に出来るxmlファイルにはLe Bail法で求めた各指数の強度のデータが入っている.取り出してSuperflipで使うことが出来た.ただあまりフィッテングがよくなかったのか,Superflip自体の結果は芳しくなかった.
- max sin(theta)/lambdaを大きくした時に,延長された部分のバックグラウンドがおかしくなることがある.この場合はPowder Diffraction --> Powder Pattern ComponetsのObjectボタンでバックグラウンドの再計算ができる.
Superflip (Charge flipping法) †