VBMでの全脳容積(Total Brain Volume; TBV)の求め方

「すぐできるVBM」に、全脳容積の求め方を記載していませんでした…。

以下の方法で、求めることができます。

必要なものは以下のとおりです。

  • get_totals.m
  • 容積を簡便に求めることができるスクリプトは、Ged Ridgway氏によるget_totals.mです。右クリックで「名前をつけて保存」とし、SPMのディレクトリに保存してください。

  • 灰白質画像と白質画像
  • Segmentで最初に作られる画像であるc1*.niiとc2*.niiを準備します。ここで*はワイルドカードを意味し、「c1からはじまり、そのあとは何でもOKで、最後は.niiで終わる」という意味です。c1画像は厳密には確率画像なのですが、標準化前のこの画像のボクセル値は、ほぼ容積とイコールであると考えられています。

それでは実際にやっていきましょう。

まずは、灰白質の容積を求めます。Matlabのコマンドウィンドウから以下のようにタイプします。

gmv = get_totals

(gmvは変数名なので、gray_matterでも、gmでもかまいません)
そうすると、ファイルを選択するダイアログがあらわれます。ここで、容積を求めたいc1画像を指定してください。ここでは、ためしに5つのファイルを選びました。そうすると、以下のような表示になると思います。(もちろん、数字は選択した画像で変わります)

gmv =
640.9410
664.4302
617.7647
874.1366
670.1864

次に、白質の容積を求めます。Matlabのコマンドウィンドウから以下のようにタイプします。

wmv = get_totals

同様に、ファイルを選択するダイアログがあらわれますので、容積を求めたいc2画像を指定します。重要なのは、c1画像と同じ順番で選択してください。以下のような表示になると思います。

wmv =
431.9188
463.1192
418.5571
572.9889
488.4050

そうしたら、2つを足して全脳容積を求めましょう。

tbv = gmv + wmv

tbv =
1.0e+03 *
1.0729
1.1275
1.0363
1.4471
1.1586

これは、1.0×10^3(すなわち1000)にそれ以下の数字をかけたものということです。つまり、

tbv =
1072.9
1127.5
1036.3
1447.1
1158.6

ということになります。

これを選択してコピーしても使えますが、ファイルに書き出しましょう。
コンマ区切りファイルというものに出力することができます。
出力ファイル名をtotal_brain_volume.csvとします。

csvwrite('total_brain_volume.csv',tbv)

csvwriteの書式は csvwrite(出力ファイル名, 変数名) となります。
変数tbvの内容をtotal_brain_volume.csvに出力したいので、上記のようになります。
そうすると、ワーキングディレクトリにtotal_barin_volume.csvが生成され、Excelのような表計算ソフトでも、テキストエディタでも開くことができます。

最後に少し応用しましょう。灰白質容積(GMV), 白質容積(WMV), 全脳容積(TBV)をすべてCSVファイルに出力したいとしましょう。

その場合は、まず、すべての情報をひとつの変数volumesにまとめます。
Matlabのコマンドウィンドウから次のようにタイプしてください。

volumes = [gmv wmv tbv]

そうすると下記のようになります。

volumes =
1.0e+03 *
0.6409 0.4319 1.0729
0.6644 0.4631 1.1275
0.6178 0.4186 1.0363
0.8741 0.5730 1.4471
0.6702 0.4884 1.1586

左からgmv, wmv, tbvという順番になっています。

これを、先程と同じようにしてCSVファイルに保存します。ファイル名をvolumes.csvとします。

csvwrite('volumes.csv',volumes)

このようにして、脳容積の情報を保存できます。

VBMでの全脳容積(Total Brain Volume; TBV)の求め方” へのコメント

  1. 失礼いたします。
    一つお伺いしたいことがあるのですが、この記事の手法で出した脳容積の数値は、ストレートに単位ccでいきなり出ているのでしょうか?
    voxel wiseかと最初思ったのですが、数値的には1000台前半に固まっており、ccだとちょうどヒトの脳容積程度でしっくりくる値になるので、疑問に思いました。

    • この get_totals.m のファイルの最初に以下のように記載されています。

      get_totals – Returns image totals (sum over all voxels), in ml

      単位はml, つまりccということになります。

  2. いつもお世話になっております。
    おかげさまで、TBVの計算できました。
    CSVファイルに保存するところがなぜかうまくいきません。
    >> csvwrite(‘total_brain_volume.csv’,tbv)
    >> csvwrite(‘volumes.csv’,volumes)
    のいずれも以下のようなエラーメッセージが出ました。

    エラー dlmwrite (line 130)
    ファイル volumes.csv を開けません
    エラー csvwrite (line 43)
    dlmwrite(filename, m, ‘,’, r, c);

    私のPC(SPM12, Windows7)の設定の問題なのでしょうか?Excelにコピペして使用しています。
    もし解決策をご存知でしたら、ご教示いただけますと幸いです。

    • 猪狩先生

      原因がわかりました。

      ウェブサイトの情報をコピペすると、コンマが変な形に変わってしまうんですね。

      なので、改めて、ご自身で直接

      csvwrite(‘total_brain_volume.csv’,tbv)

      とタイプしてみてもらっていいですか?

      これで問題が解決すると思います。

      • 根本先生

        直接入力するとうまくいきました。
        ありがとうございました!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください