PeakSearch CUI プログラムの操作説明書
[English / Japanese]

以下では、オープンソースのPeak search プログラムVersion 0.99 (download page@sourceforge.jp)について説明します。
粉末指数づけソフトウェアConograph GUIにも同プログラムは付属しており、Conograph CUIの入力ファイルを作成するために使用されています。
アルゴリズム概要はこちら(英語)

同プログラムは、Figure 1のような2次元データのピーク探索を実行します。

Figure 1

Figure 1 : 2次元データの例

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

Figure 2

Figure 2 : 出力された IGOR テキストファイル (IGOR Proで開いたときの表示例)

FAQ

ピークサーチプログラムの使い方

  1. 同プログラムを実行するには、以下の3つの入力ファイルを準備する必要があります。(付属の"sample"フォルダに入力例があります。)
  2. "sample"フォルダの中の一つのフォルダをコピーし、 コピー先のフォルダ内の二つのXMLファイルの中身とファイル名"*.inp.xml"を適宜修正してください。
    ファイル名"*.inp.xml"を変更した際は、"cntl.inp"のファイル名も併せて修正する必要があります。
  3. コマンドプロンプト、またはお使いのOSのターミナルウィンドウを立ち上げ、 上で変更した"cntl.inp"と同じフォルダにカレントフォルダを移動してください。
  4. コマンドプロンプトより、PeakSearch.exeの絶対パスを入力して実行します。

うまくいかないときに変更するパラメータ

より良い結果を得るためには、適宜、<Threshold><NumberOfPointsForSGMethod> を修正するとよいです。
<Alpha2Correction>には、α2除去に関するパラメータを入力します(α2ピークを含む特性X線データに粉末指数づけを行う前処理のため)。

  1. <Threshold> は、 ピーク位置 x に検出されたピークを、ピークとして検出・出力するかどうかの判定基準を与えます。
    具体的には、ピーク位置のX座標 xにおける、ヒストグラムのY座標 y の推定観測誤差をErr[y]としたとき、(Threshold) × Err[y]より大きなピーク高さを持つピークのみが検出されます。
    ただし、ここで使用されるピーク高さは、y から推定されたバックグラウンド値が差し引かれた値です。
    2次元データのY値の観測誤差として妥当な値が入力されていれば、多くのケースで 3 前後から10の範囲で、<Threshold>の最適値が得られると考えられます。

    Figure 3

    Figure 3 : 放射光データにおけるピークサーチ結果の例
    (<Threshold>を変更することで、強度の小さな回折ピークをどの程度検出するかを設定できます。)

  2. <NumberOfPointsForSGMethod>はバックグラウンドノイズの検出を抑制するために使用します。
    この値が小さいとき、より少ないデータ点数だけが使用される結果として、近似曲線(3次多項式)が局所的な凹凸をより明確に反映します。
    Figure 4.1の例は、近似曲線がバックグラウンドノイズを正確に表現してしまうと、ノイズの凹凸をピークとして検出してしまうケースが生じ得ることを示しています。
    Figure 4.1 Figure 4.2
    Figure 4.1 : NumberOfPointsForSGMethod = 5 Figure 4.2 : NumberOfPointsForSGMethod = 25

  3. <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"を含む全ての入出力ファイルをご添付ください。

論文の引用に関して

当ブログラムを用いて得られた研究成果を発表される際は、以下の文献を引用してください。

著作権について

本プログラムのソースコードは、MITライセンスの下、web上(Conographプロジェクトのリポジトリリスト)で公開しています(2013/2/24現在)。

謝辞

Conograph projectのために粉末回折データを提供頂いた方々に感謝します。

[Back to top] [Go to my research page (list of software)]