初めに
- WindaowsXPでの動作環境としてMATLAB2006aを推奨(2007.12)
- Linuxがデフォルトとなりつつある(2009.1)
- WinVistaではまだ試験中、今後も多分無理、MacOSでは無理
一部は動くのだが、3D表示や平坦化など重要な部分でのmexエラーがおきる(libraryの問題)
- Bugが多いため、動かなくても泣かない(永遠のβ版である)
- Matlabでは問題ないがSPMでは日本語フォントに対応していない。そのため、日本語フォントがついたフォルダのある階層に入ると、フォントが文字化けをおこしてしまい、目的の階層に入れないため注意。
mrVistaでは、ざっくりとしたTalairach標準脳(※)を使用せず、vAnatomyという詳細な構造画像ファイル(多くは1x1x1mm程度)と、そこから求められる手動で白質と灰白質、髄液をわけたClass(ification)ファイル、さらにそこから構築される灰白質データGrayファイル(白質表面から自動で3mm(任意に選択可能)の幅で取ってくる)を用いる。これらを軸に別の日に行った実験であっても、正確な位置を同定しながらできるというソフトの性質のためである。そこで、SPM解析とは異なり、InplaneというT1強調画像が必要となる。これは機能画像、つまりfMRIデータと同一平面で撮像されており、できるだけ正確にvAnatomyとfMRIデータをくっつけるという、いわば「のり」のような役目をしている。
※Talairach標準脳
1人のアル中の白人女性中年女性の脳で、さらにこれは片方の脳を鏡像にして使用しているらしい。SPMでは標準。たくさんの被験者を一気にまとめて解析、表示するのに便利のため、標準脳はポピュラーな手法となっていた。
手順
- mrInitRet .magファイルからのデータの抽出。解析の下準備。
- mrAlignMI InplaneとvAnatomyの傾きをあわせる。自動。クリックして待つ。駄目な場合はmrAlign3, rxAlign。
- mrVista メインパート。データの解析、およびVisualization。構造画像上や立体画像上での脳に着色し結果を分かりやすくする(2D、3D、平坦化した脳地図上)
mrVistaでの解析方法いろいろ
- corAnal - 正弦波によるcross correlation
基本。よっぽど設定、刺激がまちがってなければ何か反応が出る。(もちろんthresholdに依存するが)
- pRF model - 各ボクセルのBOLD signalから、そこに含まれるneuron群の視野座標の位置および反応サイズを推定し、より精密なretinal representationを描く方法。pRFとは、”population receptive field”の意。xy座標とpRFに対応するσを可変パラメータとして、HRFを畳み込み加算し、各voxelのtime courseに最適fittingするpredictorを作成する。利点として、従来のtraveling wave methodではなかった、刺激途中にblankを設定することにより、大きなpRFをもつvoxelの反応を抽出することができている。
- GLM analysis - 一般線形解析。イベントとそれに付随するBOLD signalを予測し、複数の独立変数を用いて、実際のBOLD modulationの説明をする。強力な解析方法でよく用いられる。上記のpRFもGLMに含まれるといえる。
mrInitRet 使用するデータの決定、データ抽出、解析方法の決定
ここではデータを解析できる形に準備する手順を紹介する。
MRI装置を作っている会社によって生データは異なる。
例えばGEならPfile、SiemensはDICOM formatというように。
そこで解析データ作成が異なる。
GEのデータはPfileからtSeriesへと変換される。これはInplaneで定義される平面の一枚毎に時間変化していくデータを持っている。つまりtSeriesデータはInplaneの枚数と同じ数だけある。一方、Siemensデータは、時間毎にファイルが製造される。例えばTR=2000msであれば、2秒間でInplaneが含む全部のスライスを撮像する訳であるが、2秒ごとの全画像が、1Scanで撮像した時間の分だけファイルができるわけである。TR=2000msで2分のデータであれば60ファイルである。
GEデータの解析方法
Rawデータのある階層に移動、mrInitRetと入力。上から3、4、5番目(デフォルト)のボックスにチェックをいれてOK。
Setup Raw / Directory
Resize inplane images
v Crop inplane images
v Create/edit data structures
v Extract time series
Perform blocked analysis
次のウィンドウもデフォルトでOK。Inplaneの画像が出てくるため、後頭葉を含むように範囲を指定する。画像の左上と右下の2点を決め、一回ずつクリックする。
fMRI Reconstruction ウィンドウでは
Descriptionに実験名、
Subjectは被験者名、
FunctionalsのInitial frames to discardに数字を入力、
Functionalsの下にある数字の横のCopy>>をクリックし、
Acceptする。
Data Type Editor ウィンドウでは、(ウィンドウがせまく上の方が表示されていないので、注意。広げるように)
DescriptionにそのScanで何をやったか、
最後のNumber of cycles/scanにそのScanでサイクル数を入力、
Data type copy>> Copy(select scan number) などがあるので、
これらを使用する。
データのサイクルなど合っていることを確認し、Accept。
Siemensデータの解析方法
煩雑であったが、Dr.Aにより開発されたMatlabソフトウェア、BF(バッチファイルの略らしい)により、手順を覚えれば比較的簡易である。
mrInitRetによりmrSESSIONというファイルが作成され、そのファイルがあるフォルダでのみ、mrVistaによる解析が可能となる。
まず、解析をする場所を決定する。忘却予防のため、多くは生データであるDICOMの入ったフォルダの並んでいるところに作ることが多い。ファイルは非常に巨大化する恐れがあり、間違ってもCドライブで解析しないことをお勧めする。速度では内蔵Dドライブ>外付けHDD>LAN共有HDDの順番であるが、当然容量の余裕はその逆である。
例として、外付けHDDで展開する場合をあげる。
必要なものはMatLab(Ver6.5〜多分7でないと今は動かない)、BF.m、SPM2である。
MatLabウィンドウの上のほうに表示されているカレントディレクトリ/Current Directory(Y)(以下CD)の右にある「…」というボタンをクリックする。
フォルダの参照ウィンドウが出るので、フォルダを選ぶ。
例として、I:\fMRI\ABC071022\DEF071022
下記のような生データの入ったフォルダと同じ階層につくることとする。
1-localizer
2-lgx_ep2d_bold96_2x2x3
3-lgx_ep2d_bold96_2x2x3
4-lgx_ep2d_bold96_2x2x3
5-t1_se_tra
6-lgx_ep2d_bold96_2x2x3
MatlabのCommand Window上で
BF
とタイプしリターン
今のディレクトリは I:\fMRI_\ABC071022\DEF071022だけどあってますか?
確かですか?と聞かれるので、あっていればYES。違うならNOでもうCDを一度選択。
最初にrealign(動き補正)と一緒にUnwarp(副鼻腔などの含気した部位による画像の歪み補正)をするかと聞かれる。ただしUnwarpはエラーがでるため、「無しで(without)」を選択する。 realignがかかるのはデフォルト。次に空間Smoothingをかけるか聞かれる。ここは自由に選択をする。YESの場合、FWHMは何mmにするか聞かれるので、数値を入力。Full Width Half Maximumの略、半値全幅である。
するとtSeries(実際にmrVistaで解析するときのfMRIデータの形状)は、Smoothingデータから作るか聞かれるので、選択する。Vistaでの解析はSmoothingがかかっていないデータが推奨される。
その後データの選択を行う。
最初にInplaneのDICOMを選択することとなる。
Select INPLANE with DICOMウィンドウ内で
Inplaneが入っているフォルダを選択。そしてInplane画像を選択。横の数字が1−24など、2つの数字がハイフォンでつながっていれば24の画像が選択されている。右の拡張子がdcmであるか確認。誤って左の数字をクリックするとファイルが広がって沢山表示されるが、慌てずにAllを選択する。もちろん他にファイルが存在する場合は必要なものだけを選ぶこと。選択したらDoneをクリック。
次にSelect DICOM files of Session1というウィンドウになるので、
Inplaneの次(無い場合は直前)に撮像した機能画像のフォルダをクリックする。
Inplaneの時と同様に機能画像を選択してDone。これを繰り返す。どのような順番で情報を抽出したかメモしておく方がベターである。忘れた場合も最後にAnalysisNote.docファイルができるので、問題はないが。
全部選んだら、何も選択しないでもう一度Doneをクリック。すると何枚Discardするか聞かれるので、数字を入力する。あとはひたすら待つ。しばらく時間がかかるためゴルフに行くことも可能である。注意すべき点として、解析しているPCの音量を最大にしておくことがあり、これは、ソフトの作成者であるDr.Aから推奨されている。
これでSiemensデータをtSeriesに変換し、mrVistaで走らせることができる形式に変換できた。
できあがったフォルダはVISTA(日付)となっている。Current Directryをそのフォルダ内に移動。
Command Windowで
mrInitRet
とタイプしリターン。
mrInitRetのGUIが立ち上がる。
Setup Raw/ Directory
Resize inplane images
Crop inplane images
v Create/edit data structures
Extract time series
Perform blocked analysis
とあり、3、4、5番目にチェックがついているが、
4番目のみのチェックにする。
fMRI Reconstruction ウィンドウで
Descriptionに実験名
Subjectは被験者名
FunctionalsのInitial frames to discardに数字を入力
Functionalsの下にある数字の横のCopy>>をクリック
Acceptする。
Data Type Editor ウィンドウで
DescriptionにそのScanで何をやったか
最後のNumber of cycles/scanにそのScanでサイクル数を入力
ウィンドウがせまく上の方が表示されていないので、広げてやると、
Data type copy>> Copy(select scan number) などがあるので、
これらを使用する。
データのサイクルなど合っていることを確認し、Accept。
mrAlignMI
mrInitRetのあるフォルダでタイプするだけ。
vAnatomyを選んで問いにはYesと答える。
最後にスライスを確認して終了。
High Resolutionで撮ると非常にずれることがある。というかほぼ解剖画像にのらない。
ずれた場合にはもう一度走らせるか、rxAlignという姉妹品を使用する。
これは比較的mrAlign3と似ているが、新しい機能が多くついている。
欠点としては、MEX errorが出易い。その場合は www.dependencywalker.com へ。
mrVista
まずは、実験がうまくいっているかを簡単にチェックする方法。正弦波がpredictorとなるようなブロックデザイン刺激を用いた場合、とりあえずAnalysis -> Traveling Wave Analyses -> Compute corAnal -> Compute corAnal (all scans)。正弦波によるcross-correlationなので、coherence threshold(右上)を下げれば、大抵何か反応が出る。出ないときは、まずcycle/Scanが間違っている可能性が高い。
さらに、
Plots -> tSeries movie -> Movie UIから、
生データをチェックできる。
(スキャン間、スキャン内でどれだけ動いているか、また強い刺激ならBOLD変化が直接わかる)
チェックして、スキャン内で動いてないようなら、
Motion Compensation は between scans のみでいい。
(だが多くはigid Body: Both Between + Within Scansを念のため施行し、スキャン内の動きを確認することになる)
また、セッションを通して全く動いてないようなら、
Motion Compensation はいらないということになる。
GEデータの場合 (SiemensデータはSPMで既にrealignをかけているため不要)
まず、Slice timing補正と動き補正をかける。
Analysis -> Time series -> Adjust slice timing
Select Allして、OK。TimedというtSeriesができる。
それほど時間はかからない
Motion correction
※必ずInplane windowの右上のData Typeをクリックして、OriginalからTimedに変更すること!
Analysis -> Motion Compensation -> Rigid Body: Both Between + Within Scans
Betweenはそれほどでもないが、同一スキャン内での動き補正であるWithinが非常に時間がかかる
<Siemensはここから一緒である>
同一の刺激を用いたScan同士でAverageをかける
Average dataに変更後、Analysis -> Traveling Wave Analyses -> Compute corAnal -> Compute corAnal (all scans)
pRF Analysis - the codes written by SOD
DataはAveragedでよい。これをxform -> Inplane to Volume -> tSeries (All Scans) -> trilinear を用いて、
tSeries data をgray上に移動する。
Glay window上で
Retinotopic model -> Set Stimulus Parameters
パラメータ設定の例
8Bars
stimulus radius (deg) 14 (視覚刺激のサイズ)
stimulus width (deg) 90 (刺激の幅が変わる)
stimulus starting phase (deg) 0
stimulus direction (boolean) counterclockwise or out
Number of stimulus cycles (#) 1
Number of mean-luminance blocks (#) 4
Number of unique stimulus repetitions (#) 1
Number of removed time frames with stimuli (#) 5
Number DCT to remove from data (de-trend, #) 3
HRF type two gammas (SPM style)
HRF parameters <auto 5.4 5.2 10.8 7.35 0.35>
Frame interval (sec) auto 1.5
Number of time frames (#) auto 128
Wedge
stimulus radius (deg) 14
stimulus width (deg) 45
stimulus starting phase (deg) 0
stimulus direction (boolean) counterclockwise or out
Number of stimulus cycles (#) 6
Number of mean-luminance blocks (#) 4
Number of unique stimulus repetitions (#) 2
Number of removed time frames with stimuli (#) 5
Number DCT to remove from data (de-trend, #) 1
HRF type two gammas (SPM style)
HRF parameters <auto 5.4 5.2 10.8 7.35 0.35>
Frame interval (sec) auto 1.5
Number of time frames (#) auto 96
Ring
stimulus radius (deg) 14
stimulus width (deg) 45
stimulus starting phase (deg) 0
stimulus direction (boolean) counterclockwise or out
Number of stimulus cycles (#) 6
Number of mean-luminance blocks (#) 4
Number of unique stimulus repetitions (#) 2
Number of removed time frames with stimuli (#) 5
Number DCT to remove from data (de-trend, #) 1
HRF type two gammas (SPM style)
HRF parameters <auto 5.4 5.2 10.8 7.35 0.35>
Frame interval (sec) auto 1.5
Number of time frames (#) auto 96
Plots -> Retinotopic Model -> View Stimulus aperture
刺激の絵が見れる 念のため上下左右が反転していないか、実際の刺激と違わないか確認。
Retinotopic Model -> Coarse stage
Retinotopic Model -> nonlinear minimization (refine results)
Retinotopic Model -> Coarse to minimization 上記2つを通しでやる
以上の計算後、
File -> Retinotopy Model -> Load Model Parameterで
Select model: 変更しない
Select parameter: ここを変える
- variance explained (coherenceに相当) -> co
- eccentricity -> map
- polar angle -> ph
Select field; 変更しない
corAnal の各パラメータに値が入る
GLM analysis (General Linear Model 一般線形解析)
HRFに任意のタイミングの刺激のonset-offset時間を畳み込み加算(convolution)することにより、Predictor(説明変数)を作成し、BOLD signalを説明するという強力な解析方法。前提としてBOLD signalは線形和が成立するという仮定。pRF methodは、この方法をより進化させた物と考えると分かり易い。
ITKSnap (mrGray2に名前が変わるかも)
Cygwin(windows上でLinax環境を使用するソフト)必須。
Net-Open SSHとX11の他に
Devel(opperツール)フォルダの中の
autoconf 3k
autoconf2.1 202k
autoconf2.5 791k
automake1.10 676k
binutils 4815k
cvs 709k
expat 111k
fltk 279k
fltk-devel 540k
gcc 1k
gcc-core 3618k
gcc-g++ 2958k
gcc-mingw 1k
gcc-mingw-core 69k
gcc-mingw-g++ 1894k
gettext 176k
libXft-devel 40k
mingw-runtime 272k
mktemp11k
pcre 172k
subversion 1075k
以上を全てチェックしておかないと使用できない。
cygwinのコマンドプロンプトから、
ITKSnapのあるフォルダに行き(cd ...で指定)下記をタイプ
./insightSNAP
*以下番外編(備忘録というよりメモ)
Tips
- Gray map上で他のセッションからcorAnalをもってくる
非常に有用。corAnal onlyは上書きされるので注意。ダミーを作ること。一つずつ移さないとエラーがでるので注意!!
INPLANE{1}とかVOLUME{1}とかFLAT{1}を参照して、構造画像上に計算後のデータを重ね合わせるという仕組みになっている。例として、Inplane Viewが開いているときに、MatlabのWorkspaceをみると、mrSESSION, INPLANE, VOLUME, vANATOMYPATHなど複数のセルやらベクトルやらストラクチャーが開いている。
{内}の数字はそのとき開いているウィンドウ名を見れば分かる。大抵は1。複数開いていると2とか3になる
name, viewType, sessionCode,.....etc.といろいろあるが、重要なのは、co, amp, ph, map, の4つと、curDataType, curScan, selectedROIの3つだろう。前者はデータをハッキングして書き換えるときに知っている必要があり、後者はデータを引き抜くときに必要となる。これらの数値(あるいは文字列)を書き換えることと、コマンドウィンドウ上から直接データを抜くことができるようになると大変楽になるので、多少構造を理解しておいた方が良い。
realign 撮像中のスキャナーにいる4分間、被験者はできるだけ、微動だにしないよう努力している。(結果がずいぶん違うため) しかし、ごくわずかに動いてしまうこともあるだろう。また、ScanとScanの間は、唾を飲んだり深呼吸をしたり、手の位置を少し動かしたりすることもある。そこでrealignで一連のデータを最初に決定した構造画像を軸にぴったりと位置を合わせるのである。似たようなInplaneであれば別の日に取ろうが、一緒のデータとして解析できないことはない。またrealignという言葉は複数の被験者間での平均化をさすこともあるので、われわれのやっている手法の場合(つまり同一被験者内でのスキャン間の動き補正およびスキャン中の動き補正のみ)は、Motion Compensation という言葉を使う方が望ましい。
Linaxノススメ
Bobお勧めのUbuntuを使うといい
mexエラーが出た場合
コマンドプロンプトで
ldd (走らせたい実行形式のファイル) リターン
で、どのライブラリがコンパイルされていないか分かる
System -> Administration -> synapticから必要なライブラリを選択(オンラインの必要あり)
ダウンロードして完了
Administratorじゃないとできない
以上
(以下は宣伝が鬱陶しいので延々と改行)
最終更新:2009年01月22日 12:32