IGOR講座
基礎知識編
(0)Igorとは
Igor®は、Wavemetrics社の販売している、数値解析専門ソフトです。
大量の数値データを軽く解析するのに適したソフトです。シミュレーションよりも解析に適しています。(私は、解析はIgorで、シミュレーションはMatlabでやっています。)
プロ向けのソフトなので、慣れるまでは難しいのですが、自由度が高く解析能力が高い、良いソフトです。
Igorについての詳しいホームページ(生理研の井本先生のページ)
Igorのマニュアル(pdf)は、Igorをインストールするときに同時にインストールされます。
「Windowsのスタート」→「すべてのプログラム」→「Igor Pro」→「Igor Manual」
Igorのマクロは、フリーウェアでいろいろ落ちています。
・パッチのデータ(axon binary file:ABF file) を取り込むマクロ
(元サイトのリンクが切れているのでマクロだけ)
・「Neurometric」というマクロのページ (このマクロはIgor Pro version 5以上)
(1)Igorの画面とウィンドウ
(この講座はIgor Pro ver 3.13をベースにしています。Ver 5ではデザインやコマンドのある場所が若干違います。)
Igorの基本的な画面はこのような感じです。
@ コマンド・ウィンドウ
Igorの基本のWiondowです。赤い線の下の部分(コマンド・ライン)にコマンド(命令)を自分で打ち込んで、いろいろな解析を行います。赤い線の上の部分は、コマンドの履歴です。
A メニュー・バー
Igorでは解析を行うときコマンドをコマンドラインに自分で打ち込むのですが、代表的な解析なら、メニュー・バーからダイアロッグボックスを使って解析を行うことができます。このとき、コマンドは自動的にコマンドラインに表示されます。
B グラフ
データをグラフの形で表示できます。
C テーブル
データを表の形で表示できます。
(2)waveについて
「wave」というのはIgorでもっとも重要な概念です。「wave」とは、データ列を格納してものです。C言語での「配列」、Excelでの「一行(or 一列)のデータ」に相当します。
「wave」にはユーザーが自分で名前を付けます。アルファベットと数字で2文字以上です。
<Igorでの基本的な決まり事>
・waveの名前はアルファベットと数字で2文字以上。
・waveは上書きできない。
・大文字と小文字は区別されません。
<数値ファイルからデータをロードして、waveとする場合>
1)「メニューバー」→「Data」→「Load waves」→「Load General Files」を選びます。
そのとき下図のようなダイアログ・ボックスがでてきます。
2)@のところにwaveの名前を入れます。データが2行の場合は、それぞれ1行ずつ名前を付けてやります。
3)もし、その行のデータをLoadする必要がないときは、Aの「Skip Column」を押します。
4)「Load」ボタンを押します。
以上でwaveがロードされます。
<パッチのデータをロードする場合>
LoadAxonBinaryというマクロを使います。
ファイルはこちら。
Igorを立ち上げた後、このファイルをドラッグ&ドロップすると、マクロが使えるようになります。メニューバーの「Macro」のところに「Loadaxonfile」というメニューがでてくるはずです。
(3) FunctionとOperation
waveを解析したり、表示させたりするのには「fuction」と「operation」を使います。
「operation」はwaveそのものを何かするときに使います。
例:waveをグラフに表示する、waveをスムージングする、など。
「function」はwaveから何かの情報を引き出すときに使います。
例:waveの平均値を計算する、など
operation
例1:waveをグラフに表示する
display wavename
例2:waveの中のデータをx1番目のデータからn個分削除する。
deletepoints wavename, x1, n
※Igorで使えるoperation、functionの一覧とその使い方は、「メニューバー」→「Misc」→「Operation Help」or 「Function Help」にあります。
代表的なoperationの一覧
<グラフ・表に関するもの>
display:waveをグラフに表示する
メニュー |
「メニューバー」→「Windows」→「New Graph」 |
書式 |
・waveをグラフに表示する display wavename ・wave1とwave2を同じグラフに表示する display wave1 , wave2 ・waveXをx軸、waveYをy軸にしてグラフを表示する (このとき、waveXのデータ点数とwaveYのデータ点数は同じでなければいけません。) display waveX vs waveY |
appedtograph:いまあるグラフに、waveを新たに追加する
メニュー |
「メニューバー」→「Graph(Graphを選択したときだけ出てくる)」→「Append traces to graph」 |
書式 |
・いまあるグラフに、waveを新たに追加する appendtograph wavename |
removefromgraph:いまあるグラフから、waveを削除する
メニュー |
「メニューバー」→「Graph(Graphを選択したときだけ出てくる)」→「Remove traces from graph」 |
書式 |
・いまあるグラフから、waveを削除する removefromgraph wavename |
edit:waveを表に表示する
メニュー |
「メニューバー」→「Windows」→「New Table」 |
書式 |
・waveを表に表示する edit wavename ・wave1とwave2を同じ表に表示する edit wave1 , wave2 |
<解析に関するもの>
smooth:waveにスムージングをかける
メニュー |
「メニューバー」→「Analysis」→「Smooth」 |
Smoothの種類 |
Binominal:ガウス関数でスムージングをかけます。 Savitzky-Golay:サビツキ・ゴレイ法でスムージングをかけます。高周波ノイズが消えます。2次と4次のサビツキゴレイがあります。スムースをかけるデータ点数は奇数で、3から25の間の値でないといけません。 Box:矩形波でスムージングをかけます。つまり、スムースをかけるデータ点数の区間の平均そのものです。スムースをかけるデータ点数は奇数でないといけません。 |
書式 |
・waveに2次のサビツキ・ゴレイ法でスムースデータ点数25点のスムースをかける smooth/S=2 25,wavename ・waveに 矩形波でスムースデータ点数101点のスムースをかける smooth/B 101,wavename |
differentiate:waveを微分する
メニュー |
「メニューバー」→「Analysis」→「Differentiate」 |
書式 |
・waveを微分する differentiate wavename |
<waveの作成、複製、削除>
make:waveの作成
メニュー |
「メニューバー」→「Data」→「Make Waves」 |
書式 |
・データ点数100点でwavenameという名前のwaveを作成する make/N=100 wavename |
duplicate:waveの複製
メニュー |
「メニューバー」→「Data」→「Duplicate Waves」 |
書式 |
・wavename1という名前のwaveをwavename2というwaveに複製する duplicate wavename1, wavename2 |
killwaves:waveの削除
メニュー |
「メニューバー」→「Data」→「Kill Waves」 |
書式 |
・wavename1という名前のwaveを削除する killwaveswavename1 注意:グラフやテーブルに表じされているwaveは削除することができません。いったんグラフやテーブルを閉じてから、実行してください。 |
<waveの変更>
rename:waveの名前を変更する
「メニューバー」→「Data」→「Rename」
deletepoints:waveのデータの点を削除する
「メニューバー」→「Data」→「Delete points」
<waveのカーブフィット>
curvefit:waveのカーブフィット
メニュー |
「メニューバー」→「Analysis」→「Curve Fitting」 |
書式 |
|
例:X軸が「waveX」、Y軸が「waveY」というデータに対して、カーブフィットを行う。
@ まず、グラフに表示させておくとわかりやすい。
Display waveY vs waveX
A つぎに、waveYを複製しておく。(これが後にFitしたwaveになる。名前を「Fitwave」とする)
Duplicate waveY , Fitwave
B つぎに、カーブフィットのダイアロッグを開く。
「メニューバー」→「Analysis」→「Curve Fitting」
(1) Fittingする関数の形を選びます。
(2) Y軸のwaveを選びます。
(3) X軸のwaveを選びます。(これを選ばない場合は、X軸は1点間隔になります。)
(4) Fitしたあとのwaveに書き換えられます。(オプション)
(5) Fittingに重みをつけることができます。(オプション)
(6) ある区間だけFittingを行うことができます。(オプション)
(7) Fittingする関数の形がでてきます。
(8) 書式がでてきます。
必要なところを書き込んで「Do it」をおすと、Fittingが実行されます。
C ここで、したのような画面が出てくるので、「OK」を押します。値をメモっておくと後で便利です。
この値は、ここにもでてきます。
この値は何かというと、たとえば、ガウス関数の場合、Fitting関数は、
K0+K1*exp(-(x-K2)/K3)^2)
という関数なのですが、この変数(K0からK3まで)の、具体的な値なのです。
D 実際にFittingしたカーブを表示してみます。
Appedtograph fitwave vs waveX
テーブルに表示するには、
edit waveX, waveY, fitwave
<waveのヒストグラムを作成する>
histogram:waveのヒストグラムを作成する
メニュー |
「メニューバー」→「Analysis」→「Curve Fitting」 |
書式 |
|
例:「wave1」というデータに対して、ヒストグラムを作成する。
@ まず、wave1を複製しておく。(これが後にhistogramしたwaveになる。名前を「histowave」とする
Duplicate
waveY , Fitwave
A つぎに、カーブフィットのダイアロッグを開く。
「メニューバー」→「Analysis」→「Histogram」
(1) Histogramのもとのwaveを選ぶ。
(2) Histogramの結果をいれるwaveを選ぶ。
(3) bin(ひとつのバーの区間)を自分で選ぶか自動で選ぶかを決める。
(4) 自分で選ぶ場合、数値を入力する。
Bin start:ヒストグラムを作成する際の最小値
Bin width:ひとつのbinの間隔
Number of bins:binの数