WindowsでのMRIcronのインストール方法

*MRIcronは開発が終了しており、最終版が2-September-2019なので、こちらのインストール方法を改めて紹介します。

MRIcronはNIFTIファイルのビューワーです。開発は終了しており、後継のMIRcroGLを使うことが勧められていますが、使い勝手はいいので、以下、紹介します。

MRIcronは、https://www.nitrc.org/frs/?group_id=152よりダウンロードします。

2-September-2019 の “MRIcron_windows.zip” をクリックします。

ファイルをダウンロードするにあたっての規約が表示されますので、[I Agree]をクリックします。

そうすると、MRIcron_windows.zip を保存する画面が出てくると思いますので、適宜保存します。

ファイルが圧縮されていますので、解凍してください。Windows10では、ファイルを右クリックで、「すべて展開」で展開できます。

すると、下図のようにファイルが解凍されます。

“mricron.exe” をダブルクリックします。(拡張子を表示するオプションを有効にしていない方はmricronだけかもしれません)

そうすると、一度だけ、以下のwarningが出ます。

ここで、「詳細情報」をクリックすると、以下のような画面になるので、「実行」をクリックします。

そうすると無事に起動します。(表示される画像は違うかもしれませんが)

以下、簡単に、背景画像と、アトラスを重ね合わせる方法を紹介します。

まず、背景画像を表示します。上に使っているのは、ch2.nii.gzですが、それを表示します。

MRIcronのメニューから、”File” -> “Open templates” -> “ch2.nii.gz” で、上手のような画像が表示されます。

これに、AALアトラスを重ね合わせたいと思います。

メニューの”Overlay” -> “Add” を選びます。

画像の選択画面が出ますので、MRIcronのフォルダがあるところの Resources/templates/aal.nii.gz を探します。

私の場合、MRIcronを ダウンロード/MRIcron_windows/MRIcron にインストールしてあるので、以下のところにありました。

そうすると、AALアトラスが重ね合わせられて表示されました。ここで適当な領域をクリックすると、ウィンドウの上にその解剖学的名称が出ています。
今の場合、右の海馬をクリックしたので、Hippocampus_R と表示されています。(MRIcronの表示はデフォルトは、RadiologicalでなくNeurologicalであり、右側は右に表示されます)

なお、デフォルトだと、アトラスはベタッと上に表示されます。
アトラスを少し透過させて、下の画像も確認するためには、”Overlay” -> “Transparency on Background” で値を調整します。
60%としてみると、以下のようになりました。こうすれば、背景画像とアトラスを比較できます。

SPMの結果から閾値をこえる領域のすべての座標を求める方法

最近、ある方にこういう依頼を受けました。

「SPMの結果から閾値を超えるクラスターの全領域名が知りたい」

このためには、まず、閾値を超えるクラスターの座標を知る必要があります。
SPMの構造体には、座標がすべて入っています。

SPMで結果を出した後に、Matlabのコマンドウィンドウに以下をタイプするだけでOKです。

xSPM.XYZmm

SPMの統計結果は xSPM という構造体におさめられています。
xSPMとタイプすると構造体の内容を見ることができます。

>> xSPM

xSPM = 

  フィールドをもつ struct:

          swd: 'ワーキングディレクトリ'
        title: 'コントラストのタイトル'
            Z: [1×1102 double]
            n: 1
         STAT: 'T'
           df: [1.0000 250.0000]
      STATstr: 'T_{250}'
           Ic: 2
           Im: []
           pm: []
           Ex: []
            u: 3.1232
            k: 100
          XYZ: [3×1102 double]
        XYZmm: [3×1102 double]
            S: 70831
            R: [1 41.5028 447.2876 1.2207e+03]
         FWHM: [3.6448 3.8374 3.7707]
            M: [4×4 double]
           iM: [4×4 double]
          DIM: [3×1 double]
          VOX: [3 3 3]
         Vspm: [1×1 struct]
    thresDesc: 'p<0.001 (unc.)'
         VRpv: [1×1 struct]
           Pp: [1×116 double]
           Pc: [1×58 double]
           uc: [4.8405 Inf 62.0000 62.0000]
        units: {'mm'  'mm'  'mm'}

これを改めてみると、SPMのResultsに出てくる内容がほぼ網羅されていることがわかります。

Z: [1×1102 double] はZ値が1102個あるということです。つまり、閾値を超えるボクセルが1102ボクセルあるということがわかります。
u: 3.1232 は p<0.001, uncorrectedに相応するT値、k: 100 はextent thresholdです。
XYZ: [3×1102 double]には、ボクセルの位置が入っており、XYZmmに、そのMNI座標が入っています。

とこんな感じでいろいろな情報が入っています。

XYZmmは3×1102ですから、3行1102列の行列です。
これは扱いにくいので、転置してあげると扱いやすくなります。

>&gt; A=xSPM.XYZmm;
>&gt; A'

ans =

    -9    54    21
    -6    54    24
    -9    54    24
   -12    54    24
    -6    57    24
    -9    57    24
   -12    57    24
   -15    57    24
 (…以下、この例の場合では1102行の出力が続きます)

こうやってすべての座標を得ることができました。

SPMでは、統計の結果はデフォルトでは、8mm離れたピーク領域しか表示されませんが、このような方法を使えば自分が気になっている領域が入っているかどうかを確認できます。