「すぐできる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)
このようにして、脳容積の情報を保存できます。
失礼いたします。
一つお伺いしたいことがあるのですが、この記事の手法で出した脳容積の数値は、ストレートに単位ccでいきなり出ているのでしょうか?
voxel wiseかと最初思ったのですが、数値的には1000台前半に固まっており、ccだとちょうどヒトの脳容積程度でしっくりくる値になるので、疑問に思いました。
この get_totals.m のファイルの最初に以下のように記載されています。
get_totals – Returns image totals (sum over all voxels), in ml
単位はml, つまりccということになります。
確かに記載がありますね。
ありがとうございました。
いつもお世話になっております。
おかげさまで、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)
とタイプしてみてもらっていいですか?
これで問題が解決すると思います。
根本先生
直接入力するとうまくいきました。
ありがとうございました!