PeakSearch CUI プログラムの操作説明書
[English / Japanese]
以下では、オープンソースのPeak search プログラムVersion 0.99 (download page@sourceforge.jp)について説明します。
粉末指数づけソフトウェアConograph GUIにも同プログラムは付属しており、Conograph CUIの入力ファイルを作成するために使用されています。
アルゴリズム概要はこちら(英語)。
同プログラムは、Figure 1のような2次元データのピーク探索を実行します。

Figure 1 : 2次元データの例
実行後、入力された2次元データのコピーおよび、入力で指定したしきい値以上のピーク高さを持つと推定されるピークに関する以下の情報を含む、IGORテキストファイル(例)が出力されます:
- ピーク位置(ピークトップのX座標),
- ピーク高さ (ピークトップのY座標から推定されたバックグラウンド値が差し引かれた値),
- ピーク半値幅(つまり、full-widths-at-half-maximum (FWHM)と呼ばれる値)
ソフトウェアIGOR Proをお持ちであれば、ファイルを開くだけでFigure 2のようなプロットデータを見ることができます.
または、Conograph GUIを用いても同様のグラフを見ることが出来ます。

Figure 2 : 出力された IGOR テキストファイル (IGOR Proで開いたときの表示例)
FAQ
- 同プログラムを実行するには、以下の3つの入力ファイルを準備する必要があります。(付属の"sample"フォルダに入力例があります。)
- "*.inp.xml":計算パラメータの入力ファイル
(例)、
- "cntl.inp.xml": "*.inp.xml"を含む入出力ファイル名を指定するファイル
(例)、
- 2次元データを入力するためのテキストファイル。現在扱える書式は以下の3つです。
- XY
- IGOR
- Rietan
"XY"形式と"IGOR"形式では、データの3列目にY値(2行目)の観測誤差を入力することが出来ます。
3列目に何も書いてなければ、Y値のルートが観測誤差として使用されます。
- "sample"フォルダの中の一つのフォルダをコピーし、
コピー先のフォルダ内の二つのXMLファイルの中身とファイル名"*.inp.xml"を適宜修正してください。
ファイル名"*.inp.xml"を変更した際は、"cntl.inp"のファイル名も併せて修正する必要があります。
- コマンドプロンプト、またはお使いのOSのターミナルウィンドウを立ち上げ、
上で変更した"cntl.inp"と同じフォルダにカレントフォルダを移動してください。
- コマンドプロンプトより、PeakSearch.exeの絶対パスを入力して実行します。
より良い結果を得るためには、適宜、<Threshold>と<NumberOfPointsForSGMethod> を修正するとよいです。
<Alpha2Correction>には、α2除去に関するパラメータを入力します(α2ピークを含む特性X線データに粉末指数づけを行う前処理のため)。
- <Threshold> は、
ピーク位置 x に検出されたピークを、ピークとして検出・出力するかどうかの判定基準を与えます。
具体的には、ピーク位置のX座標 xにおける、ヒストグラムのY座標 y の推定観測誤差をErr[y]としたとき、(Threshold) × Err[y]より大きなピーク高さを持つピークのみが検出されます。
ただし、ここで使用されるピーク高さは、y から推定されたバックグラウンド値が差し引かれた値です。
2次元データのY値の観測誤差として妥当な値が入力されていれば、多くのケースで 3 前後から10の範囲で、<Threshold>の最適値が得られると考えられます。

Figure 3 : 放射光データにおけるピークサーチ結果の例
(<Threshold>を変更することで、強度の小さな回折ピークをどの程度検出するかを設定できます。)
-
<NumberOfPointsForSGMethod>はバックグラウンドノイズの検出を抑制するために使用します。
この値が小さいとき、より少ないデータ点数だけが使用される結果として、近似曲線(3次多項式)が局所的な凹凸をより明確に反映します。
Figure 4.1の例は、近似曲線がバックグラウンドノイズを正確に表現してしまうと、ノイズの凹凸をピークとして検出してしまうケースが生じ得ることを示しています。
|
|
Figure 4.1 : NumberOfPointsForSGMethod = 5 |
Figure 4.2 : NumberOfPointsForSGMethod = 25 |
- <Alpha2Correction>には、特性X線データがα2ピークを含む場合1を、それ以外では0を入力します。
また、Cu Kα2以外のデータでにおいては、<Kalpha1WaveLength>および<Kalpha2WaveLength>
に入力する波長を、以下の表を参考にご修正ください。
|
Kα1 |
Kα2 |
Ag | 0.5594075 | 0.563798 |
Co | 1.788965 | 1.792850 |
Cr | 2.289700 | 2.293606 |
Cu | 1.540562 | 1.544398 |
Fe | 1.936042 | 1.939980 |
Mo | 0.709300 | 0.713590 |
コード改善のために、疑わしい事例を見つけられましたら、以下のアドレスまでご連絡頂けると助かります。
その際、"LOG_PEAKSEARCH.txt"を含む全ての入出力ファイルをご添付ください。
- tomiyasu (at) imi.kyushu-u.ac.jp
論文の引用に関して
当ブログラムを用いて得られた研究成果を発表される際は、以下の文献を引用してください。
- A. Esmaeili, T. Kamiyama, R. Oishi-Tomiyasu,
"New functions and graphical user interface attached to powder indexing software", J. Appl. Cryst. 50 (2017), pp.651--659.
本プログラムのソースコードは、MITライセンスの下、web上(Conographプロジェクトのリポジトリリスト)で公開しています(2013/2/24現在)。
Conograph projectのために粉末回折データを提供頂いた方々に感謝します。
[Back to top]
[Go to my research page (list of software)]