これまで、構造画像、機能画像を指定してきました。
次に 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分程度という感じです。しばらくゆっくりするしましょう。

前処理が終わると以下のメッセージが出ます。

次で、前処理の結果を確認します。
根本先生
ご返信いただきありがとうございます。
あいにく、カレントワーキングディレクトリは外付けディスクのドライブになっていました。CONNはsub-の順番通りに処理されますでしょうか?260画像ほど処理し、failed:realign and unwrap と表示され処理できなかった画像が37番目、149番目、201番目とまちまちです。また、先ほどお送りさせていただきましたMatlab上のメッセージの後も処理(complete)が続いておりました。
並列処理をしているかどうかによります。並列処理をしていたら、順番がまちまちになる可能性は十分にあるかと思います。
ダメだったものは、改めて解析していただくというのが解決法かと思います。
根本先生
先日はpreprocessing についてお教えいただき誠にありがとうございました。
その後別の原因で数画像のみエラーが出てしまいました。
ターミナルでエラー画像の基本情報を確認いたしましたが、枚数等処理が完了した画像と同様でした。
もし思い当たる原因がございましたらご助言賜れますと幸いです。
Done ‘Realign & Unwarp’
The following modules did not run:
Realign & Unwarp Failed:
Realign & Unwarp Failed:
Realign & Unwarp Failed:
ERROR DESCRIPTION: 使い方によるエラー MATLABbatch system Job execution failed. The full log of this run can be found in MATLAB command window, starting with the lines (look for the line showing the exact #job as displayed in this error message)
これだけだとわからないですね。
Matlabのコマンドウィンドウに出ているメッセージを教えていただけませんか?
根本先生
Matlabのメッセージを貼り付けると当サイトで”forbidden”と表示され送信できず、ご返信が遅くなり大変失礼いたします。多くの画像を処理し、すべてを貼り付けることが難しいのですが、以下のメッセージでご検討いただけそうでしょうか?
何卒よろしくお願いいたします。
Failed ‘Realign & Unwarp’
使い方によるエラー fwrite
デバイスに容量が残っていません。
In file “/Applications/spm12/@nifti/private/write_hdr_raw.m” (v7370), function “write_hdr_raw” at line 81.
In file “/Applications/spm12/@nifti/create.m” (v7147), function “create” at line 25.
In file “/Applications/spm12/spm_create_vol.m” (v7455), function “create_vol” at line 210.
In file “/Applications/spm12/spm_create_vol.m” (v7455), function “spm_create_vol” at line 17.
In file “/Applications/spm12/spm_smooth.m” (v4419), function “smooth1” at line 105.
In file “/Applications/spm12/spm_smooth.m” (v4419), function “spm_smooth” at line 37.
In file “/Applications/spm12/spm_uw_estimate.m” (v6824), function “spm_uw_estimate” at line 268.
In file “/Applications/spm12/config/spm_run_realignunwarp.m” (v6554), function “spm_run_realignunwarp” at line 90.
根本先生
何度も失礼いたします。
外付けHDDにデータを保存しておりまして、ターミナルで確認したところ容量は19TBございました。
そうなのですね。エラーは、デバイスに容量が残っていませんですが、カレントワーキングディレクトリは外付けディスクのドライブになっていますか?
根本先生
何度も誠に恐れ入ります。
外付けHDDをとりつけている、MatlabやCONN、SPMが入っているMac本体の容量が残り3GBほどでcapacity100%となっています。これは影響しますでしょうか?
はい、それは影響します。それが原因ですね。おそらくスワップなどで使われていてそこで不足しているのだ思います。
根本先生
ご返信いただき誠にありがとうございます。
本体の容量も関係するのですね。大変勉強になり感謝申し上げます。
根本先生
平素より大変お世話になっております。
既にtopup済の画像をsub-001*.niiと名付けsturctual 及びfunctonal で選択しPreprocessingを行うとエラーがでます。
具体的にはCONN上でrealignmentを行っていないがためにART及MNI処理で使用するディレクトリが作成されていないようです。
TopUp済みの画像を使用する場合のPreprocessingの方法についてご教示頂けますと幸いです。
topupでゆがみ補正が終わったものを使いたいということですね。
その場合でも、preprocessingは必要です。
ただ、topupでゆがみ補正はいらなくなったので、fieldmapによる補正がいらなくなりました。
従って、preprocessingには、CONNのpreprocessingの一番上にある
default preprocessing pipeline for volume-based analysis (direct normalization to MNI-space) を選択してください。
考えとしては、fMRIのゆがみがないきれいな画像で、フィールドマップがないデータセットがあると考えていただければ。
それで問題なく進められるはずです。
つまったらまた教えてください。
根本先生
早急にご返信いただきありがとうございます。
言葉足らずを補っていただきご丁寧にご説明くださり感謝申し上げます。
ご教示いただきました方法で試行してみます。
長らく滞っていたのですが打開できそうです。
よかったです。また試してつまったらご質問いただければ。
根本先生
いつも大変お世話になっております。
前処理の方法に関して質問がございます。
最近のチュートリアルではfieldmapを使用しての前処理を行っていらっしゃるかと思いますが、手持ちのデータにはfieldmapデータがありません。その場合、選択するpipelineはこちらと同様のdefaultでよろしいでしょうか。
この両者の処理にはどのような違いが出てくるのでしょうか。
山口
はい、その場合は、こちらで紹介する方法を選択していただけたらと思います。
根本先生
ご多用のところ早速ご返信いただきまして、ありがとうございます。
山口
こんにちは。以下の様なエラーメッセージが出て前処理が止まる事を経験された事はありますでしょうか?
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で行うのがいいということが確認ができたかと思います。
ご報告ありがとうございました。