これまで、構造画像、機能画像を指定してきました。
次に Setup -> ROIs に行かずに、画面左下にあるPreprocessingにうつります。
(前処理が終わっているという場合は、中級編になりますので、まずは、前処理をしていない状態で説明していきます)
まずは基本からいきましょう。
Preprocessingをクリックしたあと、最初に出てくる画面で、
default preprocessing pipeline for volume-based analyses (direct normalization to MNI-space)
になっていることを確認したうえで、
画面右側にある”Add”をクリックします。
そうすると、下図のようになります。
これは前処理の順番が記載されています。
- functional Realignment & unwarp (subject motion estimation and correction)
- functional Center to (0,0,0) coordinates (translation)
- functional Slice-timing correction
- functional Outlier detection (ART-based identification of outlier scans for scrubbing)
- functional Direct Segmentation & Normalization (simultaneous Gray/White/CSF segmentation and MNI normalization)
- structural Center to (0,0,0) coordinates (translation)
- structural Segmentation & Normalization (simultaneous Gray/White/CSF segmentation and MNI normalization)
- functional Smoothing (spatial convolution with Gaussian kernel)
機能画像の位置合わせとunwarp (被験者の動きの評価および補正)を行います。
これはAC-PC位置合わせの簡易版と思ってください。画像の原点を画像の重心に持ってきます。たいていの場合、これでAC-PCに比較的近いところにきます。ただ、これは万能ではありませんので、注意は必要です。
機能画像のスライスタイミング補正を行います。
これは機能画像で頭が過度に動いてしまったようなスライスを検出するという機能です。scrubbingと言います。AFNIではcensoringと呼ばれています。ちなみに、outlierは外れ値という意味です。CONNではscrubbingにARTというプログラムを用いています。
機能画像のSegmentationと解剖学的標準化を行います。
先ほどと同様に構造画像も画像の原点を画像の重心に持ってきます。
構造画像の分割化と標準化を行います。ここでの標準化はDARTELでなく、低次元の標準化であることに注意してください
機能画像の平滑化を行います。
デフォルトでは、この順番で行います。この内容を変えたければ、適宜右側にあるAdd, Remove, Move Up, Move Downを使っていけばいいわけです。
まずは基本でこのままでもいいのですが、最初のスキャンを省きましょう。
fMRIでは最初の数スキャンは磁場が安定しないため、取り除いた方がいいと言われています。今回のCOBREのデータは、最初の4スキャンはすでに除かれているということですが、さらに6スキャン(トータル10スキャン)除いてみましょう。
Data Preprocessing stepのところで先ほどまでDefaultだったものから、
functional Removal of initial scans (disregard initial functional scans)
を選択し、Addをクリックします。
一番下に追加されますので、Move upで一番上に持って行きましょう。
取り除くので、一番最初にしてしまった方がいいと思いますので…。
下図のようになるはずです。
これで前処理の準備ができました。
“Start” をクリックしましょう。
そうすると、最初に平滑化のパラメータを聞かれます。デフォルトのまま8でOKです。
次に、fMRIのスライスオーダーを聞かれます。
COBREのデータセットのスライスオーダーはSiemensのinterleavedですので、
interleaved (Siemens)
を選択します。
次に、最初の何スキャンを取り除くかの画面が出ます。
今、ここでは6としておきます。
そうすると、すでに取り除かれている4スキャンとこの6スキャンでトータル10スキャンが取り除かれることになります。TRが2秒ですから、20秒分取り除くことになります。どのくらいかというのはいろいろあるようですので、各ラボごとに決めたらよいと思います。
次に、外れ値の閾値を設定する画面が出ます。
かつては、”liberal”か”conservative”しかなかったのですが、最近のバージョンでは、”intermediate”が付け加わりました。
以下のような関係になっています。
liberal: Global signal はZ値に換算して 9SD まで、被験者の動きは、2mm までは許容する。
intermediate: Global signal はZ値に換算して 5SD まで、被験者の動きは、0.9mm までは許容する。
conservative: Global signal はZ値に換算して 3SD まで、被験者の動きは、0.5mm までは許容する。
正直、conservativeだと厳しすぎるし、liberalだとゆるすぎるなと思っていたので、intermediateがいいなと思います。
実際、conn17eでは、intermediateがデフォルトになっています。
メニューから、デフォルトの
Use intermediate settings (97th percentiles in normative sample)
を選択してください。
そうすると、下図のようなメッセージが表示され、前処理がはじまります。
私の環境(Core i7, メモリ16GB, Thinkpad X250, Lin4Neuro based on Ubuntu 14.04) のノートPCで20例で4時間でした。1例あたり10分〜15分程度という感じです。しばらくゆっくりするしましょう。
前処理が終わると以下のメッセージが出ます。
次で、前処理の結果を確認します。
こんにちは。以下の様なエラーメッセージが出て前処理が止まる事を経験された事はありますでしょうか?
Running ‘Normalise: Estimate & Write’
Smoothing by 0 & 8mm..
Failed ‘Normalise: Estimate & Write’
中かっこまたはドット インデックス式からの必要な出力は 1 つですが、7 個の結果があります。
In file “/spm/spm8/spm_smoothto8bit.m” (v4310), function “smoothto8bit” at line 33.
In file “/spm/spm8/spm_smoothto8bit.m” (v4310), function “spm_smoothto8bit” at line 16.
In file “/spm/spm8/spm_normalise.m” (v4621), function “spm_normalise” at line 153.
In file “/spm/spm8/config/spm_run_normalise_estwrite.m” (v4152), function “spm_run_normalise_estwrite” at line 22.
The following modules did not run:
Failed: Normalise: Estimate & Write
先生のチュートリアルを見ながら、自研例を解析しようとしておりますが、前処置が途中で止まってしまします。エラーメッセージは以下のようになっているのですが、原因分かりますでしょうか?
Running ‘Normalise: Estimate & Write’
Smoothing by 0 & 8mm..
Failed ‘Normalise: Estimate & Write’
中かっこまたはドット インデックス式からの必要な出力は 1 つですが、7 個の結果があります。
In file “/spm/spm8/spm_smoothto8bit.m” (v4310), function “smoothto8bit” at line 33.
In file “spm/spm8/spm_smoothto8bit.m” (v4310), function “spm_smoothto8bit” at line 16.
In file “/spm/spm8/spm_normalise.m” (v4621), function “spm_normalise” at line 153.
In file “/spm/spm8/config/spm_run_normalise_estwrite.m” (v4152), function “spm_run_normalise_estwrite” at line 22.
The following modules did not run:
Failed: Normalise: Estimate & Write
itoさん
おそらく、これは、SPM8のせいです。
SPM8にこだわる必要はありますか?
よろしければ、SPM12をインストールしていただき、
Matlabのパス設定をSPM8のものを削除し、SPM12にしていただいて、
動作させていただけたらと思います。
CONNはSPM8でも動くはずなのですが、ほかの方からもSPM8でエラーが出たという報告を受けています。
すみません、SPM8での動作検証をする余裕がないので、SPM12で試していただくのが一番と思います。
よろしくお願いします。
コメントが重複してしまい申し訳ありません。
SPM12で再度 tryしてみます。ありがとうございます。結果はコメントさせていただきます。
無事に前処置終了できました。
ありがとうございました。今後も勉強させていただきます。
よかったです。SPM12だと問題なくいったということですね。
現バージョンのCONNはSPM12で行うのがいいということが確認ができたかと思います。
ご報告ありがとうございました。