2014年5月発売の「すぐできるVBM 精神・神経疾患の脳画像解析 SPM12対応」のサポートページです。
いただいた質問への回答や補足をこちらに掲載していく予定です。
- SPM12でのもうひとつのRender
- AC-PC自動設定スクリプト(SPM12対応版)
- SPM12でestimateに失敗するとき (SPM12 r6906のバグ)
- Matlab R2016a日本語版では、SPM12を起動するときにエラーが出る
- SPM12から搭載された灰白質、白質、脳脊髄液容積算出機能
- SPM12から搭載された解剖学的名称の同定
- 【書評】
- 【書籍紹介】
- 2014年12月包括脳VBMチュートリアル配布資料(VBMの実践)
- SPM8とSPM12をよりスマートに同一のMatlabのライセンスで使用する方法
- SPM12におけるspm_defaults.mの設定 【重要】
- MRIConvertやdcm2niiの使用方法
- Flexible factorial designを用いたVBMの縦断解析
- SPMでの「1対多」の解析
- VBMでの全脳容積(Total Brain Volume; TBV)の求め方
SPM12で、これまでのRenderに加えて別の種類のレンダリングができるようになりました。その方法を解説してあります。
SPM12で使える、AC-PCの自動設定をするスクリプトです。シンプルな方法ですが、それなりによくあってくれます。
SPM12 r6906にはバグがあり、explicit maskを指定したときにmodel estimationができません。その対処法です。
MatlabR2016aでSPM12が起動しない時の対処法です。
SPM12からはsegmentation後の灰白質、白質、脳脊髄液容積の算出機能も搭載されました。それについて紹介します。
すぐできるVBMではとりあげなかったのですが(執筆時点では知らなかったのですが)、SPM12から解剖学的位置を同定するツールが標準で搭載されました。便利な機能ですので紹介します。
徳島大学放射線科の原田雅史教授が画像診断2014年12月号に本書の書評をご寄稿くださいました。御礼申し上げます。こちらから御覧いただけます。
Radfan2014年8月号にとりあげていただきました。こちらからご覧いただけます。
2014年12月13日に開催された包括脳MRI脳画像解析チュートリアルの配布資料です。このPDFは、「すぐできるVBM」の補足のような位置づけにあるので、すぐできるVBMを購入された方には役立つものと思います。
SPM8とSPM12を併存させるための方法をよりエレガントにしました。こちらの方法でいけば、スクリプト1つでSPM8とSPM12を自由に切り替えられます。
SPM12からspm_defaults.mの設定が変わりました。すぐできるVBMの執筆時点では、この変更はなされていなかったため、この記載はできていません。必ずご確認ください。
画像解析のためには、DICOM画像をNIFTI画像に変換する必要があります。そのための方法をまとめました。
すぐできるVBMでは縦断解析を取り上げることはしませんでした。本サイトにFlexible factorial designを用いた縦断解析の方法を掲載しました。
第6章でVSRADの紹介を松田先生がしてくださっています。非常に便利ですが、VSRADは基本的に病院に対して配布されているものなので、個人が自由に使うことはなかなかできません。SPMを用いて1対多の解析を行う方法を説明しています。
本書で紹介していなかった、全脳容積の求め方を説明しています。
根本先生
いつもお世話になっております。
いつも勉強させていただき、誠にありがとうございます。
基本的な質問で恐縮ですが、お伺いさせていただければ、ありがたいです。
たとえば、海馬といったROIを複数作成して、脳血流SPECTの各ROI毎のSBRを計測したいです。
そこで、2つ質問がございます。
① ROIの閾値はどのくらいの値にするものなのでしょうか。(SPMのImCalcを使ってROIを作成しようと考えておりまして、たとえば「i1.*i2>〇」の〇の数値を教えていただきたいです。)
② 以前、根本先生がK-Labのコメント欄で教えてくださっていたように、MRIを使ってSPECTを(segmentationせずに)標準化させていただきます。
その標準化されたSPECTをsmoothingするにはどうしたらよいのでしょうか。そのFWHMはどのような値にすればよいのでしょうか。
以上です。
ご多忙のところ大変恐縮ですが、お時間あるときに、ご指導いただければ、ありがたいです。
よろしくお願い申し上げます。
1. SBRでROIを作成したい場合、先行研究を参考に設定されるのではないかと思います。Golden ruleはないかと思います。
2. SPECTのsmoothingは、従来12mmが多いかなと思います。ただ、最近のSPECTは空間解像度が高くなっているので、もう少し低い値、8mmや10mmをトライしてみる価値もあるかもしれません。
以上、ご参考まで。
根本先生
いつもお世話になっております。
お返事ありがとうございました。
返事が遅くなってしまい申し訳ありません。
ご指導ありがとうございました。
大変勉強になりました。
今後ともご指導よろしくお願い申し上げます。
根本先生
いつもお世話になっております。
基本的なことで恐縮ですが、ROIについて教えていただきたいです。
たとえば、以前根本先生に教えていただいたように、labels_Neuromorphometrics.nii をROIに使う場合、MRIcronでDraw→Smooth VOIでFWHM10mm、閾値を0.5に設定して保存するとします。
その後、SPMのImCalcで、(セグメンテーションした灰白質)×(上記ROI)>0.2としてinclusive maskを作成するとします。
その場合、このinclusive maskの閾値は0.5×0.2となるのでしょうか。
それとも、0.2となるのでしょうか。
ご多忙のところ大変恐縮ですが、お時間あるときに、教えていただけると、ありがたいです。
よろしくお願い申し上げます。
「セグメンテーションした灰白質×ROIの値」 が 0.2 より大きいところが残ります。
なので、0.2 となりますね。
根本先生
いつもお世話になっております。
ご返信ありがとうございました。
また、ご指導いただいたことにも感謝いたします。
今後ともご指導よろしくお願い申し上げます。
根本先生
大学院でラットの脳を用いて基礎研究を行っている横山と申します。
先生の著書を片手に、勉強させていただいております。
ラットの脳を7TMRIで撮影したT1データを用いて、SPMでの解析を行いたいと思っています。
撮影したdicomデータをniftiiファイルへ変換し、segmentationからDARTELまでの流れを行っているのですが、綺麗に白質、灰白質などのsegmentが認識されません。
サイズが小さすぎるのかと、Mrtixのmrconvertでresizeしてみたのですが、SPMは認識されて
DARTELは走るのですが、各領域をカバーできていません。
標準空間に落とし込むためのデータとしては、waxholm space atlasのSDラットを用いています。
過去にはラットの脳でSPMをされている論文をちらほらあるのですが。
ご教授いただけますと幸いです。
よろしくお願いいたします。
横山先生
Waxholm Space Atlasに関しては、Tissue Probability Mapがありますか?つまり、Grey Matter, White Matter, CSFにわかれたものがありますか?
ご連絡いただきありがとうございます。
上手く返信できていなかったようで、遅くなり申し訳ございません。
元のatlasには、各領域ごとにラベルされたniftiiデータはございます。
不勉強で申し訳ないのですが、こちらであっていますでしょうか?
よろしくお願いいたします。
横山先生
そうなのですね。アトラスだけだと使えないです。灰白質、白質の確率データはなさそうでしょうか?
それがないとsegmentationがうまくいかないかと思います。
ちなみに、SPM以外にお使いの脳画像解析ソフトはありますか?
根本先生
ありがとうございます。
確率データがどのようなものかがよくわかっておらず、返信が遅くなりまして申し訳ございません。
調べてみたところ、T2*ではありますが、データはありそうです。
このデータが確率データだったとして、このデータに合わせてからsegmentationをしていく流れでしょうか?
DARTELの段階で標準空間に合わせるところで必要になるデータでしょうか。
また、他に使用しているソフトとしては、使いこなせておりませんが、FSLやMrtrixは使用できる環境は整っています。
よろしくお願いいたします。
返信が遅くなりました。
SPMでsegmentationを行うには、組織確率マップ tissue probability map (TPM)が必要となります。
このTPMには、SPM12では、灰白質、白質、CSF、軟部組織、頭蓋、脳の外部の確率信号が入っています。
MRIcroGLなどで、spm12/tpm の中にある TPM.nii をご覧ください。
spm8までは、GM, WM, CSFのみでした。この3種類があればなんとかなります。
ポイントは、この3つの画像が準備できるかにかかってきます。
まずは、TPM.niiの意義を理解していただくことから始めたいと思います。TPM.niiを確認してもらってよろしいですか?
根本先生
お忙しい中、お返事頂きありがとうございます。
MRIcroGLで、spm12/tpm の中にある TPM.niiを確認しました。
データ内に各組織毎の6種類のデータが含まれていることを確認しました。
私の持っているデータは全て TPMでないことを理解いたしました。
ということは、どこかからTPMのデータのアトラスを持ってこないといけないということでしょうか。
SPMでSegmetationを行うためにはおっしゃるとおりTPMの入手が必要です。
調べるといくつかありますね。
https://www.nitrc.org/projects/tpm_mouse
http://www.bmap.ucla.edu/portfolio/atlases/Mortimer_Space_Atlas/
根本先生
ご丁寧にありがとうございます。
自分の検体がratなのでratで探していたら、下記のようなものも見つかりました。
https://www.nitrc.org/projects/sigma_template
それぞれの領域のniiデータもあるのですが、先ほど教えて頂いたTPMデータのように1つのniiファイルにまとまっておらず、分割されています。
このような場合は、何らかの方法で1つにまとめる必要がありますか?
失礼しました。ratでしたね。
はい、それがあればできます。SPM12のold segmentationを使うとできます。
ひとつにまとめなくても大丈夫です。
根本先生
ありがとうございます。
SPM12のsegmentから、TPMの1〜6を先ほどのデータそれぞれに置き換えて走らせることはできました。
しかし、出てきたデータは綺麗にsegmentationがされていません。
元で使用するデータのサイズや、TPMデータのサイズ、voxel数の違いが影響しているのでしょうか?
その場合は、元データ、TPMデータ共にサイズ変更が必要でしょうか?
SPM12のold segmentを使ってください。
Batch Editorから、
Tools→Old segmentをご確認いただけませんか。
根本先生
ありがとうございます。
old segentを試みました。
先ほどに比べてsegmentationができるようになりました。
問題としては、頭尾側方向のデータが途切れてしまっている事と、脳周囲にノイズのようなデータが見られています。
その場合、Displayから、Originを設定してください。すぐできるVBMにOriginの設定について記載しているのでそれをご確認ください。
Originを適切に設定することで、問題が減ることが多々あります。
それでもダメな場合は教えてください。
根本先生
ありがとうございます。
先生に教えて頂いた方法で、試してみます。
また、ご連絡させていただきます。
根本先生
いつも勉強させていただいております。
匿名で失礼いたします。
大学院で画像研究をしております。
SPMを使って、SPECTの各ROIのカウントを行いたいのですが、できず、ご質問させていただきました。
根本先生のコメントを参考させていただき、SPMで、MRIとSPECTをcoregisterしてnormalizationはできました。
MRI上にROIの設定もできたと思います。
その上で、どうすれば、各ROIのSPECTのカウントをすればよいのかがわかりません。
ご多忙のところ、大変恐縮ですが、お時間あるときに、教えていただければ、ありがたいです。
よろしくお願い申し上げます。
SPECT画像が spect.nii, ROI画像が roi.nii だとすると、平均値は以下で求められます
こちらを試されてはいかがでしょうか?
根本先生
いつもお世話になっております。
お返事ありがとうございました。
返事が遅くなってしまい、申し訳ありません。
ご多忙のところ、ご親切に教えてくださり、誠に感謝いたします。
試させていただいたのですが、
次を使用中のエラー: spm_vol>spm_vol_hdr
という表示が出てしまうのと、
File “spect.nii” does not exist.
という表示が出てしまい、実行できません。
ご多忙のところ大変恐縮ですが、お時間あるときに、ご教示いただければ、大変ありあがたいです。
よろしくお願い申し上げます。
こうしていただけませんか
これで値が出ると思います
根本先生
いつもお世話になっております。
ご教示ありがとうございました。
値を出すことができました。
勉強させていただきました。
ありがとうございました。
今後ともご指導よろしくお願い申し上げます。
無事に出たようでよかったです。
根本先生
いつもお世話になっております。
何度も失礼いたします。
ご親切に教えていただき、normalizationしたSPECTをVOIでカウントはできるようになりました。ありがとうございます。
ただ、VOIとしてWMU Pickatlasを使っているのですが、そもそもそのVOIがSPM152といった標準脳の各部位と正確には一致していないことがわかりました。
たとえば、Caudateですと、VOIはCaudateをはみ出して側脳室の一部を含んでしまいます。
このような場合、どうすればよいのでしょうか。
ご多忙の折、大変恐縮ですが、お時間あるときに、教えていただければ、ありがたいです。
よろしくお願い申し上げます。
SPM12についているlabels_Neuromorphometrics.nii を使ってマスクを作成するのはいかがでしょうか。
英語ですが、以下に、その方法を説明していますのでご参考にしていただければ。
https://www.nemotos.net/?p=1083
根本先生
いつもお世話になっております。
お返事、また、ご教示誠にありがとうございました。
labels_Neuromorphometrics.nii について教えてくださり、ありがとうございます。
先述のVOIより優れたVOIと思いました。
ありがとうございました。
今後ともご指導よろしくお願い申し上げます。
根本先生
いつもお世話になっております。
ご教示ありがとうございました。
大変参考になりました。
ありがとうございました。
今後ともご指導よろしくお願い申し上げます。
根本先生
お世話になっております。大学院で脳画像の解析研究を行っているものです。
すぐできるVBMを参考にしながらT1画像のVBMを行っております。
第4章まではエラーなく進めました。またHPにあるやり方でTBVも求めることができました。
第5章のマスキングを行っていますが、設定どおりに選択しているつもりでも必ずエラーが出てしまいます。
05-Feb-2024 09:08:15 – Failed ‘Make Average’
エラー: mat2file
Problem writing data (could be a disk space or quota issue).
In file “C:\Users\kidokoro_win\Documents\matlab_software\spm12\@file_array\subsasgn.m” (v7147), function “subfun” at line 164.
In file “C:\Users\kidokoro_win\Documents\matlab_software\spm12\@file_array\subsasgn.m” (v7147), function “subsasgn” at line 85.
In file “C:\Users\kidokoro_win\Documents\matlab_software\spm12\spm_write_plane.m” (v6079), function “spm_write_plane” at line 31.
In file “C:\Users\kidokoro_win\Documents\matlab_software\spm12\spm_write_vol.m” (v5731), function “spm_write_vol” at line 84.
In file “C:\Users\kidokoro_win\Documents\matlab_software\spm12\spm_imcalc.m” (v6961), function “spm_imcalc” at line 220.
In file “C:\Users\kidokoro_win\Documents\matlab_software\spm12\toolbox\Masking\make_average.m” (???), function “make_average” at line 65.
No executable modules, but still unresolved dependencies or incomplete module inputs.
The following modules did not run:
Failed: Make Average
Skipped: Optimal Thresholding
Skipped: Check Registration
このようなエラーが毎回出るのですが、どこか設定に問題があるのでしょうか。
初歩的な質問で申し訳ありません。
ちなみに、toolboxは恐らく過去にVBMを行った人がマスキングツールをダウンロードしてくださっていたようで自分ではダウンロードしていませんが元々ツールボックスの中にあったのでそれを使用しました。
このエラーメッセージの最初に
Problem writing data (could be a disk space or quota issue).
とあります。
もしかしたらCドライブがいっぱいになっていませんか?
お忙しい中ありがとうございます。
保存先に設定していた自身のHDDがいっぱいだったようで、データをどかし容量を空けたら最後までいけました。
ありがとうございます。
無事に解決してよかったです。
初歩的なミスにも関わらずご対応いただきありがとうございました。
度々申し訳ありません。VBMですが、群間比較の群を変える場合は統計モデルの作成からのやり直しで良いでしょうか?それともテンプレート作成のところからやり直しでしょうか?
DARTELのテンプレートは、前処理に効いてくるところなので、統計のところを調整する場合には、テンプレートを変更する必要はありません。
ありがとうございます。
例えば100例あってそれを最初に50例50例で群間比較したとした、その次にそのうちの80例を使って群間比較する、といった場合も統計の設定のみその時の状況に合わせて行えば問題ないでしょうか?それとも母数が変わる場合にはその前からやり直しですか?説明がわかりにくく申し訳ありません。
はい、問題ないです。
お返事が遅くなり申し訳ありません。問題なくできました。ありがとうございます。
根本先生
いつも拝見させていただいております。お忙しいところ失礼致します。
脳画像解析をしている大学院生です。
先日PC購入をきっかけにMATLAB R2023bを使い始めまして、(それまでは2021aを使っており、この部分に問題はなかったのですが)群間比較のBasicModelsで、t-testの計画行列は出るのですが、Estimateをすると、以下のエラーが出てしまいます。
対処法をご教授いただけますでしょうか。
ご多忙中と存じますので、ご都合のいい時にご教授いただけますと幸いです。
どうぞよろしくお願いいたします。
Failed ‘Model estimation’
次を使用中のエラー: spm_unlink
spm_unlink.c not compiled – see Makefile
In file “/Users/spm/spm12/spm_unlink.m” (v1143), function “spm_unlink” at line 14.
In file “/Users/spm/spm12/spm_spm.m” (v7738), function “spm_spm” at line 380.
In file “/Users/spm/spm12/config/spm_run_fmri_est.m” (v7354), function “spm_run_fmri_est” at line 36.
The following modules did not run:
Failed: Model estimation
OSは何をお使いでしょうか?
macOS sonoma で Apple siliconでR2023b をお使いではないでしょうか?
その場合でしたら、手っ取り早い方法は、R2022bを使っていただくことです。
R2023bからMatlabがApple siliconに正式に対応したのですが、その分、SPMなどは新たなコンパイルファイルが必要になったために、開発版をインストールする必要があります。
ご多忙中お返事をいただきまして有難うございます。大事な情報が抜けておりまして失礼いたしました。先生のおっしゃる通り、macOS sonoma で Apple siliconでR2023bを使用しております。
承知しました。R2022bを使用した方が早いということですね。そちらの方でやってみたいと思います。本当に有難うございました。
根本先生
お世話になっております。岡山医療センターの竹内と申します。
先日はABiSでもいろいろ教えていただきありがとうございました。
新生児MRIのVBMを行っており最終的な標準脳画像上への
結果表示のところでわからないことがあったのでご教授いただけましたら幸いです。
書籍ではSPM12フォルダのavg305T1.niiを選択することになっていますが、
元が新生児の画像であってもそのまま成人の標準脳を使用しても良いでしょうか?
解析の段階でNMI空間への標準化をしているので、成人の標準脳に表示しても
良いのかなと思っているのですがその認識で正しいでしょうか?
また使用するアトラスもtoolboxにある標準のもので良いでしょうか?
もしくは新生児用の標準画像をつくって、新生児用のアトラスを探してくるべきでしょうか?
よろしくお願いいたします。
竹内先生
ご質問ありがとうございます。
はい、子供であっても、標準化しているならば、MNI空間で大丈夫です。
ただ、想像されているように、子供の脳を大人に標準化するのは無理があります。
そのために、子供用のテンプレートがいくつか発表されています。
ただ、そういうものを使っても、最終的には標準脳に合わせることで、MNI座標で報告できるようになりますので、
結論としては標準脳で表示ということになりますでしょうか。
ありがとうございます。表示のことについてよく理解できました。
ここで先生が書かれている子供用のテンプレートというのはDARTELで使用するテンプレートのことでしょうか?(竹内)
はい、そうです。
お世話になっております.CiNetの西山と申します.
以下のリンクを参照にSPM12をインストールしたのですが,「Installation done」が表示されず,コンパイルエラーが出てきております.
https://www.nemotos.net/?p=4490
使用PCはMacBookPro_M3で,MATLABは2023bです.
お手数をおかけしますが,ご教示いただけますと幸いです.
以下エラーメッセージです.
次を使用中のエラー: spm_check_installation>check_basic
SPM uses a number of MEX files, which are compiled functions.
These need to be compiled for the various platforms on which SPM
is run. It seems that the compiled files for your computer platform
are missing or not compatible. See
https://en.wikibooks.org/wiki/SPM/Installation_on_64bit_Mac_OS_(Intel)
for information about how to compile MEX files for MACA64
in MATLAB 23.2.0.2428915 (R2023b) Update 4.
エラー: spm_check_installation (行 28)
check_basic;
エラー: spm (行 317)
spm_check_installation(‘basic’);
西山先生
Matlab R2023b から、Apple Silicon nativeで動くようになった影響で、MEXファイルがApple Silicon用のものが必要になります。
SPMをgithubから入手していただくことで使えるようになります。
現在ダウンロードしていただいたSPMを一度削除していただき、
ターミナルでダウンロードしたいディレクトリに移動したあとで以下を実行してください
これでできた spm ディレクトリをMatlab R2023bのパスに追加していただき、SPMを実行してもらえればと思います。
その結果を教えていただけますか。
よろしくお願いします。
kiyotaka 様
アドバイスありがとうございます.
ご教示いただいた手順で無事SPMをインストールできました.
ただ,これまで使用していたBatchファイルや,Toolboxのwfu_pick_attlasが使用できません.
重ねて申し訳ありませんが,こちらに関しても何か対処法はございますか?
根本先生
回答が重複していたら申し訳ございません.
ご回答いただき,ありがとうございます.
ご教示いただいた方法にてSPM12のインストールができました.
しかし,DisplayやBatchなどの機能が使用できず,エラーが出ております.
こちらに関しても何か対策はございますか?
現在は応急的な対応として,2022aをインストールし,SPMを使用できております.
お手数をおかけしますがご確認のほど,よろしくお願いします.
そうなのですね。それならばこちらを試していただけますか。
先程のものは SPMのdevelopment versionでした。
SPM12のmaintenance versionで、Apple Siliconのmexファイルが入っているものを以下で入手できます。
(先程のdevelopment versionは消してもらって大丈夫です)
こちらをパスに登録してSPMを起動してみていただけませんか?
根本先生
再度インストールしたところ,正常に起動できました.
ご教示いただき,ありがとうございました.
しかし,ToolBoxに入れたWFU_Pick_Atllasが認識されません.
これはWFUがまだSilicone_verに未対応である,という認識でよろしいでしょうか?
はい、その可能性が高いかなと思います。
根本先生
承知いたしました.
この度はご教示いただき,まことにありがとうございました.
根本 清隆 先生
私は、砂川市立病院で放射線技師をしております藤井と申します
すぐできるVBMを参考にさせていただいて
加齢によるMRIの灰白質の萎縮の評価と
加齢によるSPECTの血流の評価をしようと思っています
そこで、大変基礎的な質問で恐縮なのですがSPECT画像のSPM12における解析方法について教えていただきたく、コメントさせていただきました
SPECTの再構成画像をDICOMよりNlfTl-1形式に変換後
Normalize Estimate & Write
Smooth
Masking
上記3つを前処理として行い統計解析を行おうと思っています
そこでまず質問させていただきたいのが、SPECT画像ではDARTELとモジュレーションは不要でよろしいでしょうか
また、Maskingを行おうと思いMaskingツールボックスを使用してみたのですが
そのままの設定では脳室の描出が平均画像を比べると不十分な結果でした
設定の変更または異なるツールの使用が必要と感じたのですが、先生が行っている方法をご教授いただけないでしょうか
Normalize Estimate & Writeの処理では
Image to Align と Image to write に同じSPECT画像を入力し
以下の2点のみ初期設定より変更
Affine Regularisation @East Asian brains
Smoothness 5mm
Smooth処理ではeZISと同様のスムージングになるように
FWHM (12 12 12)
のみ初期設定より変更をし、実行しようと考えています
この設定で間違いないでしょうか
長文となってしまい申し訳ございません
お忙しいところ恐縮ですがご教授いただければ幸いです
よろしくお願いいたします
藤井さん
ご質問に対しては、SPM12の左上のメニューウィンドウから、”Batch” をクリックし、Batch Editorを起動し、そこから、メニューのSPM -> Tools -> Old Normalise: Estimate & Write を選択してください。
そうすると、SPM8までのNormalizeの画面になります。SPECTで標準化したい場合はこちらが適切です。TemplateはeZISのTenplateを流用できます。
まずはこちらを試してみていただけませんか?今から会議が始まってしまうので、とりいそぎ、ここまでの返信をしておきますが、もし設定がわからないことがあったら遠慮なくお聞きください。後ほど回答します。
根本先生
会議前のお忙しい中ご返答ありがとうございます
また、こちらからの返事が遅れてしまい誠に申し訳ございません
SPM8での解析方法を教えていただきありがとうございます
SPM8での解析はしたことがあるので大丈夫だと思います
一つ質問をさせてください
SPECTの標準化をSPM12で行わないほうが良いのは
unified segmentation 法だと標準化 等がうまくできないためでしょうか
それともパラメータが定まっていないからでしょうか
unified segmentation 法がよく理解できず、MRIではこちらの方が結果が向上しているという文献を見たことより行おうと思ったのですが、unified segmentation 法だと灰白質や白質が分離できるMRI・PETのような解像度の高いものが対象なのでしょうか
返信が遅くなってすみません。
SPM12になってから、標準化は、基本、Segmentationを行ってからするようになったんですね。
つまり、SPM8までのSegment + Normalize が、SPM12のNormalizeになったわけです。
SPECTをSegmentationすることの意義が大きくないため、(ときにうまくいかないこともままあります)
SPECT単体ではSPM12のNormalizeはおすすめはしないというのが私なりの結論です。
一番いいのは、3次元T1強調画像を一緒に撮像している場合
– 3次元T1強調画像を、AC-PCに位置合わせ
– SPECTを3DT1と位置合わせ
– 3DT1をNormalize
– そのパラメータを使ってSPECTをNormalize
かと思います。
あと、DARTELは元画像が高解像度でないと意味がないんですね。なので、SPECT単体ではDARTELは不要です。T1をDARTELを行い、その結果をSPECTにあわせるのならばありだと思います。
根本先生
お返事をせかすような形になってしまい誠に申し訳ございませんでした
SPECT単体でのSPM12でのNormalizeを先生がお勧めしない理由がわかりました
ご丁寧に説明いただきありがとうございます
3DT1のMRI画像を撮影しているのでMRI画像を用いてSPECTをNormalizeする方法を行いたいと思います
そこで3点ほどご教授いただきたいのですが
(1)自動位置合わせで使用する acpc_coreg はMATLABruntimeで使用することは可能でしょうか
(2)MRI画像をReferenceにCoregister(Est & Res)を実行する際に設定に変更が必要でしょうか
(3)MRI画像およびSPECT画像のNormalize方法
先生の著書のようにSegment→DARTEL→標準化と実行するのではなくNormalize Estimate & Writeを実行となるのでしょうか
・上記で得られたパラメータはどんなファイルとなっており、SPECTのNormalize Estimate & Write を実行する際にはどこに入力することになるでしょうか
お忙しい中基礎的な質問ばかりで大変申し訳ございません
藤井さん
acpc_coreg は、Matlabがないとだめですね。
ただ、ほぼ同じ機能を、以下でできます。
Coregister: Estimate
Reference Image: spm12/toolbox/DARTEL/icbm152.nii
SOurce Image: T1画像
これで、ac-pcがだいたいあいます。
そのうえで、以下のことを行っていきます。
Coregister: Estimate
Reference Image: AC-PCをあわせたT1画像
Source Image: SPECT画像
これで、MRIとSPECTの位置合わせがなされます。
Normalise: Estimate & Write
Data
Subject
Image to Align: T1画像
Images to Write: T1画像、SPECT画像
Estimation Options
(ここはデフォルトのままで大丈夫です)
Writing Options
Voxel sizes: ここはご自身の必要なボクセルにしてください
これで実行すると、T1を標準化したうえでSPECTも標準化できます。
お試しいただければ。
根本先生
ありがとうございます
おかげさまでNormalizeすることができました
3つほど質問をさせてください
① Estimation Options の Smoothness ですがデフォルトのままで大丈夫と記載がありましたが、先生の著書のSegmentの処理の中に記載のあった5mmにする必要はあるでしょうか(SPECTは5mm程度のマトリクスサイズです)
MRIをNormalizeした結果をSPECTに反映させるので0mmのままでよろしいということでしょうか
② SPECTをSPMで統計解析をする際、全脳平均の80%以上領域で評価しているのでMaskingをしなくてもそれほど影響しないと聞いたことがあるのですが、先生はMaskingされていますでしょうか
されていれば、Maskingの方法を教えていただくことはできますでしょうか
③ MRIの灰白質の萎縮を評価する際は、今回の標準化されたT1ではなく、先生の著書のようにSegmentから行い、改めて標準化をした別ファイルで統計解析をするでよろしいでしょうか
藤井さん
Estimate Optionsは、あくまでもMRIのEstimateなので、デフォルトのままで大丈夫です。
Maskingしています。そうしないと結構脳の外の領域が残ってしまうので。
relative 0.8 でいけます。私はSPECTのSPMの際にはいつもこれを使っていて問題になったことはないです。
そうですね。最近は、DARTELを行うのは最低限必要なので、別にしていただく必要があるかなと思います。
ご参考まで。
根本先生
ご回答ありがとうございます
先生のおかげで統計解析をすることができます
この度は、お忙しい中多数の質問に答えていただき、大変ありがとうございました
大変勉強になりました
根本先生
いつもお世話になっております。
藤井先生との質疑に割り込む形になってしまい申し訳ありません。
「T1をDARTELを行い、その結果をSPECTにあわせる」方法で解析したいと思っております。
その場合、下記のやり方でよろしかったでしょうか。
「Coregister: Estimate
Reference Image: spm12/toolbox/DARTEL/icbm152.nii
SOurce Image: T1画像
これで、ac-pcがだいたいあいます。
そのうえで、以下のことを行っていきます。
Coregister: Estimate
Reference Image: AC-PCをあわせたT1画像
Source Image: SPECT画像
これで、MRIとSPECTの位置合わせがなされます。」
その後、MRIをsegmentation→DARTEL→Normalize to MNI space。
以上のやり方でよければですが、次に、この結果をSPECTにあわせる方法を教えていただければ、ありがたいです。
「Normalise: Estimate & Write
Data
Subject
Image to Align: T1画像
Images to Write: T1画像、SPECT画像
Estimation Options
(ここはデフォルトのままで大丈夫です)
Writing Options
Voxel sizes: ここはご自身の必要なボクセルにしてください
これで実行すると、T1を標準化したうえでSPECTも標準化できます。」
上記の「TI画像」の代わりに「DARTEL→Normalize to MNI space」された画像を入れるということでしょうか。
具体的には
Normalise: Estimate & Write
Data
Subject
Image to Align: rc1、rc2
Images to Write: rc1、rc2、SPECT画像
ということでしょうか。
基礎的なことがわかっておらず大変恐縮ですが、お時間あるときに、ご教示いただければ、ありがたいです。
よろしくお願い申し上げます。
DARTEL経由の場合は変わります。
Batch Editorから、
SPM -> Tools -> Dartel tools -> Normalise to MNI Space を選択してください。
(その前のDARTELのプロセスは終わっているとします)
Dartel Template: 前のプロセスで選んでいる Template_6.nii を選択します
Select according to… Few Subjects を選びます。(そんなに多くないと仮定して)
New: Subject をクリックします。
Flow Field: u_rc1からはじまる nifti ファイルを選択します。
Images: ここで c1 と SPECTファイルを指定します。
Gaussian FWHM: SPECTは 12mm にすることが多いので 12 12 12 に変更します。
こうすると、DARTELの情報を使ってSPECTの標準化を行えます。
根本先生
ご多忙の中、ご指導いただき、誠にありがとうございます。
DARTELの情報を使ってSPECTの標準化を行えました。
ありがとうございました。
よかったです。
コメントが重複していたら大変申し訳ございません
根本先生
お忙しい中ご返答ありがとうございました
また、返答が遅れてしまい誠に申し訳ございません
SPM12でのSPECTの解析方法のご教授ありがとうございました
SPM8での解析をしたことがあるので、解析できると思います
一つ質問させていただきたいのですが、SPM12でNormalizeを行わないのは、何か理由があるのでしょうか
unified segmentation 法でSPECTをNormalizeする欠点等ありましたが教えていただけると幸いです
根本先生
「すぐできるVBM」を参考に卒業論文を進めております。齊藤と申します。
先生の著書を片手に局所灰白質容積の算出は行うことができたのですが、白質の局所容積を算出することは可能でしょうか?
MRIcronでmask画像を作成しようとしましたがうまくいかず、お忙しいところ大変恐縮ですが、白質局所容積の算出についてご教授いただけますと幸いです。
何卒よろしくお願いいたします。
齊藤さん
はい、問題なくできます。
白質の関心領域のアトラスは何を使いたいでしょうか?
根本先生
ご連絡遅くなり申し訳ありません。
アトラスはJHU-Whitematter-labelsを使用して脳梁の容積を検討しようと考えておりました。
アトラスを重ねると症例画像とややずれているように思われました。研究用に撮像し標準化した画像のボクセルサイズは1.5×1.5×1.5であり、このサイズの違いによるものでしょうか。
もしそうであればJHU-Whitematter-labelsをSPMなどでリスライスして使用してもよいのでしょうか。
ご多忙のところ大変恐縮ですが、ご教授のほどよろしくお願いいたします。
MRIcronについている JHU-Whitematter-labels を使おうと考えているわけですね。
白質画像もDARTELで標準化したものを使うことを考えていらっしゃいますか?
DARTELで標準化している場合、MNIとちょっとずれることがあるので、その点で、少し工夫が必要になるかなと思います。
たぶん個別対応した方がいいかなと思うので、直接メールしていただけたらと思います。kiyotaka_at_nemotos.netです。_at_ を @ に変えてください。
根本先生
おっしゃるように白質画像もDARTELで標準化したものを使用しておりました。
後ほどメールさせていただきます。
何卒よろしくお願いいたします。
庵本さん
これは、他の先生方と同じ意見です。正直、脳梗塞や脳出血の範囲によって変わるんですね。なので、私はまずは試してみます。それでダメならば、マスクを使うことを考えます。
SPM12はかなり病変に強いという印象を受けています。Segmentationをしてみて、CheckRegでオリジナルのT1と灰白質画像を比較されたらよいのではないかと思います。
可能です。ぜひ試してみていただけたらと思います。
CAT12は expert mode にすることで、Stroke Lesion Correctionということができます。そちらをご覧になってはいかがでしょうか。
https://neuro-jena.github.io/cat12-help/
脳梗塞や脳出血のSegmentationは試行錯誤しなければいけないことが普通です。MRI画像は何度も試せますので、どうぞいろいろな方法を試してみて、ご自身にフィットする方法を探していただけたらと思います。
根本先生
ご丁寧にお返事くださいまして、ありがとうございます。
またお返事遅くなり、申し訳ございません。
ご教示くださった方法もいくつか確認させていただき、無事に一通り処理を行うことができました。
病変処理を行うと、少しだけ異なる結果となりました。
病変処理だけで、多くの方法があることを改めて学ぶ機会となり、少しずつ他の解析についても試行錯誤しながら行っていきたいと思います。
重ね重ねお礼申し上げます。
引き続き、よろしくお願いいたします。
無事に解析できたようでよかったです。
試行錯誤がどうしても必要な領域なので、最適な方法が見つかったらいいですね!
根本先生
はじめまして。
名古屋大学の大学院で脳画像の研究をしています、庵本と申します。
成書(すぐできるVBM)を片手に解析をさせていただいており、いつもお世話になっております。
現在、脳卒中患者様の脳画像を使用してVBMを行っており、その中で様々な先生方から「病変マスク」を行うか否かについて色々な意見をお聞きして、悩ましく思っています。
そこで、病変マスクの作成についてご質問をさせてください。
・先生はVBMを行ううえで、病変はマスクする必要があると思われますか(大雑把な質問で申し訳ございません)?脳の構造画像をFSLで処理した論文等見ていると、病変マスクをするかしないかで結果が変わらないなどの報告も見たことがありますが、実際のところどうなのでしょうか?
・病変マスクについて、SPM clinical toolboxを使って行おうと思うのですが、その中でT1画像のみ(lesion mapsなし)で処理を行うことは可能でしょうか(手持ちの画像としては、B0画像、FA画像、3DT1画像のみがございます)?
・もしその他の方法で病変マスクを作成する良い方法などございましたら、ご教示いただけますと幸いです。
初歩的な質問かもしれませんが、ご教示いただけますと幸いです。
何卒よろしくお願い申し上げます。
根本先生
突然失礼いたします。
「すぐにできるVBM」を拝見しながら脳画像解析を始めたばかりの大学院生です。
いつもご著書にはお世話になっております。
一点質問があります。
SPM12のセグメンテーション機能で元のT1MR画像を灰白質、白質、脳脊髄液などにセグメンテーションできると思います。
そのセグメンテーションの設定の時にdeformation fieldsの有無を選択する項目があると思います。
こちらで得られるForward deformation fieldsは元のMRI画像をMNI空間に標準化する際のもの(各ボクセルが元のMRIからMNI空間への移動ベクトルを持っている)という認識で間違いないでしょうか?
お時間のある時に返信よろしくお願い致します。
はい、その通りです。ここでDeformation fieldsのForwardを出力しておけば、NormalizeでForward deformation fieldsを指定することにより、元のMRI画像をMNI空間に標準化することができます。
迅速な回答ありがとうございます。
もう1点質問なんですが、MRI画像をMNI空間に標準化する際にdeformation fieldsは各ボクセルの移動ベクトルを表すので、元画像とdeformation fieldsで得られる配列の大きさ(3次元)は同じだと思います。しかし実際セグメンテーションで得られたdeformation fieldsは元のMRIと比較して配列の大きさが異なっていました。
この理由についてはご存知でしょうか?
重ね重ね質問失礼いたします。
ひとつ修正させてください。
「deformation fieldsは各ボクセルの移動ベクトルを表す」は間違いで、「deformation fieldsは、各ボクセルの移動元の座標を表す」なんです。
「セグメンテーションで得られたdeformation fieldsは元のMRIと比較して配列の大きさが異なっていた」理由は、deformation field は、移動先の画像の次元に一致しているからです。
たとえば、元画像の次元が [192 256 256] だとします。
SPMでsegmentationの時に使用される TPM.nii の次元は、[121 145 121] となります。
その際、deformation fieldは、forwardの場合、つまり、y_元画像のファイル名.nii は、次元は [121 145 121] となります。
Deformation fieldは元画像にそのままかけあわせるために用いられているのではなく、Deformation field画像そのものに、forward であれば、MNIのどの座標に、元画像の座標が対応するのかが記載されているということになります。
以下が、SPMのマニュアルに記載されているDeformation fieldsの説明です。
ちなみに、Deformation fieldは5次元画像になっていて、5次元目に、元座標の座標が3つおさめられています。
たとえば、
MNI画像での[30 -18 18] のボクセルの5次元目に、
[32 -8.25 4.8]
という情報がおさめられていて、元画像の [32 -8.25 4.8] にあったボクセルが、[30 -18 18] に 移動したのだということがわかります。
ただ、この情報は、私の知る限り SPM ではすんなり取り出せなくて、MRtrix3についている mrview などで確認できる程度です。
こんな感じで説明になりますでしょうか?
丁寧にありがとうございます。
先生の説明によると、逆も同様に考えると、”inverse”のdeformation fields場合は
元画像の次元が [192 256 256] だとすると、iy_元画像のファイル名.nii は、次元は [192 256 256] となり、
Deformation field画像そのものに、元画像の座標がMNI座標(121 145 121)のどこに対応するのかが記載されているという理解で間違いないでしょうか?
またpythonなどで、iy_元画像のファイル名.niiを5次元配列(deformationとする)などで読み込み、
deformation[20, 20, 20, 0, :]
などとし表示される値は上記と同様に元画像の座標[20, 20, 20]からMNI空間に移動した時のMNI座標を表すと言うことでしょうか?
度々初歩的な質問申し訳ございません。
全く初歩的な質問ではないです…。
→そのとおりです。
→座標[20,20,20]ではなく、ボクセル[20,20,20]になります。ボクセルがRAS座標系の場合、L→R、P→A、I→Sの方向に正となりますので、[20,20,20]は、左端、後端、下端を0とした時に、右に20、前に20、上に20進んだボクセルということになります。
根本先生
東北大学心療内科院生の佐久間と申します。
ご著書を拝読し、脳画像解析に挑戦しようとしている初学者です。
素晴しい教科書をありがとうございます。
基本的すぎる質問かと思い、お恥ずかしいのですが、質問させていただきます。
付録のサンプルを用いた処理の部分ですが、最後の「4.4バッチ処理」のところの、「DARTEL取り込み画像の依存関係の設定」で、「Dependency」を押すと出てくるウィンドウの選択肢の中に「Segment: rc1 images」「Segment: rc2 images」が出てこず、選択できません。
出てくるのは
「Segment: c1 images」
「Segment: c2 images」
「Segment: c3 images」
「Segment: c4 images」
「Segment: c5 images」
です。
これまでのところはなんとかうまくいっていたと思うのですが、どこか間違っていたのでしょうか。
ご多用中大変恐縮ですが、ご教授いただければ幸いです。
よろしくお願い申し上げます。
佐久間先生
おそらく、これは、Segmentationの設定で、Native Tissueのところが”Native”のみになっているからだと思います。
ここを、c1とc2に関しては、”Native + Dartel Imported” に変更していただけませんか。
それで問題が解決するかと思います。
このようにしてどうなったか教えていただけたらと思います。よろしくお願いします。
根本先生
日曜日にもかかわらず、迅速なご回答をいただき、ありがとうございました。
変更して、またご報告させていただきます。
重ね重ねありがとうございます。
根本先生
平素より大変お世話になり、ありがとうございます。
昨日仰せの通りに、segmentationのところから全部やり直してみましたが、同じでした。
ちなみに、windowsは11、MATLABはR2022b、SPM12で、Cドライブの容量が少ないので、SPMはCドライブの直下に、MATLABはDドライブに入れましたが、関係はありますでしょうか。
(素人なもので頓珍漢な質問でしたら申し訳ありません)
ご多用中大変恐れ入りますが、ご教授いただければ幸いです。
よろしくお願い申し上げます。
佐久間先生
– PCの環境は特に問題ないと思います。
– よろしければ、私のメールアドレス kiyotaka_at_nemotos.net に、バッチを保存して、そのファイル (matファイル)をお送りいただけますか。確認させていただきたいと思います。画像などを送るわけではないので、個人情報はバッチファイルには入っていないので安心して送ってもらって大丈夫です。
名古屋で臨床にてリハ職をしているものです(匿名で失礼いたします)。
いつも先生の成書を片手に脳画像解析をさせていただいており、大変お世話になっております。
解析を進めている最中で、結果の解釈にて分からない点がありましたので、ご質問させていただきました。
現在、リハビリテーション介入前後で身体機能評価と脳画像撮像を行い、機能評価の変化量と脳の形態変化の関連性を確認しています。
脳画像に関しては、対称パーセント変化画像(SPC画像)を作成し、身体機能評価との変化量との間で相関解析を行いました。
結果の1例として、Expected voxels per cluster=80.9で、最もkEが大きいもので266(cluster-levelにおいては、pFWE-corr=0.918, qFDR-corr=0.937, puncorr=0.069、peak-levelにおいては、pFWE-corr=1.000, qFDR-corr=0.979, puncorr=0.001)でした。
この点から、clusterとしての広がりを見ると、有意差はないが、かなり狭い領域での有意差があるとみて良いものなのでしょうか?
もしくは、そもそも多重比較での有意差がないため、有意とは言えないものなのでしょうか?
初歩的な質問かもしれず申し訳ございませんが、周囲に質問できる方がいないので、ご助言いただけますと幸いです。
何卒、よろしくお願いいたします。
介入前後の3D-T1画像を使って、SPCを作成されて、その統計解析をされているということですね。
SPCを使うことはいいと思いますが、SPC画像の作成の際にはかなり気をつける必要があります。
## 前処理
– 介入前後の脳がぴたっとあうように位置合わせをすることがとても大事です。
– リハビリテーションが介入になる原因が何かにもよりますが、もし、脳梗塞などがあった場合、脳梗塞をマスクして標準化を行う必要があります。
## 統計解析
– 統計解析が一番気をつけなくてはいけないところかもしれません。どのようなDesign matrixにされましたか?
– SPCであるならば、Global calculationはOmitです。Normalizationもなしとなります。
SPCで有意差が出るというのは、介入期間がどの程度かにもよると思いますが、かなりすごいことです。
上に述べた私が気になったことに加えて、ご質問に対する回答として、
→これは、まず、peak-level threshold をいくつに設定しましたか?ということを確認させてください。
Expected voxels per clusterは、「この大きさをこえていたら、ノイズでない可能性が高いよ(多重比較補正は考慮していないけど)」という意味になります。
で、今の値からすると、cluster-levelについてはいずれの値も0.05以上ですので、このクラスターの大きさは統計学的に有意に大きいとは言えないよという意味になります。
ただ、その領域の peak-level は、多重比較補正なしのp値が0.001 となっておりますので、変化があった可能性を示していますね。
リハビリテーションはおそらく、脳のある領域がよくなることを期待してされていると思います。
そのような観点において、全脳で多重比較補正をするのは保守的だと思います。
こういう場合、事前仮説を立てることが大事になると思います。
「どの領域がよくなる」という仮説を持たれていますか?
それならば、その領域に絞って統計を行うことが大事になります。
また、リハビリの領域では障害を受ける部位が個々人によって違うために多様性が相当変わりますよね。
それならば、あまり標準化にこだわりすぎないということも大事かもしれません。
根本先生
早速のお返事、誠にありがとうございます。
私では全く気付かなかった部分へのご指摘ありがとうございます。
以下にご教示いただきました内容へのご回答と加えてのご質問を失礼いたします。
## 前処理
– 介入前後の脳がぴたっとあうように位置合わせをすることがとても大事です。
⇒こちらはDARTELでの位置合わせを行うという解釈でしょうか?
– リハビリテーションが介入になる原因が何かにもよりますが、もし、脳梗塞などがあった場合、脳梗塞をマスクして標準化を行う必要があります。
⇒今回の対象の方は脳梗塞後にリハビリテーションが必要となった方々です(発症から3ヵ月以内で、6週間の介入前後で撮像しました)。今回解析したときには脳梗塞をマスクして解析をかけていないので、マスクする必要性があるのですね。SPMで可能だと聞いたことがありますが、可能でしょうか?また、どの処理段階でマスクするのが適切でしょうか(分割化前でしょうか…)?
## 統計解析
– 統計解析が一番気をつけなくてはいけないところかもしれません。どのようなDesign matrixにされましたか?
⇒ Design matrixは
<統計デザイン>
Multiple regression(ScansにはSPC画像を挿入、Covariatesには今回は何もいれておりません、InterceptはデフォルトのInclude Intercept)
<Masking>
Threshold maskingは「None」とし、Implicit Maskは「Yes」、Explicit Maskには当院で作成したマスク画像を挿入
*ちなみに、当院で作成したマスク画像は「今回の対象者のリハビリテーション前の画像(n=18)とリハビリテーション後の画像(n=18)、患者と年齢をマッチングさせた健常者(n=30)の計66例」の画像からマスクを作成しております。患者様のデータは左右反転させて病巣側は揃えてあります。そもそもこのマスク画像を使うこと自体が間違っていますでしょうか?
<Global calculation>
ここでは、SPC画像から算出したTBVの値を挿入いたしました(しかし、根本先生からのご指摘でOmitであることがわかりましたので、変更いたします)。
<Global normalisation>
Overall grand mean scalingは「No」、Normalisationは「ANCOVA」を指定してしまっていたので、先生のご教示のように「None」で指定いたします。
*その他の設定で変更した方がよい項目があれば、ご指摘いただけますと幸いです。
ーこれは、まず、peak-level threshold をいくつに設定しましたか?ということを確認させてください。
⇒ こちらは結果表示の際の設定でよかったでしょうか?ここは「apply masking:none、p value adjustment to control:none、threshold:0.005、extent threshold:81」で設定いたしました。
全脳で多重比較補正をするのは保守的だと思います。こういう場合、事前仮説を立てることが大事になると思います。「どの領域がよくなる」という仮説を持たれていますか?
⇒ 先行研究では、一次運動野や補足運動野、海馬、帯状回といった部位の変化が可能性として示されています。ただし、今回は全脳解析的に、機能回復に伴ってどの領域に変化が生じていた可能性があったかということを調査したかった部分もありました。しかし、その場合は全脳で多重比較補正する必要があるということになるのでしょうか?また、事前仮説に基づいて、部分的に多重比較補正も可能なのでしょうか?
先生が仰られますように、リハビリの領域では障害を受ける部位が個々人によって違うために難しく感じております。標準化にこだわりすぎず、1つの結果(新たな仮説形成くらいの気持ち)として、提示する程度に考えていたほうがいいものでしょうか。。。
また、新たにたくさんご質問して申し訳ございません。
ご多忙かと思いますが、ご指導いただけますと幸いです。
何卒、よろしくお願いいたします。
→いえ、DARTELではなく、前処理でです。一番簡単な方法は、2つの画像を位置合わせしてからはじめるからでいいかもしれません。その方が次のマスクも同じものが使えますし。
参考として、私が昔に書いた原稿がネットで入手できますのでリンクを示します。
https://www.jstage.jst.go.jp/article/mit/33/1/33_19/_pdf
→可能です。おっしゃるようにSegmentation前に指定します。
→この場合の帰無仮説は、「SPC=0である」ですね。それならば、One sample t-test を選ぶのが適切かと思います。
→ここのマスクは、統計にかける領域を定めるためのものなのでその目的を達成するマスクならいいと思います。
→まずはこれでいいと思います。
extent threshold 81 は、 expected voxels per clusterですね。threshold は 0.005 は英語論文にするとしたら甘いと言われるかと思います。
探索的に行くのであれば、全脳での多重比較補正が必要になります。事前仮説に基づいて複数の領域を指定して多重比較補正をするのもありです。
→私自身、様々な介入研究に関わっていますが、灰白質の変化を短期間でとらえるのは非常に難しいと感じています。今回は6週間ですよね。それならばなおさらです。何を目的にするかによりますが、プレリミナリーならばゆるめに検討していってもいいかなと思います。
根本先生
新たに多くのご教示をいただきまして、ありがとうございます。
また参考資料まで添付いただき、ありがとうございます。
以下の流れで解析を行おうと思います。
・2つの画像の位置合わせし、その後、病変部位をSegmentation前にマスクしてその後の解析を行うようにいたします(その際にはthresholdを0.001に設定し、全脳で多重比較補正を行ってみます)。
重ね重ね申し訳ございませんが、もう1点だけご質問させてください。
・Designのところですが、今回は臨床での機能変化と脳形態変化の相関関係をみるという目的なのですが、「Multiple regression」ではなく、「one-sample t-test」になりますでしょうか?
⇒帰無仮説としてSPC=0ということで、介入前後比較?なのかなと無知ながら思ってしまっております…
ご多忙のところ恐縮ですが、またお時間があるときにご返信いただけますと幸いです。
よろしくお願いいたします。
臨床での機能変化と脳形態変化の相関をみるのならば、multiple regressionで大丈夫です。
covariateがないと読んだ気がしたのでそう書いてしまいました。
根本先生
covariatesはリハビリテーション評価の変化量を入れておりました。こちらの記載ミスで申し訳ございません。
お忙しい中、たくさんご教示いただきまして、本当にありがとうございました。
色々と試行錯誤しながら、進めてみます。
根本清貴先生
すぐできるVBM 精神・神経疾患の脳画像解析を拝読し、VBM解析を行っているものです。お忙しいところ失礼致します。
現在、患者様のMRI画像を基に運動療法前後の変化を捉えるため縦断解析を実施したいと考えております。Flexible factorial modelを使用し解析を試みましたが統計的推定でエラーが表示されてしまいます。
【Flexible factorial modelの設定】
・被験者は10名程度
・それぞれ運動療法前、運動療法後の2回MRIを撮影
・Design matrixは以下のように設定
subject:independenceはno, varianceはequalで設定。
time:independenceはno, varianceはequalで設定
・Specify Subjects or all Scans & Factorsでsubjectを選択しSubjectsに、Subject 1のtime 1, 2を選択(運動前後の画像を選択)
・conditionで1.2と設定
・Main effectsで1,2と指定
・CovariatesはすぐできるVBMの書籍を参照としAge、Genderで設定
・MaskingはVBMマニュアルを参照とし Threshold Maskingを0.1、 Threshold Maskingをyes、 Explicit Maskをnoneで設定しています。
・ Global Normalizationは Overall grand mean scalingをno、 Normalizationをnoneと設定
・ Global CalculationはすぐできるVBMを参照とし全脳容積(TBV)を選択
上記の設定で解析を試みましたがエラーが表示されます。また、 根本先生の 縦断ボクセルベース・モルフォメトリーのご報告では縦断解析の前処理を 横断解析と同様の方法もしくは被験者事に標準化する方法を挙げていましたが、今回のケースではどの前処理の方法が望ましいでしょうか?
根本先生のご意見を頂けると幸いです。
拝見しました。
以下、気づいたことです。
– まず、この場合、flexible factorial を使う必要はなさそうです。Paired t-test でいいかと思います。Flexible factorialは、群が2つ以上ある時に使うんですね。今回の場合は1群ですよね?
– 縦断解析の場合、covariatesは基本、なしになります。なぜならば、介入前後でその方が持っている属性(性別など)は変わらないので、そういったものは相殺されると考えられるからです。
– Global normalization をされない場合、Global calculationは特に不要となります。差分であることを考えると、Global normalizationは不要でいいと思います。
ということで、Paired t-test を行われてはいかがでしょうか?
根本先生
ご返信有難うございます。
先生のアドバイスをもとに解析を行ってみます。
根本先生
いつも興味深く拝見させていただいております。お忙しいところ失礼いたします。
「すぐにできるVBM」を拝読しながら脳画像解析を始めて半年の大学院生です。
一つ質問がありまして、ご連絡させていただきました。
ある疾患群とコントロール群で、VBMでgmvの差を見ているのですが、両側の同部位が、cluster-levelでのPuncorr値が0.244と0.258くらいではあるのですが、gmvの低下が見られている状況です。こういう場合ROI解析をしたらいいということらしいのですが、その場合はどのようにROI解析を進めていくと良いのか悩んでおります。ご教授いただけたら幸いです。
基本的な質問でしたら申し訳ないのですがどうぞよろしくお願い申し上げます。
ご質問については、以下のように説明できますでしょうか。
– cluster-level は、「広がり」を評価します。容積低下を示す領域の広さが有意に大きいかを示します。もし、先生が関心がある領域がそこまで広くない場合、cluster-levelでは有意にならない可能性は十分にあり得ます。
– peak-level は、VBMにおいては、あるボクセルの容積の差を評価します。gmvの低下が見られるとおっしゃる場合には、peak-levelで有意差は観察できていますか?
– ROI解析という場合、SPMでは”Small Volume Correction”を使う方法があります。この場合、事前仮説があることが重要になります。ROIは、WFU PickAtlasなどで作成します。
Small Volume Correction を行う場合は、peak-levelで有意差が認められていて、事前仮説に基づいて統計する領域を狭めることにより、多重比較補正の結果でも有意になるようにするという方法になります。間違って使うと、p-hackingと呼ばれる方法になりかねませんので注意は必要です。
WFU PickAtlasなどは使ったことがありますか?
早速のお返事感謝申し上げます。ご教授有難うございます。peak-levelでは、Puncorrでp<0.0001、FDR補正(qFDR-corr)でq=0.000、FWE補正(pFWE-corr)でp<0.0001となっています。有意差はあるということでよろしいでしょうか。
Small Volume Correctionを行うのは注意が必要ということ、承知しました。
WFU PickAtlasは使ったことはありませんが、試してみたらよろしいでしょうか。
本当に有難うございます。
はい、それならばなんら問題なく有意差ありです。
ちなみに、クラスターの大きさはどのくらいでしょうか?
有難うございます。クラスターの大きさは120くらいですので小さいかとは思います。
120あるのですね。SPMの結果の下に、”expected voxels per cluster” というのがあります。その値はいくつになっていますか?
この値が、120より小さければ、120 はノイズではなく、有意な値なので自信を持ってもらって大丈夫です。
expected voxels per clusterは98と出ていますので120よりは小さく、有意のようです。WFU PickAtlasを使って次に進めてみたいと思います。
大変勉強になりました。
本当に有難うございました。
この場合、PickAtlasを使わなくて大丈夫ですよ。既に有意な結果ですので。
何度も本当に有難うございます。既に有意な結果ということで、このまま有意な結果として論文などに示してもよろしいということになりますでしょうか?他にすべきことがありましたらご教授いただければ幸いです。
はい、そのまま有意な結果として示して大丈夫です。その領域がもし小さい領域であればなおさらです。
領域自体は小さい領域ですので、さらに有意ということ、承知しました。色々とご教授いただきまして誠に有難うございました。
何度も失礼いたします。ご相談した部位に関して言い忘れていたのですが、場所は大脳皮質下の内部の小さい領域でした。MRIでは大脳皮質を解析していることが多い印象ですが、内部であるということを考慮した場合、今回のようにclusterでは出ておらずpeak値は出ている場合、論文のResultsで主張しても差し支えないレベルと言えますでしょうか。
皮質下領域の灰白質ということですよね。
peak-level で、expected voxels per cluster より大きい領域が有意の場合、その領域の灰白質容積は多重比較補正を考慮しても有意に小さいと言えます。
cluster-level では、灰白質容積そのものは、多重比較補正では有意に小さいとは言えないかもしれないが、多重比較補正なしでの低下領域が、十分に広いので、低下している領域が有意に大きいという意味になります。
https://www.fil.ion.ucl.ac.uk/mfd/Schedule/slides_2021_2022/L05_RandomFieldTheory.pptx
ここのスライド12枚めをご覧いただけたらと思います。
ご返答有難うございます。
承知しました。沢山のご指導を誠に有難うございました。
根本清貴先生
「すぐできるVBM 精神・神経疾患の脳画像解析」を拝読している大学院生です。
SPM12にてOld Normalise: Estimate & Write(オプション Nonlinear Iterations:0、Template Image:ICBM 2009a Nonlinear Symmetric)を使用して線形変換を試みています。
私の所属する施設では、以前より高速スピンエコーを用いたthin sliceのT1強調画像のデータを集めており、それらを用いたVBMの解析を検討しております。
私の検証では、従来型のT1強調画像でのOld Normaliseでは肉眼的に正しい変換が行われているように見えるのに対して、高速スピンエコーを用いたデータでは正しく変換が行われませんでした。
元画像を観察すると、信号値が従来型と高速スピンエコーのもので異なっており、高速スピンエコーの信号値がTemplate Imageに合致していないのではないかと愚考しております。
質問は2点あります。
①高速スピンエコーで得たT1画像を線形変換解剖学的標準化するのに適したテンプレート画像が存在するのか。あるいは変換式のようなものが存在するのか。
②今後、DARTEL等を使用した統計解析を検討する際に高速スピンエコーのT1画像は有用と言えるのか。
線形変換の目的については、現時点ではC8という脳梁の面積を測定するプラグインを実行するために用意しています。
お忙しいところ恐縮ですが、よろしくお願いいたします。
高速スピンエコー法の場合、着目すべき点は、灰白質と白質のコントラストがどのくらい悪いかというところかと思います。
Segmentationは、灰白質と白質をいかにきれいに分割するかというところなので、元画像のコントラストgよくなければ結果が悪くなります。
ただ、線形変換だけならばそんなに失敗しないかと思います。ちなみにその線形変換はアフィン変換でしょうか、それとも剛体変換でしょうか?
アフィン変換でざっくりMNI空間にあわせることを期待されているのでしょうか?
根本先生
早速のご返信ありがとうございます。
コントラストについては、これから検証を進めてみたいと思います。ありがとうございます
根本先生
(うまく投稿できず細切れになってしまいました。すみません。)
早速のご返信誠にありがとうございます。
Segmentationでのコントラストの具合については、今後検証を進めて参りたいと思います。
目指している線形変換について、C8 Documentationについては以下の記載があります。
―――――――――――――――
First, we need to generate a white matter segmentation for the brain and then
(affine) normalize it to MNI space: this normalized white matter
segmentation will be the input that C8 will operate on.
(中略)
When doing the MNI normalization of the T1 image, it is important
that one only do an affine (linear) normalization only so that measurements
performed in MNI space can easily be back-transformed into equivalent
measurements in original image space. The parameter in SPM5’s function
to specify affine-only is ‘nits’ as follows:
―――――――――――――――
上記から、アフィン変換による解剖学的標準化を試みています(C8 documentationではこの操作の後にSegmentation周りの記載が続きます。)。
実際に従来の撮像法の画像データ群それぞれに対してSPM12にてOld Normalize: Estimate & Write【オプション Nonlinear Iterations 0、Template Image:ICBM 2009a Nonlinear Symmetric】を実行すると、以下のようなAffine行列を持つ_sn.matファイルが生成されます(可読性を高めるため桁数を減らしています)。
0.01 -0.89 -0.01 236.29
-0.02 0.04 0.97 59.28
0.90 0.00 0.01 9.89
0.00 0.00 0.00 1.00
この値は画像データでほぼ変わりがないです。肉眼的にも正しく標準化されているように見えます。
一方、高速スピンエコー法で撮像された画像データ群で同様の処理を行った結果は以下の通りです。肉眼的には斜めを向いてしまったりしており、正しく標準化されていないように見えます。
(例1)
1.72 -0.02 -0.12 -2.98
0.00 2.08 -0.59 33.73
0.20 0.33 2.39 3.63
0.00 0.00 0.00 1.00
(例2)
1.65 -0.01 -0.03 -5.80
0.09 2.14 -0.12 -10.90
0.11 -0.26 2.21 90.31
0.00 0.00 0.00 1.00
この原因として、従来法と高速スピンエコー法ではMRIcroGLで見た際の信号値(あるいは最大値に対する割合)が異なっているためではないかと考えています。
Template ImageのICBM 2009a Nonlinear Symmetricは、従来の撮像法と信号値が近く、高速スピンエコー法のものと一致しないためOld Normalize: Estimate & WriteのTemplate Imageとして適切ではない可能性があります。
また、私の知る限り、高速スピンエコー法のTemplate Imageに使えるような適切なデータは提供されていません。
同様の課題を解決された方をご存知だったりされませんか?
状況了解できました。
次の方法を試していただけませんか。
Old Normalise: Estimate & Write の
Template Image
に今、ICBM 2009a Nonlinear Symmetric を指定されていますが、
その代わりに
spm12/toolbox/OldNorm に入っている
T1.nii
T2.nii
の2つを指定していただけませんか。
SPMのOld Normaliseは裏技があって(というかマニュアルには書いてありますが、殆どの人がしらないということで裏技としておきます)
実は複数の画像が指定できます。
このように記載されています。
Specify a template image to match teh source image with. The contrast in the template must be similar to that of the source image in order to achieve a good registration. It is also possible to select more than one template, in which case the registration algorithm will try to find the best linear combination of these images in order to best model the intensities in the source image.
なので、T1.nii と T2.nii を指定することで、もしかしたら改善する可能性があるかなと思いました。
根本先生
ご返答ありがとうございました。
Old Normalise: Estimate & Write のTemplate Imageが複数指定できることは知りませんでした。
実際にT1.nii、T2.niiを指定したところ、肉眼的に良い変換が得られているように見えました。
Segmentationを行ったあと、このファイルを用いてC8を実行したところ、以下のエラーが起こり完遂に至りませんでした。
・次を使用中: diag
K 番目の対角の入力は、整数スカラーでなければなりません。
得られた_sn.matファイルは凡そ以下通りです。
-3.6 -0.1 -0.1 331.2
0.0 4.4 -0.8 22.6
-0.2 0.6 4.1 76.0
0.0 0.0 0.0 1.0
現在、mni_icbm152_t1_tal_nlin_sym_09a.niiをテンプレートにしていたときのC8の結果(アフィン変換によりMNI空間から元データに戻って脳梁の面積を測定するプログラムです)が予想される値より大幅に小さかった(MNI空間での計算結果は予想通りの値である)経験から、どこかで予期しない拡大縮小の変換が起こっているのではと愚考しています。
高速スピンエコー法で撮像されたデータのDir Corの値や、データサイズ(320x512x512)、readinfoの.Transform.Tの行列データが影響しているのではないかと原因検索を続けております。
良い報告をさせて頂きたかったのですが、もう少し時間がかかりそうでしたので、一旦中間報告させていただきました。
C8のドキュメントを少し拝見しました。
これは、SPM5をベースに書かれているので、segmentationもold segmentを使った方がいいと思います。
segmentationはold segmentをお使いになられましたか?
あと、もうひとつの方法として、SPM12でなく、SPM5でやってみるという方法もあると思いますがどうですか?
C8がSPM5前提で書かれていることを考えると、SPM5で一通りうまくいくかどうかを見ることは意味があると思います。
SPM8でunified segmentationが導入されて、segmentationが大きく変わったので、SPM5とSPM8以降は結構違うので。
根本先生
ご指摘ありがとうございます。現在はOld Segmentationは使用しておりません。これまで上手くC8が実行できていた症例について、通常のSegmentationとOld Segmentationで違いがあるか検討してみます。
また、高速スピンエコー法で撮像されたデータでC8が実行できない原因については、ようやく大枠が掴めました。
どうやら、元データのVox sizeが0.55×0.43×0.43と小さい(Dimensionsが320x512x512と大きい)ために起こっているようで、MRIcroGLにてImport→Tools→resizeにてVoxelsが1mmになるように調整するとC8が予想される真の値にかなり近づきました(Normalizeは元の通りで実行しています)。
単純にX,Y,Z-scaleを全て1mmに統一すると変形してしまう点や、扱えるデータが荒くなってしまう点の改善が今後の課題になりそうです。これらの回避のためにSPM12の学習を続けようと思います。
たくさんのご指導を賜り誠にありがとうございました。今後ともよろしくお願いいたします。
前進したようでよかったです。
追加でコメントしておきます。
今回の問題の本質は、GM/WMのコントラストかと思います。なので、それをいかによくするかにかかっています。
一方、他のモダリティを使うという方法も考えられるかと思います。
たとえば、
2次元でもいいので、T2画像がある場合、
高速スピンエコーT1とT2を co-registration
T2 を Old Normalise: Estimate を使って、MNIへの変換マトリクスを出力
T1 を Old Normalise: Write を使って、標準化を行う
ということができると思います。
SP12の通常のNormalise は、Unified segmentationを使用します。つまり、Segmentationがまず動きます。
なので、segmentationがうまくいかない場合、Normaliseもうまく動きません。
いかにGM/WMをよくするかですが、SPMだけだと、bias correctionまわりのパラメータをいじることかなとは思います。
実際のデータを見ていないのでなんとも言えないですが。
もし、がっちりやりたい場合には個別にご相談いただければと思います。
根本先生
岡山医療センター新生児科・小児神経内科の竹内と申します。
すぐできるVBMを参考にしながら、新生児のT2WI画像を使ってVBMを試みています。
SegmentationはtoolboxのMANTISを使用し、比較的きれいに分割できています。
*MANTISでのsegmentationのあとVBMを行っている論文(PMID: 30016676)があります。
MANTISでのsegmentationでは灰白質、白質、脳脊髄液、深部灰白質、海馬、
扁桃体、小脳、脳幹の8つに分かれますが、native spaceの画像しか出力できません。
(DARTEL importedも出力するように設定すると固まってしまいます)
上記論文では灰白質と白質の画像をsmoothingして、4Dファイルにまとめると書いてありますがその後が詳しく書いていないため行き詰まっています。
基本的な質問で大変申し訳無いのですが、native spaceの画像から、
DARTEL用の画像を作ることはできるのでしょうか?
または、テンプレートを作れないときには他の解析の方法があるのでしょうか?
お忙しいところ申し訳ありませんが、どうぞよろしくお願いいたします。
追記です。MANTISでのsegmentationをすると~seg8.matというファイルは一緒に生成されています。
竹内先生
ご紹介いただいた論文を拝見しました。
smoothingして4Dにまとめるというのが確認できませんでしたが、それは他の論文ですかね?
(その方法をとるとしたら、FSL-VBMなのかなとちらっと思いました)
ご紹介いただいた論文の方法は、VBMというよりはROI解析ですね。もちろん前処理にMANTiSを使っているわけですが。
MANTiSを自分で使ったことがないので教えてもらいたいのですが、MANTiSの結果出てくる画像のボクセルサイズは入力画像のボクセルサイズと同じでしょうか?
その場合、大きさを教えていただけたらと思います。
MANTiSでダメでも、SPMのDARTEL Toolboxでdicom importを試みる方法はあるのではないかなと思います。
根本清貴
根本先生
お返事をいただきありがとうございました。
気づくのが遅くなってしまい申し訳ありませんでした。
論文は正しくはこちらでした、すみません
https://pubmed.ncbi.nlm.nih.gov/30555004/
Mantisではphase 1フォルダーとphase 2フォルダーに分かれて多くの出力がありますので、segmentations in native space とsegmentations in the standard space of a neonatal templateなどが実際のどの出力画像に当たるのかを著者にも聞いてみようと思います。
あと、出力画像のボクセルサイズ確認はfslを使うのでしょうか?
よろしくお願いいたします。
竹内先生
返信に時間がかかってすみません。
論文を拝見しました。確かにT1とT2をcombineしたとありますね。
SPMで扱うには、いずれにしても3次元で扱うので、ここはあまり気にしないで、シンプルに、DARTELのところを考えていきたいと思います。
SPMから
Batch からBatch editor を起動します。
その後、メニューから
SPM -> Tools -> Dartel Tools -> Initial import を選びます。
ここで、Parameter Files に 通常ならば segmentation の際に生成される seg_sn.mat を指定するのですが、
MANTiSでは、この mat ファイルは生成されますでしょうか?
ここをまず確認していただけますか?
MANTiSではseg_sn.matファイルが生成されません。
結局、苦肉の策でMANTiSに含まれていたTPMを利用してold segmentationを行い(きれいにできました)、そこで生成されたseg_sn.matファイルを使ってDARTEL initial importをしてDARTEL用のデータ(rc1, rc2)を作りました。一応VBMの処理もできました。ありがとうございます。
著者の先生にうかがったところMANTiSのオプションでDARTEL imported画像を出力できるよとのことだったのですが、それをしようとするとBatchエディタがフリーズしてしまい、できませんでした。
MANTiSの出力データについてvolumeを計算するとMANTiS phase 1フォルダの中身は通常の容積なのですが、phase 2はすごく大きい数字になっていました。(Phase 2は標準化済み?)。このあたり、また著者の先生に聞いてみようと思います。
そうだったのですね。解決したようでよかったです。
SPM12のdisplayで確認したところsegmentation後のボクセルサイズはその前と同じで1*1*1mmでした。
SPMのdisplayで確認するので大丈夫です。1x1x1mmなのですね。
根本先生
突然失礼いたします。いつも興味深く拝見させていただいております。
「すぐにできるVBM」を拝見しながら脳画像解析を始めたばかりの大学院生です。
一つ質問がありまして、ご連絡させていただきました。
ある疾患群と、コントロール群の2群での解析をしようとしているのですが、コントロール群の3割の方が別の施設で脳画像を撮った方なのですが、それに関しては施設Aを0、施設Bを1というように共変量として設定して解析した方が宜しいでしょうか。ご教授いただければ幸いです。
どうぞよろしくお願い申し上げます。
すみません、このコメントに気づくのが遅くなってしまいました。
はい、そのとおりです。性別と同じような感じで、scanner といった共変量を作って 施設A を 0, 施設B を 1 として、centering none としていただければ大丈夫です。
ご教授いただき有難うございました。ご教授の通りにやってみたいと思います。
ご多忙中の折お返事をいただきまして誠に有難うございました。
昨年は先生方のおかげもあり、脳画像解析の有用さとおもしろさに触れることができました。
今年もどうぞよろしくお願いいたします。
年明け早々恐縮ですが、ひとつ質問させてください。
現在、自験例の病変の重ね合わせ画像を作りたいと思っています(1例の病変を青、2例重なると緑、3例重なると赤…となるようなイメージです)。
自験例の脳画像をFSL FLIRTで変換し、SPMのtool boxで病変マスクを作成し、ImCalcで重ね合わせ画像を作り、MRIcroGLなどでMNI画像に重ね合わせる…という手順を想定しています。
FSL FLIRTで変換する際、自由度で変換方法を指定していると認識しているのですが、この場合、自由度12で問題ないでしょうか。自由度12であれば拡大縮小が入るため、病変の量の検討はできないが、正確な分布の検討であれば自由度12の方がよい…という認識であっていますでしょうか。
お手隙の際にご返信いただけましたら幸いです。
赤池先生
FLIRTの自由度ですが、
6: 剛体変換のみ(平行移動と回転) -> MNI標準画像にはあわない
9: 剛体変換 + zoom -> MNI標準画像に近づくがまだまだ遠い
12: アフィン変換(剛体変換 + zoom, shear) -> MNI標準画像にそれなりに近づく(線形変換の範囲内で)
となります。
今、異なる被験者の病変を重ね合わせることを想定されていると思いますので、線形変換だけで行うとしたら、自由度は12が適切と思います。
普通は非線形変換も組み合わせるわけですが、病変があると、非線形変換がうまくいかない場合もあるので、表示するだけでしたら、あえて線形変換だけで
試してみるというのもありだと思います。
根本先生
さっそくありがとうございます。勉強になりました。
手持ちの画像データでどうすれば正確なデータが得られるか、試してみたいと思います。
何度もすみません、もうひとつ教えてください。
病変マスクを作成するうえで、T1WIだけでなくFLAIR画像もあわせて使用したいのですが、
同じ手順でFLAIR画像を線形変換、非線形変換することは可能でしょうか。
参照画像を変更する必要はございますか(T1であればFSLに付属しているMNI152画像を使用していました)。
FLAIR画像を含め、T1画像以外の場合、以下の方法をとります。
– FLAIR画像をT1画像に FLIRT を使ってあわせます。
– T1画像をMNI画像にあわせます。その際に変換パラメータも出力します。
– FLAIR画像に変換パラメータをあてて、標準化します。
FSLのウェブサイトにとてもわかりやすいページがあります。よろしかったらこちらを見て試してみていただけたらと思います。
https://www.fmrib.ox.ac.uk/primers/intro_primer/ExBox17/IntroBox17.html
ありがとうございます。
とてもよくわかりました。
今後ともよろしくお願い申し上げます。
根本 清貴先生
ご著書を片手にVBMに取り組んでおります西江と申します。
paired t-test である介入の前後比較をしております。
14例の画像で、何度か計算を繰り返していました。当初は、自由度13で計算されていたのですが、最近は同じデータを使っているにもかかわらず自由度が12となり結果も変わってしまいました。どうしても理由がわからず、ここに質問させていただきます。ご教示いただけますとうれしいです。
なお、以前と今のdesign matrixを比較してみると、Global calculationが、以前はomitだったのですが、今はmean voxel valueになっています。設定はomitにしています。このことが関係しているのかもしれないと思っています。またparametersでは、2 condition, +0 covariate, +14 block, +0 nuisance 16 total, having 1 degrees of freedom leaving 13 degrees of freedom from 28 imagesが、2 condition, +0 covariate, +14 block, +1 nuisance 17 total, having 16 degrees of freedom leaving 12 degrees of freedom from 28 imagesに変わっています。
根本清貴先生
先日は失礼いたしました。
現在、14例ほどでpaired T-testで、ある介入の前後比較をしております。期間は6ヵ月です。性や年齢は補正の必要がないと過去のご回答から理解しました。
以下、質問でございます。
①このときに、global calculationで補正をする必要がございますでしょうか。
年齢とともに全脳容積がかわるのであれば、補正が必要なのかもしれないと考えて、あれこれ試行錯誤しておりました。
②Global normalisationのNormalizationはNoneでよろしいでしょうか。
ご多忙中とは存じますが、以上2点につきまして、ご回答いただけますと大変うれしいです。
西江先生
以下、ご質問への回答となります。
はい、性、年齢は補正の必要はありません。
paired t-testが行っていることは、time point1 をTP1、time point2 を TP2とすると
– TP2 – TP1 画像を作成
– 「TP2 – TP1 = 0」という帰無仮説が棄却される領域を探索
ということをすることになります。
つまり、TP2とTP1の差分画像を作成することになります。
重要なポイントは、TP1とTP2がいかにきれいに位置合わせがされているかというのがポイントになるというのが見えてくるかと思います。
また、性の情報は相殺されることもわかるかと思います。6ヶ月という期間における共通する脳容積変化は一定の値になるのでこれも相殺されます。
このため、性や年齢は補正の必要がなくなります。
続いての質問ですが、
必要ありません。Omitでいいです。
一応、補足しておきますと、Global calculationはこれを指定したからといって補正されるわけではありません。
これはあくまでも全体値をどうしますかという設定をするだけです。
こちらが、上の質問の「補正する必要はありませんか?」につながることになります。
こちらはNoneで結構です。
なぜかというと、上に申し上げたように、paired t-testでは、差分画像を評価していきますので、
頭蓋内容積などの情報はキャンセルされるからです。
全脳容積を使うとしても、半年で加齢性変化が出る可能性はありますが、皆に共通して認められる変化であれば、統計の時に有意にならなくなりますので、問題ありません。
以上、よろしくお願いします。
根本清貴
根本清貴先生
一つだけ確認ですが、ご回答の最後の方にある”Two sample t-test”は、”paired t-test”ということでよろしいでしょうか。
お忙しい中、詳細な回答をありがとうございます。
お教え頂いた内容を元に解析を頑張ります。
おっしゃるとおりです。今、修正しました。
いつも大変お世話になっています。
統計解析でMRI装置の種類を交絡因子に組み込むかということで相談させてください。
現在、認知機能の異常の有無とFreeSurferとSPMで抽出した脳部位の容積の関係を後方視的に検討する研究をしています。特定部位の容積から認知機能を予測できるか検討するため、認知機能の異常の有無を目的変数、脳部位の容積を説明変数として多変量解析を実施予定です。
当院では2種類のMRI装置を使用しています。この場合、交絡因子に装置の種別を含めるべきでしょうか。目的変数に影響を及ぼすものではないので、入れる必要はないでしょうか。
初歩的な質問で大変恐縮です。お手すきの際にご意見頂戴できましたら幸いです。
必要と考えます。
説明変数に使うとしても、説明変数にバイアスが入ることになるわけですから、その調整が必要ですよね。
早々にお答えくださり、大変ありがとうございます。
変数に加えようと思います。
根本先生
すぐできるVBMを拝見させていただき、実験結果の解析を進めていきたいと思っております。
今回、K-LabからLin4NeuroをWindows10にダウンロードして、SPM12を開いて「すぐできるVBM」に沿って試しに触っている状況です。
文章中にあるmasking toolや半自動AC-PC補正プログラムを導入したいのですが、MATLABベースではないので、どこにスクリプトを打ち込めばいいのか、どこにZipファイルを展開したらいいのかが分からず困っております。
基本的なことで恐縮ですが、教えていただければ幸いです。
金子先生
大事な質問ですね。
Lin4Neuro内でSPM12のスタンドアロン版を使われる場合、AC-PC補正プログラムなどのmatlabのスクリプトおよび外部のツールボックスは使えないんですね。
回避策として、SPMのバッチを利用した方法があります。
– AC-PC補正プログラムは準備できるのでちょっとお待ちいただけますか。
– masking toolboxは利用できないのですが、ぶっちゃけると、すぐできるVBMのDVDに収載してあるChapter5_data/00_mask/average_optther.nii を explicit maskとして指定していただければ十分です。(かなり汎用性があります)
ということで、ちょっとお待ちください。
金子先生
おまたせしました。
https://www.nemotos.net/resources/acpc_coreg_for_batch_editor.m
これを右クリックで保存で、デスクトップなど(どこでもいいです)に保存していただけますか。
– SPM12のスタンドアロン版を起動し、”Batch” からBatch Editorを起動してください。
– File -> Load batch (もしくは開くのアイコン)から、保存したacpc_coreg_for_batch_editor.m を読み込んでください。
– そうすると、”Choose MRI you wanto to set AC-PC” というタイトルのダイアログが出てくると思いますので、T1画像を選択してください。複数選択できます。
– Batch Editorに必要な設定がすべて展開されます。あとは緑色の▶をクリックしていただくだけで、AC-PCの位置合わせが行われます。
よかったら3例ぐらいで試していただき、うまくいけばあとは100例でも200例でもいけるかと思います。
根本先生
さっそくのお返事ありがとうございます。
batch作成に関しても迅速にご対応いただき感謝申し上げます。
ご指導いただいた方法を行い、再度コメントでお返事申し上げます。
根本先生
京都大学脳神経内科の吉村と申します。先生のブログ、「すぐできるVBM」でいつも勉強をさせて頂いております。
こちらで質問をさせて頂いていいものか分からないのですが、多群比較におけるSPMのdesign matrixの組み方についてです。2013/9/15のエントリーで「複数群の比較の際は1つのdesign matrixに全部入れてしまってよい」という内容がございましたが、これはnuisance covariatesがある場合にも適応していいものなのでしょうか。
現在SPMを用いて多群比較のTFCE解析を行っているのですが、1つのdesign matrixに多群のデータを全部入れた場合と、2群ずつ別々のdesign matrixを作った場合とで大きく異なる結果が出てしまいます。nuisance covariatesとして年齢、性別を使用しているのでおそらくそれが原因かと考えているのですが、どちらの結果がより正確なのかが分からない状況です。色々と検索をしてみたのですが、nuisance covariatesがある場合のdesign matrixの組み方についてのまとまった説明を見つけられず、こちらでご質問させて頂いた次第です。
基本的な質問で申し訳ございませんが、ご教示頂ければ幸いです。何卒よろしくお願い申し上げます。
吉村先生
すみません、コメントがなぜだかスパム扱いされてしまっていて、気づくのが遅くなってしまいました。
多群比較というのは、一元配置分散分析 One-way ANOVA というイメージで大丈夫でしょうか?
SPMでの2群比較と3群比較の一般線形モデルがどうなるか考えてみます。
共変量に年齢を入れます。
2群比較の場合、A群とB群があるとすると、
Y = β_a * x_a + β_b * x_b + beta_age * age + ε
であらわされます。
ここで
β_a は A群の平均、β_bはB群の平均
x_a はダミー変数でA群の時に1, B群の時に0
x_b は同様にダミー変数でA群の時に0、B群の時に1
となります。
なので、被験者がA群に所属する時には
Y = β_a * x_a + β_b * 0 + beta_age * age + ε
= β_a * x_a + beta_age * age + ε
となります。
3群比較の時、A群、B群、C群とあるとすると、
Y = β_a * x_a + β_b * x_b + β_c * x_c + beta_age * age + ε
とC群の分が増えますが、これはダミー変数なので、
A群の人の場合、x_b, x_c は0になりますので、
Y = β_a * x_a + β_b * 0 + β_c * 0 + beta_age * age + ε
β_a * x_a + beta_age * age + ε
と結局同じように見えます。
ただ、ひとつ違いがあって、ageが、センタリングをかける場合、
2群と3群の場合、平均年齢が変わると思うので、その分の違いがεに影響を与えるなと思いました。
年齢にセンタリングをかけない場合、
上の例の場合では
コントラストが
2群比較の場合 [1 -1]
3群比較の場合 [1 -1 0]
で、TFCEの結果が同じになるかどうか確認していただくことは可能でしょうか?
理論的には、年齢のセンタリングをかけなければ、εの値は同じになるはずなので…
(性別はセンタリングをもともとかけないので問題ないはずです)
根本清貴
根本先生
「すぐにできるVBM」を拝見させていただいております。
SPMをサーバで使うことを検討しているのですが、
SPM12はWindows Server 2019のOSに対応していますでしょうか。
SPMのドキュメントには、
Windows64bitに対応していると書かれているのですが、
WindowsサーバOSに対応しているかまで書かれておらず、
ご存知でしたら教えていただけますと幸いです。
なお、MATLABはWindowsサーバOSに対応しているようです。
お忙しいところ恐縮ですが、どうぞよろしくお願い申し上げます。
はい、対応していると考えていただいて大丈夫かと思います。
SPMはMatlabに完全に依存していますので、
Matlabが動けば動作します。
サーバーでGUIが完全に動くかどうかは、検証は必要と思いますが、
Windows Server であれば、基本、動作すると思います。
どうぞよろしくお願いします。
根本清貴
早速ご回答いただきまして、誠にありがとうございます。
SPMとMatlabの依存関係について、承知しました。
サーバでのGUI操作についてもコメントいただき、ありがとうございます。
大変助かりました。
はじめまして。NICTの西山と申します。
今年度からSPMを使った解析に挑戦しようと考えております。
このような場でお伺いするのも失礼かもしれませんがSPMでDICOM画像をインポートする際のディレクトリの選択画面でファイルを選ぼうとすると虹色アイコン(Winの砂時計マーク)が表示されクリックが反映されるのに5秒程かかってしまいます。これでは使い物にならず何か対処法をご存知でしたらご教授いただけたらと思います。マシンのバージョンなどは
PC: MacBookpro2020 (OS: 10.15.6)
MATLAB R2020a update4(9.8.0.1417392)
SPM12 (7771)
になります。よろしくお願いします。
西山先生
質問ありがとうございます。
DICOM→NIFTI画像変換は、正直なところSPMを使うのはあまりおすすめではありません。
今、もっとも使われているのは、MRIcroGLに付属してついてくるdcm2niixです。
dcm2niixはDICOM→NIFTI変換も非常に高速ですのでおすすめです。
https://www.nemotos.net/?p=2946
こちらのリンクで導入方法をご案内していますので、こちらを使われるのはいかがでしょうか。
私はいつも
dcm2niix (もしくはその前のdcm2nii) でDICOM→NIFTI変換
を行ってから、NIFTI画像をSPMで処理しています。
ご参考まで。
根本清貴
根本先生
ご回答ありがとうございます。
その後原因を調べていたところ「Magnet」というアプリがSPMの動作を阻害していることがわかりました。このアプリを終了したところ正常に動作しました。
DICOM→NIFTI変換の方法ありがとうございます。
早速取り組んでみたいと思います。
西山先生
そうだったのですね。情報をありがとうございました。
根本清貴
根本先生
福井大学の平岡と申します。
「すぐできるVBM」を拝読し,大変参考にさせていただいております。
スキャナーの違いをどう扱うかについて質問させていただきたく存じます。
以前別の先生の質問で,スキャナーの違いを共変量に入れるお話がありました。今回の自身のデータも2台のスキャナーから得られており,ある変数XとVBMを用いた脳画像の相関分析を行おうと思っています。
質問としては,今回の場合でもスキャナーを共変量に入れたほうがいいのか迷っております。理由としては,もしスキャナー間で変数Xに有意な差があれば,変数Xと脳との相関関係にスキャナーの効果が影響するので,共変量として入れたほうがいいと思います。
ただ,今回変数Xの値がスキャナー間で有意差がなく,スキャナーの違いと変数Xは独立しています。その場合でも,スキャナーを共変量にいれたほうがよいのでしょうか。
お忙しいところ恐れ入りますが,お時間のあるときにご教示いただければ幸いです。
どうぞよろしくお願いいたします。
平岡先生
はい、共変量にいれる必要があります。
2機種だけですと、スキャナーAを1, スキャナーBを0としていただければ大丈夫です。そしてセンタリングをかけなければOKです。
MRI画像の値をYとします。
今回、先生の研究では、Xはスキャナー間で有意差がなかったようですが、
Yに関してどうかと言われると、それはわからないですよね。
共変量を入れる理由は、Yについてスキャナー間で有意差がある場合、スキャナーの違いで説明されるものを省くことになります。
ちなみに、スキャナーが2つだったら、MRIという共変量をたてて1,0ですみますが、
スキャナーが3つだったら
MRI1 という共変量に 0, 1
MRI2 という共変量に 0, 1
MRI3 という共変量に 0, 1
を入れて対処します。ご参考まで。
根本清貴
根本先生
早速お返事いただき,誠にありがとうございます。
スキャナーを共変量に入れ,解析進めたいと思います。
また,3台以上の場合もご教示いただきありがとうございます。
そういった場合もあるなと思っていはいたのですが,具体的な方法が分かっていなかったので大変参考になります。
誠にありがとうございました。
根本先生
こんにちは。
先生の本を参考にVBMの前処理を進めていたのですが、最後の段階でなぜか接頭辞にsmwではなくswcと付いてしまいます。これはモジュレーションが出来ておらず、代わりにcという新たな処理をされてしまっているのでしょうか。
もし宜しければ、教えていただきたいです。
ご質問ありがとうございます。
以下のように考えてください。
今の場合、swcとなっていますから、モジュレーションをしなかっただけですね。
DARTELのNormalise to MNIのところ、
Preserveの項目が、”Preserve Amount” になっていないと、モジュレーションがかかりません。
ご確認ください。
根本清貴
根本先生
基本的な質問で恐縮ですが、
SPMでMRI画像を解析する際には、
VSRAD用のT1画像を撮影する必要があるのでしょうか。
それともVSRAD用ではないT1でも良いのか、それともdiffusionでも良いのでしょうか。
VSRAD用のT1か、そうでないT1によって、撮影時間が変わり、診療の中で研究を進めていく上で、
技師さんの負担が変わるため、質問させていただきました。
よろしくお願いします。
竹内先生
SPMで、T1強調画像を解析する際は、3次元T1強調画像が必要です。
VSRADで推奨されているものは、3次元T1強調画像になりますので、そちらで大丈夫です。
拡散画像もそれ用の解析法がありますが、VBMでは用いません。
3次元T1強調画像はせいぜい7−8分なので、そこまで負担をかけないのではないかと思います。
どうぞよろしくお願いします。
根本清貴
梶本先生
ご丁寧に答えていただいてありがとうございます。
訂正です 梶本→根本先生
大変失礼いたしました。
お気にされなくて大丈夫ですよ。(^^)
鹿教湯病院で作業療法士をしています。
書籍を購入させて頂き、いろいろ勉強させて頂いております。
現在 縦断的にリハビリテーションを行った前後での脳変化について解析を試みており、
リハビリテーションの効果を表す評価指標の介入後ー介入前の変化量と相関がある脳の部位が
知りたいと思っています。
書籍に沿って前処理(平滑化)まで行いました。
そして対応のあるt検定を使用し、
共変量として、その評価指標の介入前を0、介入後の変化量を画像の順番ごとに入れました。
その後コントラストベクトルをどのようにすれば良いか自信がありません。
(介入前) (介入後) (評価指標) -1 1 1
もしくは (介入前) (介入後) (評価指標) 0 0 1
まったく違いますでしょうか?
初学者のため方法が違いましたら申し訳ありません。
ご教授頂ければ幸いです。
前田先生
縦断データで、変化量と相関をする部分を調べる方法ですが、
これは対応のあるt検定ではできないんですね。
対応のあるt検定で知ることのできるのは、あくまでも、脳画像において、介入前後で異なる場所がどこかとなります。
相関を知るには、画像の差分画像を作成する必要があります。
介入前画像をB (Baseline)、介入後画像をF (Followup) とすると、
差分画像は主に3種類作ることができます。
シンプルな差分画像: F-B
パーセント変化画像(percent change; PC): (F-B)/B*100
対称パーセント変化画像(symmetrized percent change; SPC): (F-B)/(F+B)*100
これらの画像を作成するには、imcalc を利用して作成する必要があります。
SPCを作成する場合のスクリプトを以下に置いてみました。
https://raw.githubusercontent.com/kytk/matlab-scripts/master/vbm_spc.m
これをSPMのディレクトリに置いていただいて、
Matlabから
vbm_spc
としていただくと、最初にtime point 1の画像を指定するウィンドウが出ますので、そちらで選択していただき、
次に、time point 2 の画像を指定するウィンドウが出ますので、そちらも選択していただいたら、
time point 1の画像ファイルの前に i が付加された画像が生成されます。
これがSPC画像になりますので、
このSPC画像を使って、変化量との相関解析をしていただけたらよいかと思います。
以上、よろしくお願いします。
根本清貴
根本先生
丁寧に説明そしてスクリプトまで本当にありがとうございます。
無事解析が出来ました。
とてもうれしいです。本当にありがとうございました。
前田正憲
無事にできたようで何よりです。
根本清貴
度々の質問申し訳ありません。
学会発表等見据え、もう一度解析をすすめていたところ、自分なりに調べてはおりましたが、分からず
2点程質問させて頂ければと思います。
①差分画像として使用するものは『すぐできるVBM』のテキストにある
平滑化 モジュレーション 解剖学的標準化 の処理を行ったものを使用する
という形でよろしいでしょうか?
②『すぐできるVBM』のテキストの『相関解析』のところを参照し、
解析をさせて頂いておりますが、『全体量の計算』や『全体量の正規化』
のところは差分画像を使用する場合も必要なのでしょうか?
必要な場合には例えば 介入前の全体量を入れるのがよろしいのでしょうか?
周りに質問できる方がおらず、度々で申し訳ありませんが、ご教授頂ければ
幸いです。
前田先生
はい、それで大丈夫です。
一応、説明しておくと、縦断解析の場合、方法が大きくわけて2つあります。
1. 横断解析と同じように行って、その後縦断解析を行う。
2. 縦断解析専用の前処理を行ってから解析を行う。
先生の場合は1.を選んだことになります。
2.の方がいいという人もいますので、つっこまれる可能性はありますが、まずはそこからしたということでもいいかと思います。
以下の総説を参考にしていただけたらと思います。私が昔書いた縦断VBMの総説です。
https://www.jstage.jst.go.jp/article/mit/33/1/33_19/_article/-char/ja/
不要です。ご推察のように、差分画像は、個々人の全体量は相殺されています。
従って、全体量の計算や正規化は不要となります。
VBMで全体量を入れるのは、群間比較の結果が、頭の大きさに影響されるのでそれを省きたいというのがあるわけですね。
今の場合は、相殺しているので、その問題が消えるので、いれる必要がないということになります。
根本清貴
根本先生
すぐできるVBMを参考に研究を進めております、辻本と申します。ひとつ気になった点があるので、質問させていただきます。
健常者と患者に対するt検定を行うにあたって、共変量として性別、年齢、利き手、正規化するために全脳容量を含めて一般線形モデルにあてはめました。線形回帰を行なった際のボクセルごとの決定係数を取得する方法はございますでしょうか。nifti画像でもmatlabに出力されるデータでも構いません。また、この場合、正しくモデルが作成できているか判断するための決定係数の基準などはあるのでしょうか。
お忙しいところ恐縮ですが、ご教授のほどよろしくお願いいたします。
辻本
辻本先生
返信が遅くなりました。
係数ですが、統計ディレクトリにあるbeta_xxxx.nii がそれになります。
Design matrixにage, gender, ICVが入っているとすると、Yをボクセル値とすると
Y=beta1 * age + beta2 * gender + beta3 * ICV + residuals
で表現されますので、
beta_0001.nii が年齢の決定係数となります。
正しくモデルが作成できているかの判断というのはこれだけでは難しいかと思います。あくまでも、最小二乗法で残差が最小になるような係数が決められるということだけですので。
ひとつ考えられるとしたら、Design matrixをReviewする中で、これらの変数がどれだけ直行しているかを確認することでしょうか。
以上、よろしくお願いします。
根本清貴
根本先生
ご返信ありがとうございます。
言葉足らずで申し訳ございません。私が意図していたのは、回帰係数ではなく決定係数(R^2)のことでした。線形回帰を行う際に決定係数があまりにも低いとモデルの当てはまりが良くないと判断することができます。線形回帰を行っているので、説明変数が妥当かどうか、線形性を信じて解析を行って良いのか不安になっておりました。
このことについてコメントいただけると幸いです。何卒よろしくお願いいたします。
辻本
辻本先生
失礼いたしました。決定係数と先生はしっかり書かれていますが、
私は朝、起きがけに見たので、回帰係数と思い込んでいました。
SPMで決定係数をいかに求めるかですが、SPM-MLの過去の記事に、以下の記載があります。
https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1405&L=SPM&D=0&P=674845
r^2 = t^2 / (t^2 + DF)
私が知っている式で、
t = sqrt(r^2/(1-r^2)*DF)
というものがあって、この式を r^2 で整理してあげれば、上の式になります。
つまり、imcalcで、
i1=spm_T 画像とし、自由度をdfとすれば、
(i1.^2) ./ (i1.^2 + df)
という計算をしてあげれば、それが決定係数画像になるかと。
ただ、tとrには関係があるということを示しているわけですので、決定係数が低ければt値も低くなりますので、有意になっているものの決定係数はそれなりの値ということも言えるかと思います。
根本清貴
根本先生
返信が大変遅くなり申し訳ございません。とても参考になりました。丁寧にご対応いただきありがとうございました。
辻本
辻本先生
私も再確認できたのでよかったです。
ご質問ありがとうございました。
根本清貴
根本先生
昨日、質問させていただいたボクセルサイズの変更について、以下のページで解決いたしました。
http://www.nemotos.net/?p=200
確認不足で申し訳ございません。
松本
松本さん
はい、見つけていただいた方法が解決方法です。
根本清貴
根本先生
お世話になっております。先日は丁寧にご教授いただきありがとうございました。
ボクセルサイズ1.5mmにすると、一般線形モデルでのパラメータβを表すファイルbeta_0001.niiは(121, 145, 121)の行列になり、解析を行うことができました。現在、そのβの行列と関心領域のマスク画像の行列を掛け合わせて関心領域の解析を行いたいと考えております。
しかし、PickAtlasを使用して関心領域のマスク画像を作成したところ、行列は(91, 109, 91)となってしまい、βとの要素ごとの積を計算することができませんでした。この関心領域のマスク画像を(121, 145, 121)に変換する、もしくは(121, 145, 121)の関心領域のマスク画像を作成することは可能でしょうか。
お忙しいところ恐縮ですが、ご教授いただけると幸いです。何卒よろしくお願いします。
松本
松本
松本さん
すみません、このコメントがスパム扱いされてしまっていて気づきませんでした。
解決したようでよかったです。
根本清貴
根本先生
「すぐできるVBM」を参考に卒業論文を進めております。松本と申します。
とてもわかりやすくVBMについて学ぶことができて感謝しております。
現在、精神疾患患者と健常者の脳構造の違いについて解析を進めているところでございます。
一般線形モデルのパラメータについて質問いたします。t検定に使用するパラメータβを表すファイルがEstimateを行なった時に、beta_0001.niiなどと出力されると思うのですが、このβについてボクセルごとの値を表示およびcsvファイルなどとして保存する方法はございますでしょうか。(pythonやmatlabなどを利用にてNIfTIファイルの中身を行列に変換したところ、40万のボクセルのはずが200万くらいの要素で出力されてしまったため、ボクセルごとのデータを得ることができませんでした。ファイルの中身をあまり理解できていない気がします…)
また、すべてのボクセルの生値を同様に保存する方法も教えていただけると幸いです。
お忙しいところ恐縮ですが、ご教授いただけると幸いです。何卒よろしくお願いいたします。
松本さん
VBMで1つのボクセルが、1.5mm x 1.5mm x 1.5mm の場合、
beta_0001.nii は、おそらく
121 x 145 x 151 のボクセルから構成されています。
これを計算すると2649295 となりますので、264万9295個のボクセルがあることになります。
40万のボクセルのはずというのは、脳領域ということになりますね。
spm12/tpm/mask_ICV.nii
は脳領域が1, それ以外が0 から構成されるマスク画像ですが、
この1を示すボクセル数をカウントすると、558718 となり、55万となって、松本さんのいう40万に近い値になってきます。
なので、niftiファイルに読み込むと、121 x 145 x 151 の行列が作成されます。
ボクセルの生値を保存したければ、以下ができるかと思います。
P = spm_select %値を保存したい画像を選択します。
V = spm_vol(P) %上記で選んだ画像のヘッダが変数Vに読み込まれます。
Y = spm_read_vols(V); %ボクセル値が変数(=行列)Yに読み込まれます。
%mat形式で保存したい場合
save(‘filename.mat’,’Y’) %行列Yをfilename.matに保存します。
%csvで保存したい場合
csvwrite(‘filename.csv’,Y) %行列Yをfilename.csvに保存します。
根本清貴
根本先生
ご返信ありがとうございます。丁寧にご説明いただき、感謝しております。
マスク画像の利用について見落としていたことに気づくことができ、ボクセルごとに値を保存することができました。
卒業研究に全力を尽くしてまいります。この度はありがとうございました。
松本
松本さん
無事にできたようでよかったです。
卒業研究が無事に進みますように。
根本清貴
根本先生
主に,ABiSの勉強会と先生のご著書・サイトで学ばせていただいております,
岡と申します.いつも有益な情報をありがとうございます.
現在,60歳代の方を対象に,VBM解析を行いたいと考えております.
シングルケースでの検討を行いたいのですが,
年齢が対応した健常成人のテンプレートデータが公開されていたりしますでしょうか?
公開されていれば,「SPMでの「1対多」の解析」を参考に解析を進められればと考えております.
ご助言いただけますと幸いです.
よろしくお願い致します.
岡先生
年齢が対応した健常成人のテンプレートについてですが、
1. DARTELテンプレートでは、公開はされていないと思います。
2. 健常者データという点では、海外のものは公開されています。”IXI” “OASIS” あたりで検索していただけたらと思います。ここら辺を使うのが無難なところになるでしょうか。
ただ、このデータは、海外データなので日本人のデータとは違うのでご注意ください。
根本清貴
根本先生
早速,お返事頂きありがとうございます.
ダウンロードして確認をしてみたいと思います.
岡
根本先生
いつもお世話になっております。埼玉医科大学病院神経内科の瀬尾和秀です。
SPMの前処理に関してお聞きしたいことがありまして、質問をさせて頂きました。
とある書籍でC1とC2を足した画像を全脳実質とし、それに対して通常の方法で作成したテンプレートでDARTELを行い解剖学的標準化された全脳実質画像として解析を行っているのをみかけたのですが、DARTELの位置合わせのときに灰白質+白質の画像の位置合わせも行っているため、この方法でも問題はないということなのでしょうか。
また、C1+C2つまり、全脳実質画像を得たいときはsegmentation時の組織確率マップを変更することによって作成することは可能でしょうか。
何卒、宜しくお願い致します。
瀬尾先生
私だったら、シンプルに、
・GMとWMをDARTELで標準化し、flow fieldを計算
・skull-strippingを行ったT1強調画像に対して、Dartel Tools -> Normalise to MNIで、
Dartel Template: Template_6.nii
Select accoding to many subjects
flow fields: GM, WMの時にできたものを指定
Images: skull-strippingが終わった全脳を指定
とすればいけます。
skull-strippingですが、BETでもROBEXでもいいですし、SPMだけでやるなら、下記のようなスクリプトを書いてみたのでためしていただけたらと思います。
https://raw.githubusercontent.com/kytk/matlabscripts/master/skull_stripping_batch.m
根本先生
ご返信ありがとうございます。
返信が遅くなってしまいまして申し訳ありません。
先生にご教授していただいた手段で全脳でのmappingを行ってみようと思います。
今回はご教授してくださりまして誠にありがとうございました。
今後とも何卒宜しくお願い致します。
根本先生
この度はお世話になります。京都大学精神医学教室の山崎と申します。
VBMで同一被験者に対する介入前後の2時点の画像を比較したいと考えています。
前処理でPairwise registrationから始め、avg*.nii, jd*.niiから各被験者ごとに1つずつswijd*.niiを作りました。次にdesign matrixを作る際にPaired T-testを選択すると、Scans[1,2]と画像の指定を求められますが、ここにはどの画像の組み合わせを指定するのでしょうか。swijd*.niiを指定するのかと思いましたが、被験者ごとに1つしかないのでうまくいきませんでした。
ご多忙のところ恐縮ですが、ご教示いただければ幸いです。宜しくお願い申し上げます。
山崎先生
方法は、2つあります。
Pairwise registrationの場合
この場合は、おっしゃるとおり、ひとつの画像しかできません。これは簡単に考えれば差分画像です。
したがって、この場合の統計モデルは、One-sample t-testとなります。
帰無仮説は、「swijd*.niiはゼロである」となります。
したがってコントラストは”1″ か “-1″となります。
Serial registrationの場合
この場合は、各時点に相応する画像ができます。
この時に、Paired t-testを使います。
以上、よろしくお願いします。
根本先生
お返事いただき、大変ありがとうございます。
まずPairwise registrationでOne-sample t-testを行いたいと思います。
2つ質問があります。
1. この場合のdesign matrixの項目について
性や年齢といった私の研究では2点間で影響を与えていないであろうCovariatesや、Global calculation、Global normalisationはいずれも指定せず空白あるいはデフォルトのままでよいでしょうか。
2. コントラストについて
swijd*.niiについてコントラストを 1 にした時に Time1 volume(前に撮った画像)とTime2 volume(後に撮った画像)の不等号の方向はどちらでしょうか。
度々恐縮ですが、ご教示いただければ幸いです。宜しくお願い申し上げます。
山崎先生
1. 性や年齢に関しては、pairwise registrationに関しては無視して大丈夫です。前提条件として、皆、同じ期間内に撮影しているということが必要ですが。
2. コントラストですが、jdは私の検討してきた限り、非線形変換において、そもそもの格子よりも格子が大きくなった領域で値が増加します。たとえば、脳室周囲で萎縮があった場合、脳室自体は大きくなるなので、その領域では値が増加してみえます。純粋に容積が増えた場合にも、その領域は値が大きくなります。したがって、コントラスト 1 は、expansionが起こった領域を見ると考えてもらっていいと思います。といっても、鵜呑みにせずに、念のために -1 も確認してください。
根本先生
細かい点までお答えいただき、ありがとうございます。先生にご教授いただいた方法で解析を完遂することができました。
またご相談させていただくことがあると思いますが、今後ともご指導いただければ幸いです。この度は誠にありがとうございました。
山崎先生
無事に解析ができたようでよかったです。
教えていただきたいですが、コントラストは”1″で大丈夫でしたか?
今後、先生と同じ疑問を持つ人がいると思うので教えてください。
根本先生
私の場合、コントラスト 1 で大きな変化がみられ、コントラスト -1 であまり変化がなかったという結果でした。pairwise registrationを用いずに行った同じ症例のPaired T-testで増加している領域が見られたことや、matlabで求めたGray matter volumeやTotal brain volumeがほぼ全症例で増加していた点から、コントラスト 1 は増加した領域ではないかと考えています。
山崎先生
先生の場合、1回目→2回目はむしろ容積が大きくなっているという実験系なのですね。
それでしたら、コントラスト1でいいと思います。
前後の環境によってコントラストは変わり得ると思います。
先生のやったように、Paired t-testの結果と比較するのはreasonableだと思います。
根本先生
>1回目→2回目はむしろ容積が大きくなっているという実験系
そうです。容積が大きくなることが期待される介入でした。
解釈に悩んでいましたがすっきりしました。どうもありがとうございました。
少しでも皆様のお役に立てれば幸いです。
根本先生
以前VBMのことで質問させていただいた千葉大学の栗本です。
その節は、先生のおかげで解析を進めることができまして、大変感謝しております。
今回は、別件でして、result表示においてsectionやrenderといった操作で構造画像に結果がplotされるときに表示されるカラーバーに関しての質問となります。resultで表示されるカラーバーは、おそらくautoで最大値と最小値が決まって、その範囲で解析結果のT値をカラーグラデーションによって表示されていると思っているのですが、正しいでしょうか?正しいとなると、A群とB群における解析でみられるカラーグラデーションと、C群とD群における解析でみられるカラーグラデーションの範囲は違ってくるのではないかと思っています。論文や発表に際してfigureを作成するときに、そのカラーバーの範囲を、解析それぞれで同じ範囲のカラーグラデーションに設定して、結果を表示させた方がよりいいのかなと思っているのですが、それは可能なのでしょうか?
お忙しいところ大変恐縮ですが、ご教授いただければ、幸いです。
宜しくお願い致します。
栗本先生
はい、可能かと思います。
私が自分で試しているわけではありませんが、SPMの中の人(Guillaume Flandin)が下記のコードを公開しています。
使い方がわからなかったらまた聞いていただけたらと思います。
https://en.wikibooks.org/wiki/SPM/How-to#How_to_choose_the_colour_limits_in_a_rendering.3F
根本先生
先生に教えていただいたリンクを参考にして、orthogonal viewでのカラーバーのlimit調整をすることができました。ありがとうございました。
ただ、render viewでのカラーの調整は、matlab上でエラーが出て、codeを受け付けてもらえませんでした。
もし、先生が理由がわかるようでしたらご教授いただけたら大変ありがたいです。
質問させていただいてばかりで申し訳ありません。
宜しくお願い致します。
栗本先生
原因がわかりました。
普通に行うRender -> rend の中にあるファイルを選択では、この方法はうまくいかないようです。
しかし、Renderから、
canonical の中にある gii ファイルを選択すると、
これまでよりもステキな感じのRenderingを得ることができます。
その絵を出した時点で、
H = getappdata(get(findobj(‘Tag’,’SPMMeshRender’),’Parent’),’handles’);
spm_mesh_render(‘CLim’,H) % return current limits
spm_mesh_render(‘CLim’,H,[0 16]); % set limits to [0 16]
これはいかすことができます。
spm_mesh_renderというコマンドであることにひっかかっていたのですが、
原因を探していて、もしかしたらmeshを使ったものではないとダメなのではないかと思い、試した所できました。
やってみていただけたらと思います。
根本 先生
丁寧に返信していただき誠にありがとうございます。
感謝しております。
先生からの教えを参考にして、鋭意、作業を進めていきたいと思っております。
この度は誠にありがとうございました。
栗本先生
もうひとつのRenderの方法をまとめましたので、よろしかったらご参考にされてください。
http://www.nemotos.net/?p=1905
根本先生
いつもお世話になっております。埼玉医科大学病院神経内科瀬尾和秀です。
度々の質問で申し訳ありません。MRIcronについて教えていただきたいことがあるのですがよろしいでしょうか。現在、MRIcronで画像を表示すると画像のボクセルサイズ(単位:mm)が軸によって異なる場合、画像が潰れてしまい正しいサイズ比の画像にならない現象が生じています。MRIcroではSquare モード、Stretch モード、Smooth モードといった非等方性画像の表示方法の選択ができたのですが、MRIcronでは同様の表示方法の項目が見当たらず、そういった方法があるかどうか、教えていただきたく質問させていただきました。
度々の質問で申し訳ありませんが、何卒よろしくお願いします。
瀬尾先生
残念ながら、私の知る限り現在のMRIcronにはそれは搭載されていないと思います。
Mangoの方がその点便利かもしれません。
根本先生
早速のお返事誠にありがとうございます。それでは、先生に教えていただいたMangoをダウンロードして使ってみようと思います。日々、先生に色々と学ばせていただけて幸いです。これからも何卒宜しくお願い致します。
根本先生
お返事ありがとうございます。具体的に何をどうしたいのかと言いますと、おそらく同じ領域の脳病変の患者群の病変部位を1例ごとに割り出し、それを解剖学的標準化し、最終的に患者群全体で病変に含まれているボクセルが解剖学的標準化された脳上でどの程度、共通しているか、どのような部位で共通しているかを知りたいです。
lesion_gnbツールボックスの開発者の方の論文を読ませていただいたところ、表現の仕方としては全患者の解剖学的標準化された病変画像が解剖学的標準化された脳上で重なり、共通するボクセルの割合ごとに色合いによって表現されている手法でした。
手法のところに説明があったのですが、患者の人数で度合いを合わせていましたが、自分の力量では患者のボクセルを重ねどこが共通しているか判断しマッピッングしていくことなどが具体的にどうやっているのか、理解することができませんでした。申し訳ありません。
論文タイトルはDamage to white matter bottlenecks contributes to language impairments after left hemispheric strokeでNeuroimage Clin. 2017; 14: 552–565.でした。
申し訳ありませんが、宜しくお願い致します。
瀬尾先生
それならば、シンプルな方法は、ImCalcを使うことです。
ImCalcで以下のようにしてみてください。
Input images: マスク画像を指定します。
Output Filename: 適当に決めてください。
Expression: sum(X)/指定した画像の数 とします。 sum(X)/15 といった感じです。
Options
. Data Matrix Yes – read images into data matrix を選びます。
これで実行してみてください。
そうすれば、0〜1の間の値を持った画像が作成されます。
1は、すべてに共通する領域です。
割り算をしなければ、純粋に足し算になりますので、たとえば15人でしたら、
15:15人すべてに共通する領域
14:14人に共通する領域
という感じになります。
こんな感じでしょうか?
根本先生
ご教授していただきまして誠にありがとうございます。まさに私の行いたいと思っていたことに合致した手法です。ありがとうございます。もう一点教えていただきたいことがあるのですが、ImCalcで作成した画像の解剖学的情報を調べる方法として、先生の著作でも紹介されているAnatonmy Toolboxを用いようと思うのですが、それ以外の方法で何か良いものがありましたら、ご教授していただけないでしょうか。できたらですが、SPMに搭載されたNeuromorphometricsのように座標がどのくらいの確率でどの領域であるかということやクラスタのうち何%がどの領域であるか調べることができれば幸いです。
度々で申し訳ないですが、何卒宜しくお願い致します。
瀬尾先生
簡便に名前を知る方法は、
CheckRegを使われたらいいと思います。
CheckRegで関心領域画像を開きます。
画像の上で右クリックし、
Display -> Labels -> Neuromorphometrics とします。
解剖学的名称を知りたいところにマウスをもっていき、クリックしたら、そこに解剖学的名称があらわられます。
ただ、この方法では、確率までは出てこないです。(あるかもしれませんが、私は知りません)
根本先生
早速のお返事ありがとうございます。解剖学的名称がわかるだけでもとても助かります。確率や割合が調べられる方法があるか、自分の方でもさらに調べてみますので、何か見つかりましたらご報告いたします。いつも、先生に教えていただけて、楽しく脳画像解析を行えており、感謝の念に堪えません。今後とも何卒宜しくお願い致します。
根本先生
いつもお世話になっております。埼玉医科大学病院神経内科 瀬尾和秀です。
現在、脳梗塞の患者に対するSPMでの解析を検討していまして、SPMのlesion_gnb toolboxを用いて病変マスクを作成しました。このマスク画像を用いて病変が解剖学的にどのように広がっているか、また、同様の病変部位の患者群で病変重複マップを作成することなどを考えたのですが、具体的にどのように行なったら良いか、文献をあたってみたのですが、方法が詳細に書かれているものがありませんでした。
何か、良い方法がありましたら、ご教授していただけないでしょうか。
お忙しいところ大変恐縮ですが宜しくお願い致します。
瀬尾先生
すみません、ご質問からだけですと、何をどうしたいのかがいまいち見えません。
どのようなことをしたいのかをもう少し具体的に教えていただけませんか。
根本先生
いつも、お世話になっております。埼玉医科大学病院 神経内科 瀬尾和秀です。
現在、先生に教えていただいた手法を用いて1対多数の解析を行っております。探索的に解析を行い、求められた部位の実際の容積も低下しているのですが、多重比較補正を行いますと、残されるボクセルが0になってしまいます。これは、患者群が1症例であるため、偽陽性となりやすいため、強い補正がかけられているという認識でよろしいのでしょうか。統計処理に対して理解していないところが多く、漠然とした質問で申し訳ございません。また、論文化するにあたり、今回のように探索的におこない、実際の容積を評価していれば、多重比較補正をしていなくても大丈夫でしょうか。
よろしくお願いいたします。
探索的にいくのであれば、まずは、多重比較補正なしで見られてはいかがでしょうか。
容積を評価するのであれば、多重比較の問題はなくなってくると思います。
根本先生
ご教授していただきありがとうございます。多重比較補正無しで探索的な解析を行ってみます。容積の求める方法について教えていただきたいことがあるのですが、よろしいでしょうか。現在、先生がHPにて解説してくださっているWFU PickAtlasを使用した方法で元画像の容積を求めようとしているのですが、その方法時に使用する画像は元画像または、DARTEL後の画像どちらを用いるのでしょうか。自分のget_totals.m対する理解が乏しい状態での考えなのですが、求めたいのは実際の体積なので元画像を用いると、WFU PickAtlasで作成したマスクと位置があわないような気がし、DARTEL後の画像を用いますと解剖学的標準化後の画像なので、全症例での体積がすべて同じになってしまう気もします。何度も何度も質問してしまいまして、大変恐縮ですが、ご教授してくださると幸いです。宜しくお願い致します。
瀬尾先生
“modulation”がキーワードになります。
標準化した後に、modulationをした画像は、元画像の容積値が反映されます。
なので、modulation後の画像に対して、関心領域内の値を取り出せば、それは容積となります。
よろしかったら、すぐできるVBMのモジュレーションの説明のところを再度確認していただけたらと思います。
もうひとつの方法として、標準化されている関心領域を、DARTELのflow fieldを用いて逆変換し、被験者の空間に持っていくというやりかたもありますが、まずは、modulation画像を使うということでよいのではないでしょうか。
根本先生
ご教授してくださりましてありがとうございます。先生の著作のmodulationの箇所を拝見し理解することができました。求めたかった容積を求めることができました。ありがとうございます。しかしながら、1患者においてなのですが、年齢によって容積が低下するとSPMでの探索的解析で見られた部分が逆に容積が増加していました。患者の容積が増加したと出てしまった期間は1年間で増加量もわずかなのですが。
そこで、freesurferによる解析も行ってみようと思いまして、以前、先生のHPでの解析を参考にインストール、求めたい画像のrecon-allを行っていたので、それを確認しようとしてfreeviewにsegmentationされたaseg.mgzや他のfileを出力するまでは至ったのですが、どこの部分にsegmentationされた部位の容積が表示されるのかわかりませんでした。度重なる質問で大変恐縮なのですが、ご教授していただけないでしょうか。宜しくお願いいたします。
瀬尾先生
https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/AnatomicalROIV6.0
の
4. Individual Stats files
5. Group stats files
をご覧ください。
ここに先生が必要とする情報があるかと思います。
根本先生
ご教授してくださりましてありがとうございます。先生に教えていただいた箇所を読むことで、segmentation後の各部位の容積を求めることができました。ありがとうございます。CLIでの操作に慣れていないので、色々難航することも多いですが、先生がご紹介して下ったLin4Neuroでの操作でCLIを学びながら今後も脳画像解析を頑張っていきたいと思います。いつもいつもご教授してくださり、助けてくださり、誠にありがとうございます。これからもどうかよろしくお願いいたします。
先ほどの質問で匿名表記になってしまいまして申し訳在りません。
追加の質問なのですが、共変量として年齢を入れるのであれば、正常群の年齢を厳密に合わせるよりも、正常群のnを増やした方が良いのでしょうか。
具体的に今の行なっている解析ですと、患者年齢が63〜73歳までのデータがありまして、それに対しての正常群を作ろうとすると、63〜73歳までですと70例くらいの群、60〜80歳までですと、100例くらいの群ができます。
正常群の内容をまだ詳細に出せていないため、情報数の乏しい質問で大変申し訳在りません。
すみませんが何かご教授していただけたら幸いです。
変化が見えるかどうかは、平均と標準偏差によるところが大きいです。
検定ではなく、Z-scoreで話をすると、
Z-score = (患者データ – 健常者平均) / 健常者標準偏差
ですよね。健常者の標準偏差が小さい方が、Z-scoreが大きくなります。
正常群のnを増やす目的のひとつは、標準偏差を正しく求めることにあります。一定以上増えると、平均と標準偏差は一定のところに落ち着くので、そこまで効果はないと思います。年齢幅を広げると、標準偏差は大きい方向に振れると思いますので、結果は出にくくなります。
私だったら、63-73で70例をとると思います。
根本先生
さっそくのお返事ありがとうございます。先生がご教授してくださったように、まず、正常群を63〜70歳で作成し、探索的な解析を行い、探索後にfreesurfer等で実際の容積を求め、統計処理を行おうと思います。統計処理なのですが、実際の容積においても、正常群の平均値等との比較だけでなく、再度、検定を行うのが望ましいと思いますが、その場合は1対多数の解析をSPMで行なった場合と合わせるようにtwo-sample-t-testで分散を等しいと仮定し検定を行うので良いでしょうか。宜しくお願い致します。
また、統計初学者でして色々と不理解なところも多く、実際の容積の統計処理の方法でこういった方法が良いというものがありましたら、教えていただけると幸いです。
瀬尾先生
FreeSurferでなくても、VBMでも普通に容積は求められるので、そちらでも大丈夫かと思います。
縦断データの解析の場合、1例ですと、統計にはのらないので、純粋に、容積値の変化を表なりグラフで示すしかないと思います。
記述統計でいくということですね。
(何をどのように説明したいかによって変わってくると思うので、この質問に対する一般的な答えは難しいかなと思います。)
根本先生
ご教授してくださりありがとうございます。容積値の変化をグラフなどでまとめてみようと思います。容積の実測値も先生がHPで解説してくださっているWFU PickAtlasを使用した方法で求めようと思います。
いつも、色々と教えてくださりまして、誠にありがとうございます。
今後ともどうかよろしくお願いいたします。
根本先生
いつもお世話になっております。埼玉医科大学神経内科 瀬尾和秀です。
現在、1対多数での解析を行っております。具体的には1例の患者の数年にかけての画像データがあるため、正常群と比べどのうように脳が変化して行くかを観察しようと試みています。全ての時期患者データの解析で、同一の正常群を用いても、年齢を共変量として入れておけば、年齢による変化を除外したと考えよろしいのでしょうか。
宜しくお願い致します。
瀬尾先生
今、いろいろ考えていますが…。
探索的に見るのであればそれでいいのではないでしょうか。
その際に、ノーマルに使う人たちは、その見たい年齢層を全部含んでいた方がいいですよね。
ただ、実際は、論文に載せることを考えるのならば、探索的に見てあたりをつけた後に、
関心領域を決めて、そこの容積を直接求めて統計解析をした方がいいような気がします。
根本先生
いつも。お世話になっております。埼玉医科大学病院 神経内科 瀬尾和秀です。
前処理について教えていただきたいことがありまして、質問させていただきました。
Dartelより前の前処理までは個々の画像の処理は個別に行われており、個々の作業間に相互作用はないと考えてよろしいのでしょうか。そのため、他の症例で使用した正常群のDartel前までの処理が終了した画像を他の症例で再度用いても良いのでしょうか。解析時間の効率化を考えた場合、それが可能であれば望ましいと思い質問させていただきました。
よろしくおねがいいたします。
瀬尾先生
はい、問題ありません。
ただ、ひとつ気をつけていただきたいのが、同じバージョン、同じリビジョンのSPMで前処理を行なったかどうかです。
SPM12でも、リビジョンが違うとSegmentationの結果に違いが出ることがあります。
なので、Segmentationを行う際には、どのリビジョンで行なったかを記載しておくと後々便利かと思います。
根本先生
さっそくのお返事ありがとうございます。先生に教えていただいたようにリビジョンの記載を行うようにしました。いつも、色々と教えていただきまして誠にありがとうございます。
今後とも宜しくお願い致します。
根本先生
HPをよく参照させていただいています。千葉大学の栗本と申します。
「すぐできるVBM」を購入し、VBM解析を始めたところです。
非常に初歩的な質問で、大変恐縮なのですが、DARTELでのテンプレートの作成は、やはり被験者一例ごとに全例やっていくべきなのでしょうか(似通った背景を持つ選択された集団においても)?
もし教えていただけたら幸いです。
宜しくお願い致します。
栗本先生
ご質問ですが、
もともと被験者が100人いて、その100人でテンプレートを作成したとします。
そして、被験者の追加があって、あらたに105人になったとします。
その時に、再度105人でもう一度テンプレートを作る必要があるでしょうか? という質問と理解してよろしいでしょうか。
もし、そうならば、100人のテンプレートを使っていただいてもらうで大丈夫だと思います。
DARTELのテンプレートは、「被験者集団に近いテンプレートを作成する」ことが目的ですので、
新規被験者がもともとあった被験者集団に近いのであれば、問題ないと思います。
実際、私は、ある研究で、1800人の日本人のMRIからテンプレートを作成しました。
そこに追加になった被験者は、すべてそのテンプレートで解析をしています。
テンプレートが変わると値も変わりますので、十分多い人数なので、それでよしと判断しています。
根本先生
ご教授、誠にありがとうございます。
私の拙い質問の意図をくみ取って頂いて、本当にありがたく思っています。
そんな中で、また質問になってしまうのですが、何人程度なら、被験者集団に近いテンプレートを作成する、という目的を満たしたと考えてよいでしょうか。もし目安等があれば教えていただけたら大変ありがたいです。
私が扱っているサンプル集団は、現在30人程度の規模ですが、今後増えていく可能性もありまして。先生の著書によると、DARTELのテンプレート作成には、かなり時間がかかるとのことでしたので、いつのタイミングでやるべきか迷っています。テンプレートを作成した時の集団の規模と追加されていく人数、の割合にもよるのだろう、と推測はしておりますが。
また、これも恐縮なのですが、intel corei7, メモリ8GBの環境で、上記の規模の集団のテンプレートを作成するのはどれくらいの時間がかかるものなのか、目安があれば、教えていただければ幸いです。
お忙しいところ、重ね重ね申し訳ありません。
宜しくお願い致します。
栗本先生
何人程度ならという質問に関してですが、できたら100人はほしいところです。100人こえるとパラメトリックに近くなりますので、被験者集団の分布が大きく外れることがなくなるわけですよね。
しかし、ご自身の研究サンプルが30例ほどであるならば、その30例でやっていいと思います。
corei7, 8GBで30人ぐらいでしたら、おそらく、Template作成自体は1例あたりの計算が10分程度と見積もって、300分ですから、5−6時間程度じゃないかと予想します。
以上、よろしくお願いします。
この度は、誠にありがとうございました。大変勉強になりました。感謝しております。
根本清貴先生
大阪大学の花家と申します。いつも先生の著作と研修会で勉強させていただいております。
私は現在、resting state fMRIのデータの解析に取り組んでおります。少しわからないことがあり、お尋ねしようと思いました。SPM12を使用しております。
データは複数の施設で得られたもので、患者群と定型群で群間比較を行い、connectivityの差を検証しようとしています。その際に、スキャナーの違いをcovariateに入れようと思うのですが、方法としては、性別などをcovariateに入れる方法と同じでよろしいのでしょうか?スキャナーごと(施設ごと)に1,2,3などの番号をつけ、それをカテゴリー変数として扱い、InteractionをNone、CenteringをNo centeringにするという方法でよろしいでしょうか?
VBMではありませんが、解析には共通点もありますし、SPM12を使用しておりますので、ご質問させていただきました。お忙しいところ、誠に申し訳ありませんが、何かご教授いただければ幸甚でございます。
よろしくお願い致します。
花家先生
はい、おっしゃるとおり、カテゴリー変数として扱うのが適切と思います。
ただ、1,2,3とするのではなく、デザインマトリクスに、スキャナー1、スキャナー2、スキャナー3 といった具合で列を作成し、
スキャナー1で3人、スキャナー2で2人、スキャナー3で4人撮影したとするならば、
1 0 0
1 0 0
1 0 0
0 1 0
0 1 0
0 0 1
0 0 1
0 0 1
0 0 1
という風に入れていっていただくのがよいと思います。
ダミー変数として扱うということですね。
以上、よろしくお願いします。
根本先生
お忙しいなか、早々のお返事ありがとうございました。
自分が勘違いしていたことに気付きました。感謝いたします。完全に理解できたかどうか少し不安なのですが、このサイトでは作ったデザインマトリクスを確認していただくことは可能でしょうか?
根本先生
お忙しいなか、お返事ありがとうございました。間違った解析をしてしまうところでした。大変勉強になりました。
ご教示していただいた内容をきちんと理解しているかどうか少し不安なのですが、こちらのサイトにおいて、作成したデザインマトリクスを確認して頂くことは可能でしょうか?
花家
はい、可能かと。Dropboxなどに画像をおいていただき、リンクを貼っていただければ、見ることができるかと思います。
根本先生
ありがとうございます。
早速ですが、デザインマトリクスを作ってみました。以下のリンクのところに画像をおきました。
https://dl.dropboxusercontent.com/s/boqvrrkg7tyuag5/Design.jpg
スキャナーは3つです。全体の人数は、P =26, C = 32です。各scannerの人数は
scanner1 : P = 4, C =4
scanner2 : P = 11, C = 18
scanner3 : P =11, C = 10 になります。
お時間があるときで構いませんので、どうぞよろしくお願い致します。
花家
花家先生
画像を拝見しました。
スキャナーのモデリングに関してはこれでOKです。
あとはその他の共変量を適宜いれてという形になりますね。
根本先生
画像の確認ありがとうございました。これで解析を進めることができます。今後ともどうぞよろしくお願いいたします。
花家先生
また何かありましたら書き込んでいただけたらと思います。
よろしくお願いします。
根本先生
いつもHP拝見させていただいています.
日本獣医生命科学大学大学院に所属しています濱本と申します.
医師でなく獣医師ではありますが
VBMに関して,ご質問させていただけたらと思い,
ご連絡させて頂きました.
現在,ネコを用いたVBM解析を行っていますが,
ネコのテンプレートがないため,作成を目指しています.
テンプレートの作成において,
AC-PC位置合わせ→それぞれの画像を平均化→平均化した画像に対して標準化する方法を考えているのですが,Realignおよびcoregisterは必要になるのでしょうか?
また,Realign: 機能画像同士,coregister: 機能画像と構造画像 の位置を合わせる作業の認識で正しいのでしょうか?
濱本先生
このブログには医師に限らず、様々な職種の方がいらしていますので、どうぞご質問ください。
ネコのテンプレートですが、サルのテンプレートをいかに作成したかという論文が以下に示されています。
http://www.sciencedirect.com/science/article/pii/S1053811908011762
こちらを参考にされたらよいのではないでしょうか。
そのうえで、ご質問に対する答えですが、
> AC-PC位置合わせ→それぞれの画像を平均化→平均化した画像に対して標準化する方法を考えているのですが,Realignおよびcoregisterは必要になるのでしょうか?
AC-PCの位置合わせをきちんとするのであれば、Realignとほぼ同じになると思いますので、不要かと思います。
Coregisterも不要と思います。
> また,Realign: 機能画像同士,coregister: 機能画像と構造画像 の位置を合わせる作業の認識で正しいのでしょうか?
だいたいあっています。正確には、
Realign: 同じモダリティの位置合わせ
Coregister: 異なるモダリティの位置合わせ
です。同じネコの構造画像を複数回撮影したとすると、私だったら、初回の画像をAC-PCをあわせた後、残りの画像をRealignで初回の画像にあわせることで、同様にAC-PC合わせをすることを考えます。
fMRIとMRIだったらcoregisterでお互いの位置合わせをすることを考えます。
そんな感じでいかがでしょうか。
根本先生
いつも大変お世話になっております.
日本獣医生命科学大学の濱本です.
お忙しい中,お返事誠にありがとうございます.大変勉強になりました.
また,論文まで教えていただき,大変感謝しております.
このたびは,本当にありがとうございます.改めてお礼申し上げます.
今後も先生のHP等で勉強させて頂きますので,よろしくお願い申し上げます.
濱本
濱本先生
論文をご覧になっていただくとわかりますが、テンプレートをSPMだけでつくろうとすると結構苦労すると思います。
適宜FSLを使った方が便利なところもありますので、そこは、ご自身のニーズにあわせて試してみてください。
根本先生
ご丁寧にありがとうございます.SPMと同時に現在FSLも同時に勉強中でございます.今後とも宜しくお願い致します.
濱本
瀬尾和秀です。
日々、先生のHP、著作には大変お世話になっております。脳画像解析とは関係ない質問で申し訳ないのですが、先生のHPにコメントを残し、その後確認しますと、承認待ちですと記された自分のコメントが表示される場合とコメントも含め何も表示されない場合があります。もしかして、コメントが表示されない場合はコメントがきちんと送れていないのでしょうか。その場合でしたら、先生がご教授してくださったことにお礼のお返事をすることができず、大変申し訳有りませんでした。気になってしまいまして、場違いかと思いますが、質問させていただきました。申し訳有りません。
瀬尾先生
このサイトのコメントは、スパム対策のために、承認制にしてあります。
先生の質問は、届いているものはすべて回答しているかと思います。
承認待ちもつかないようであれば、私に届いていない可能性があると思っていただき、再度投稿していただければ幸いです。
どうぞよろしくお願いします。
(追記:もしやと思ってスパムを確認したらいくつかスパムに判定されてしまっていました。解除しました)
根本先生
瀬尾です。度々の質問で恐縮ですが、maskingについてご教授していただけないでしょうか。現在、進行性核上性麻痺の方の画像解析を行っております。そこで、脳幹(特に中脳)を含めた全脳と脳幹を関心領域とした解析を行いたいと考えております。それに対応したマスクを作るにはどのような方法がありますでしょうか。お忙しいところ、大変恐縮ですが、宜しくお願い致します。
瀬尾先生
この場合、PickAtlasを使うのがいいと思います。PickAtlasには、MidbrainとPonsという関心領域があります。これで関心領域の設定ができるかと思います。
根本先生
瀬尾和秀です。ご教授してくださり、誠にありがとうございます。
PickAtlasを使うことで、関心領域の部分のマスク画像を作成できました。それをDARTELの出力結果と合わせ為のCoregister (Reslice)でImage Defining Spaceに指定するのはDARTELの出力結果の画像であれば、どの参加者の画像を用いても良いにでしょうか。また、関心領域の解析は先生の著作にあるのと同様に、統計モデル作成時にPickAtlasで作成したマスク画像を用いれば良いのでしょうか。お忙しいところ大変恐縮ですが、ご教授していただけないでしょうか。宜しくお願い致します。
すみません。こちらもスパム判定されていました。あとでコメントします。
根本先生
瀬尾和秀です。早速のお返事ありがとうございます。ご対応ありがとうございます。日々、先生のご教授してくださることを頼りに画像解析を行っております。感謝の念に堪えません。これからもどうぞ宜しくお願い致します。
瀬尾先生
> PickAtlasを使うことで、関心領域の部分のマスク画像を作成できました。それをDARTELの出力結果と合わせ為のCoregister (Reslice)でImage Defining Spaceに指定するのはDARTELの出力結果の画像であれば、どの参加者の画像を用いても良いにでしょうか。
はい、そのとおりです。皆、同じはずですから。
> また、関心領域の解析は先生の著作にあるのと同様に、統計モデル製作時にPickAtlasで作成したマスク画像を用いれば良いのでしょうか。
たしかに統計モデル作成時にマスクを指定する方法もありますね。
私は、ふだん、Resultのところで、マスクを指定しています。
Resultでコントラストを指定した後に、
“apply masking” というダイアログが出て、”none” “contrast” “image”という選択肢があります。
ここで、”image”を選んでください。
それで、マスクの中だけ解析したいのであれば、”inclusive”を選んでください。
それで大丈夫です。
根本先生
瀬尾和秀です。ご教授してくださり誠にありがとうございます。先生のご教授のおかげで自信を持ってマスクの制作をすることができました。ありがとうございました。もう一つ、教えていただきたいことがありまして、Resultでマスクを指定する場合には統計モデルでのmaskingの設定を先生がどのように設定なさっているか教えていただけないでしょうか。また、現在、私は統計モデル時にPickAtlasでつくった全脳のマスクを指定し、Resultで関心領域である中脳のマスクを指定する方法で解析をおこなってみました。結果としては満足のいく結果なのですがこのような方法でも良いのでしょうか。統計モデル時にPickAtlasのマスクを使用しているのはmaskingtoolboxのマスクですと、脳幹の大部分が消失してしまっているためです。お忙しいところ恐れ入りますが、ご教授していただければ幸いです。宜しくお願い致します。
瀬尾先生
先生が今やっている方法で全く問題ないです。
統計モデル作成時のMaskingをする理由は、後に全脳解析の際の多重比較をするボクセルを絞るためにあります。
なので、その時に関心のある領域が入っていないと、知りたいことも知れなくなってしまうので、PickAtlasで作ったマスクで問題ないです。
そして、なぜ、統計モデルの時は全脳マスクにしているかというと、そうしておけば、全脳の解析をしたい時にすぐにできるからです。
統計モデルの時点で、脳幹だけに絞ってしまうと、他の部位も解析したいときに解析できなくなってしまいます。
なので、統計モデルでは、全脳をカバーするマスクを用い、Resultで関心領域に絞るという方法を私はとっています。
このような感じでどうでしょうか?
根本先生
瀬尾和秀です。今回は色々とご教授してくださり、誠にありがとうございます。先生に教えていただいた手法を用いまして解析の方を進めていきたいと思います。本当に先生には日頃からお世話になっていて感謝の気持ちでいっぱいです。今後ともどうかよろしくお願い致します。今回は誠にありがとうございました。
根本先生
初めまして埼玉医科大学の瀬尾です。平素より先生の著作とHPには大変お世話になっております。この度、 主に使うOSをMACに変更して、解析を始めたのですが、SPMでSegmentをしたり、先生にご紹介いただいた半自動AC-PC補正プログラムを実行しますとMATLAB上に下記のようなエラーメッセージがズラーと出て止まらなくなってしまいます。お忙しいところ大変恐縮ですが、原因と対策についてご教授いただけないでしょうか。宜しくお願い致します。
以下がエラーメッセージの一部です。
‘/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData->/usr/lib/libmecabra.dylib->/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata->/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices->/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation->/Applications/MATLAB_R2017a.app/bin/maci64/libmwnativestrings.dylib->/Applications/MATLAB_R2017a.app/bin/maci64/libmwsettingscore.dylib->/Applications/MATLAB_R2017a.app/bin/maci64/libmwservices.dylib->/Applications/MATLAB_R2017a.app/bin/maci64/libmex.dylib->/Users/neurologypc/spm/spm12/@file_array/private/mat2file.mexmaci64’ で必要とされるシンボル ‘_open’ がありません
瀬尾先生
MacのMatlab R2017aは現行のSPMではmex-fileというものが互換性がなくエラーが出てしまうことが報告されています。
すでに解決策が提示されています。
http://www.fil.ion.ucl.ac.uk/spm/download/spm12_updates/spm12_mexmaci64.tar.gz
こちらをダウンロードしていただき、展開した後、SPM12のフォルダに上書きしていただけますか。
それで試していただけたらと思います。
よろしくお願いします。
根本先生
瀬尾です。ご教授していただき、まことにありがとうございます。先生に教えていただいたファイルの内容をSPM12のフォルダに上書きすることで、segmentは正常に動くようになりました。ありがとうございます。しかし、AC-PC補正プログラムを実行しますと下記のようなエラーメッセージが出てしまいます。度々の質問で大変恐縮ですが、ご教授していただけないでしょうか。宜しくお願い致します。
以下がエラーメッセージです。
関数または変数 ‘spm_affreg’ が未定義です。
エラー: auto_reorient (line 12)
[M,scal] = spm_affreg(vg,vf,flags);
すみません、これは、最新版のSPM12に spm_affreg.mというファイルが搭載されなくなったことが原因です。
SPM12対応の新しいAC-PC位置合わせスクリプトを公開しましたので、そちらをお試しいただけますか。
こちらをご参照ください。
http://www.nemotos.net/?p=1779
根本先生
瀬尾です。ご教授していただきまことにありがとうございます。先生に教えていただいたスクリプトを使用させてもらうことで、作業効率が格段に上がりました。ありがとうございました。先生の著作とHPにはいつも助けていただいております。今後ともどうか宜しくお願い致します。今回はありがとうございました。
無事に動作したようでよかったです。何かあったらまたご質問ください。
根本清貴先生 御机下
平素より大変お世話になっております。
何度も質問をして申し訳ございません。
flexible factorial designでgroupとtimeの交互作用をみた場合、先生のブログにあるzeros(1,2) zeros(1,3) [1 0 -1] [-1 0 1] zeros(1,11)ではgroup1 > group2となる領域をみていると解釈してよろしいのでしょうか。
清水先生
交互作用ですので、group1 > group2 ではないですね。
英語ですが、
https://www.socialresearchmethods.net/kb/expfact.php
こちらのサイトがとてもわかりやすいので、そちらでご確認いただけますか。
重ね重ねありがとうございます。
早速確認します。
根本清貴先生 御机下
平素より大変お世話になっております。
東広島医療センターの清水と申します。
お忙しいところ何度も何度も質問して大変申し訳ございません。
ある疾患に対して治療前後の変化を調べています。
ただ併存疾患の影響をどう補正すればいいかわかりません。
対応あるt検定で、共変量を入力して補正すればいいのか、
それとも併存疾患のあるグループ、ないグループにわけてそれぞれで対応あるt検定をするのが正しいのでしょうか。
治療内容は同じです。
本当に何もわかっていなくてすみません。
ご返事頂ければ幸いと存じます。
何卒よろしくお願い申し上げます。
清水先生
ご質問に対する答えとしては、先生がどのような仮説を立てているかによるかと思います。
併存疾患の影響が確実にあると考え、それを考慮するのならば、
今の場合、
併存疾患あり群
併存疾患なし群
の2つにわけて、前後比較になりますので、
flexible factorial designというものを使う必要があります。
paired t-testを2回というのは適切ではないと思います。
併存疾患が影響しないと考えるのであれば、
まとめてpaired t-testで大丈夫かと思います。
原則はそのような理解でよいのではないかと思います。
flexible factorial designに関しては、
http://www.nemotos.net/?p=759
にまとめています。例では3時点にしていますが、これを2時点で考えれば大丈夫です。
いつもありがとうございます。
本当にご迷惑をおかけしてばかりで申し訳ございません。
併存疾患の影響が大きいと考えておりますので、flexible factorial designを勉強させて頂きます。
本当に有難うございました。
根本先生
お忙しいところ失礼します。
名古屋大学の藤沢と申します。
SPMの多重回帰分析において、有意な脳の部位を特定できた場合も、散布図を書くと、外れ値があったりします。外れ値に対する処理として、Jackknife resamplingという方法があると聞きましたが、どのようにSPMでJackknife resamplingをするのかわかりません。もし、わかりましたら教えていただけませんでしょうか。よろしくお願いします。
藤沢
藤沢先生
SPMのデフォルトの機能でJackknife resamplingをできる方法はないと思います。
集団のデータを扱う限り、外れ値が出てくるのは自然なことだと思います。
外れ値に関して、まず、
・前処理が失敗しているのではないか?
ということを検討する必要があると思います。
前処理の失敗のせいならば、それは前処理がうまくいかなかっただけなので、統計からはずす必要があると思います。
前処理がきちんとできているにも関わらず、外れ値の場合には、その理由を考えないといけないわけですよね。
ジャックナイフ・リサンプリング法はMatlabのStatistics and Machine Learning Toolboxを使うとできるようです。
有意な領域の数値をとりだして、Matlab上で行うというのがいい方法ではないでしょうか。
ただ、先生の書いていらっしゃる「外れ値に対する処理」というのが何を目的としているのか教えていただけませんか?
そこが私はよくわかっていません…。
よろしくお願いします。
根本先生
迅速かつご丁寧なご返信、いつもありがとうございます。
実は今、論文をsubmit中なのですが、
(画像は専門外のため、苦戦しましたが、先生の本とこのサポートページにとても助けられました。本当にありがとうございます。)
レビュアーからの返事の中で、”The scatter plots presented in Figure 1 may include an outlier to mislead the correlation. I recommend authors to try Jackknife resampling.”という返事がありました。(この一文だけで、前後の文章を省いたりしていません。)
「外れ値に対する処理」とはこのレビューアーの返答に沿ったことをしたい、具体的には、「生値で外れ値をもつ画像を取り除いて解析すること」を意図していました。
Jackknife resampling法がわからなかったため「外れ値に対する処理」として、有意な領域(6つあります)の数値をとりだして、SPSSを用いて箱ひげ図を書き、外れ値と分析された生値をもつ画像だけを省いて、(それぞれ6つの有意領域において0-2個)解析しようとしています。先生がご教授くださったように、「有意な領域の数値をとりだして、ジャックナイフリサンプリング法をMatlab上で行う」ことが正しいのであれば、上記のような「全てのサンプルにおいて有意と特定されたそれぞれの領域の中で、生値が外れ値であるとSPSSにより分析された画像を取り除き、もう一度、解析を行う」という方法はあっているのでしょうか。長文になりすみません。よろしくお願いします。
藤沢
藤沢先生
Reviewerは、外れ値によってみかけの相関が出てるかもしれないから、それに対応しなさいということですね。
それであれば、Jackknife法にこだわる必要はないと思いますので、先生なりの方法で外れ値を除外してもきちんと相関がありますよということを示されてはいかがでしょうか。
先生が記載された方法は、一点を除いてressonableと私は思います。
ひとつ気になるのは、結果から外れ値を除外しているということです。
恣意的という批判を受ける可能性があると思います。
可能であれば、統計にかける前に、外れ値であるかどうか確認できないでしょうか?
たとえば、cat12に搭載されているcheck sample homogeneityなどを使うと、前処理をした画像から外れ値がある画像を見つけることができます。
それが、今回先生が除外したい画像になっていれば、一番美しいかなと思います。
そういう方法をとらないのであれば、きちんと
SPMでの結果の後に、数値を取りだし、プロットしたところ、外れ値が認められた。
これによって見せ掛けの相関が得られる可能性を考慮し、(先生の方法で)外れ値を除外した。
そのうえで、相関をみた
ときちんと書くことになるでしょうか。(前者がおすすめですが)
そんなことを思いました。
ありがとうございます。
実は、私も、自分の方法の中で、「結果から外れ値を外している」ということが気になっていたのです。(うまく言葉にしていただいてありがとうございます。)”cat12に搭載されているcheck sample homogeneity”とはどのような方法なのでしょうか。こちらに挑戦してみたいです。方法の掲載されたリンクなどありましたら、教えていただけませんでしょうか。よろしくお願いします。
藤本先生
http://dbm.neuro.uni-jena.de/cat12/CAT12-Manual.pdf
こちらの10ページに方法が書いてあります。
基本、VBMの前処理後画像に対して用意されたものですが、SPECT画像でもいけます。
試してみてはいかがでしょうか。
以上、よろしくお願いします。
平素より大変お世話になっております。
東広島医療センターの清水陽元と申します。
先日から何度も質問をしてしまって大変申し訳ございません。
対応あるt検定で共変量の入力はどのように行ったらよろしいのでしょうか。
例えば年齢でしたら、患者ごとに順番に同じ値を入力すればよろしいのでしょうか。
あと入力した共変量によって有意な領域がなくなった場合は、これは共変量の影響と考えてよろしいのでしょうか。
何もわからなくてすみません。
ご教示頂ければ幸いと存じます。
よろしくお願い申し上げます。
清水先生
ご質問ありがとうございます。
まず、対応のあるt検定の場合、年齢などの共変量はいれなくて多いことが圧倒的に多いです。
なぜならば、前後比較ですので、相殺されてしまうからです。
もう少し詳しく言うと、対応のあるt検定の帰無仮説は、「初回と2回目の値の差分はゼロである」となります。
実験計画において、初回目と2回めが皆1年間あいているのだとすると、初回と2回目の差分は、全員1となりますね。
なので、入れる意味がまったくなくなるわけです。
一方、何らかの変数が前後で人によってものすごく変わっていて、その影響を取り除きたいとします。
その際は、その値を入れますが、ご指摘のように、各被験者ごとにSubj1-1, Subj1-2, Subj2-1, Subj2-2というふうに入力することになります。
そして、その結果、有意な領域がなくなった場合には、それは共変量の影響と考えてよいかと思います。
このような感じでいかがでしょうか。
大変勉強になりました。
本当にありがとうございます。
根本先生
チュートリアルでは大変お世話になっております。
上武大学関口と申します。初歩的な質問で大変恐縮です。
自分のデータを用いて,「すぐできるVBM」のp.108の図5-64の下の作業,extent thresholdを0でリターンした後,Modalityの選択が出て(SPM12 ver.6685では出ませんでした。),PET, FMRI, EEGしか選べません。仕方なくFMRIを選択し,次に進みましたがそれでよいのでしょうか?
現在使用しているSPMのバージョンはSPM12のver.6906です。
お忙しいところ恐縮ですが,ご教示いただければ幸いです。
何卒よろしくお願い致します。
関口先生
ご質問ありがとうございます。
確かにご指摘の項目が増えましたよね。
私もまだ深く調べていませんが、VBMの場合は、PETと同じインターフェースですので、PETを選ぶのがよいと思います。
もう少し情報が得られたらblogにアップするようにします。
よろしくお願いします。
根本先生
お忙しいところ,早速のご回答ありがとうございます。
大変,助かります。では,ひとまずPETを選択して進めてみます。
あるいは,古いバージョンに戻せるならそっちでやった方が良いでしょうか・・・
今後とも何卒よろしくお願い致します。
戻す必要は特にないと思います。結果の再現性は確認していますので。
とりいそぎ。
承知いたしました。
ありがとうございます。
根本先生
すみません。お分かりでしたらお教えください。
先日,Modality選択において一度FMRIを選択して進んでしまったため,統計モデルの作成からやり直せば,またModalityの選択が出てくるかと思っていたのですが,出てきませんでした。
ModalityをPETに変更するには,どこからやり直すのか,またはメニューのどこかで変更できるのか,ご教示いただければ幸いです。
何卒よろしくお願い致します。
関口先生
出張中で返事が遅くなりました。
結論から言うと、心配なしです。
一昨日からいろいろ確認していたのですが、
私の環境で、Modalityの選択が出るときと出ない時があって、そのルールを探っていました。
そこで、気づきました。先生の投稿を見て、この推測はおそらく正しいと思いました。
先生がModalityの選択を迫られたのは、r6906以前に解析した結果を表示しようとした時ではなかったですか?
チュートリアルの時に山下先生が話していましたが、r6906から、NIDM形式へのエクスポートができるようになったりとresultまわりで若干の改良が加えられています。
そこで、おそらく前のバージョンとの整合性を保つための工夫がなされているのではないかと推測します。
なので、新たにした場合には、これまで通りですし、心配しなくていいと思います。
こんな感じでいかがでしょうか。
以上、よろしくお願いします。
r6906以前のSPMで解析していた場合
根本先生
お忙しい中ありがとうございます。
確かに途中まで以前のバージョンで解析していたものを別のPCに移動し,そのPCのバージョンを上げてから,Dartelの作成,NMI空間への標準化,相関解析の順に行いました。
先生ご指摘の「新たにした場合」と言うのが,「統計モデルの作成」以降を指すのであれば,今後何も気にせず,解析して行けば良いということでしょうか。
現在解析しているデータのどこかにModalityにおいてFMRIを選択したことによる影響が残存し,それが結果に影響する可能性があるとするとちょっと心配です。
根本清貴先生 御机下
平素より大変お世話になっております。
先日質問させていただいた清水陽元と申します。
また質問させていただきたいのですがご容赦下さい。
治療前後でのADCの値の差をVBMの手法を使って検討しています。
この場合統計は対応のあるt検定を使えばよろしいのでしょうか。
そうであれば対応のあるt検定はどのように行えばいいのかご教示いただけないでしょうか。
何度も質問してしまい申し訳ございません。
よろしくお願い申し上げます。
ご質問への答えですが、SPMにPaired t-testというモデルが用意されています。
こちらを使っていただければ、対応のあるt検定ができます。
ぜひ、試してみてください。
早速のご返事有難うございます。
試してみたのですが、ペアはペアの数だけひとつひとつ設定すればよろしいのでしょうか。
またResultのところは群間比較と同じ設定でよろしいのでしょうか。
その通りです。ペアの数だけ設定します。
また、コントラストもその通りで、前<後を知りたければ −1 1
前>後であれば 1 −1となります
ありがとうございます。
早速試してみます。
根本先生 御机下
最近VBMの勉強を始めたばかりのものです。
先生の著書で勉強させていただいております。
左半球だけ、もしくは右半球だけの画像をつくりたいのですがどのようにしたらよいかご教示いただけないでしょうか。
WFU PickAtlasをつかってmasking画像を作成してそれを利用すればいいのかと思っているのですが、そこからどちらかの半球だけの画像をつくることが上手くできません。
お忙しいところ恐れ入りますが、ご教示いただければ幸いと存じます。
清水先生
ご質問ありがとうございます。
片側だけですね。
解剖学的標準化が終わった画像に対してやりたいでしょうか?
それとも、標準化前の画像に対してでしょうか?
解剖学的標準化が終わった後ならばできますので、まず上記について教えていただけたらと思います。
早速ご返事いただきまして誠に有難うございます。
解剖学的標準化が終わった後です。
よろしくお願い申し上げます。
了解しました。
まず、PickAtlasで、Human Atlasを選択します。
そこで、
TD Hemispheresをダブルクリックします。
左半球だけ作るとしましょう。
Inter-Hemispheric
Left Brainstem
Left Cerebellum
Left Cerebrum
の4つをダブルクリックします。
そうすると、真ん中にある脳の左側が赤く塗りつぶされたと思います。
そうしたら、その下にある
Save Mask
をクリックしてください。
そうすると、今選んだものをマスク画像として保存できます。
適当に名前をつけて保存してください。
左半球なので、
Hemi_L.nii
とします。
そうしましたら、次に、SPMからImCalcを立ち上げてください。
Input imagesで”Specify…”をクリックして、
先ほど作ったHemi_L.niiと、ご自身で作った標準化が終わった画像を選択します。
Output Filenameは適宜名前を変えてください。
Output Directoryも適宜で大丈夫です。
Expressionですが、次のように入れてください。
i1.*i2
i1はInput imagesで最初に指定したファイル、i2は2番目に指定したファイルです。
Matlabでは、ドットの後に掛け算がくると、要素ごとの掛け算となります。
これによって、左半球マスク(0か1の画像)と標準化が終わった画像をボクセルごとにかけることになりますので、
値が1の左半球のところだけ残り、右半球は0になります。
これで実行していただくと、output filenameがついたファイルができるはずです。
以上、試してみて結果を教えていただけたらと思います。
早速試してみます。
有難うございます。
あともう一つお伺いしたいのですが、個人間で左右の大脳半球を病側、健側で比較することはできるのでしょうか(この場合左右はばらばらになります)。
差し支えなければご教示いただけると幸いです。
重ね重ねご迷惑をおかけいたしますが何卒よろしくお願い申し上げます。
清水先生
直接の答えではありませんが、lateralityを評価する手法が役立つかもしれません。
laterality VBMで検索していただけたらと思います。
「すぐにできるVBM」を片手に様々な画像解析に挑戦しています。
改めてこのような素晴らしい教科書を執筆してくださったことに御礼申し上げます。
今回、SPM解析の結果が表示される表(Statistics)について質問があります。
set-level, cluster-level, peak-levelのp-valueのところに0.000と表示されることがあるかと思います。
0.000は<0.001を意味するのでしょうか?それとも<0.0001を意味するのでしょうか?
ご教示いただければ幸いです。
よろしくお願い申し上げます。
どうもありがとうございます。
ご質問に関してですが、
SPMの結果で、値を知りたいところをクリックしてください。
そうすると、Matlabのコマンドウィンドウの中に実際の数値が表示されます。
たとえば
0.000
とあるところをクリックしたら、Matlab上に
0.0003
と表示されるような感じです。
ということで、質問に対する直接的な答えではありませんが、
より本質的なところを知ることができますので、確認してみてください。
よろしくお願いします。
早速のお返事ありがとうございました。
実際の値を見ることができました♪
今後も何かありましたらどうぞ宜しくお願いいたします。
無事に確認できたようでよかったです。
また何かありましたらご質問ください。
早速お返事とご指導有り難うございます。
失礼ですが、先生のメールアドレスをお教えいただけますか?
先生からお返事いただきました3時間後に、取り急ぎk-labからのメールに添付ファイル付きで返信したのですが、多分それではお読みになれないと存じますので。
一度私のメアドに空メール頂けましたら、3日前の返信メールを転送致します。
お手数おかけしますが宜しくお願いします。
根本先生
初めまして。東北大学の田中と申します。本やサイト等いつも勉強させていただいております。
VBMのtwo-way ANOVAについて質問です。疾患群と健常群について、薬剤介入試験で生理学的パラーメタ―に疾患群x薬剤群でinteractionがでました。その生理学的パラメーター調整に関連する局所脳をVBMを用いて求める方法を模索していおります。SPMの二元配置で、Factorに「疾患」「ランダムに割り付けた薬物投与」共変量に「生理学的スケール」として求める事は適していますでしょうか。不勉強な上でのご質問で恐縮ですが、ご意見頂けましたら幸いです。
田中先生
質問を拝見しました。
すみません、もう少し詳しく教えていただけますでしょうか。
まず、疾患群と健常群があるわけですね。
そして、薬剤介入をされているということですが、
この薬剤は疾患群、健常群、ともに使われているのでしょうか?
それとも、疾患群を2つにわけて、薬剤師用群と薬剤未使用群があるのでしょうか?
また、画像に関しては、2回撮影しているのでしょうか?健常者も2回撮影されていますか?
疾患群×薬剤群で交互作用があるとのことですが、薬剤群という言葉が急に出てきたのでわからなくなってしまいました。
もう少し教えていただけたらと思います。
なお、もし、介入前後での比較を見る場合には、一般的なANOVAではだめで、flexible factorial designを用いることが必要になってきます。
根本 清貴先生
京都大学の藤本と申します.
自分の研究対象の画像データを用いて、SPM12を「すぐできるVBM」に準拠して操作し,健常群15例vs疾患群13例の群間比較の解析を行おうとしているところです。無事前処理を終え、GM WM CSFの体積の算出などは先生のこのウェブサイトの力も借りて無事csvソフトで取得でき、被験者ID、年齢、性別などと同じエクセルファイルにコピペした上で、本のP72~80の「群間比較の統計モデルの作成」までは終了し、計画行列も表示されたのですが、その次の統計的推定(estimate)に進むと、下記のエラーメッセージが出てその先に進めなくなりました。
教室の複数の人にも見てもらいましたが打破できず、ここで質問させていただくこととしました。
何が原因か、どうしたらクリアできるのか、先生ならお分かりでしょうか?
各項目の入力は「すぐできるVBM」と全く同一でやっております。
お忙しい中とは存じますが、どうかお知恵を拝借したく存じます。
よろしくお願いいたします。
Running ‘Model estimation’
SPM12: spm_spm (v6842) 11:34:04 – 25/11/2016
========================================================================
SPM12: spm_est_non_sphericity (v6827) 11:34:05 – 25/11/2016
========================================================================
Failed ‘Model estimation’
存在しないフィールド ‘xVol’ を参照しています。
In file “/Users/psymacpro3/Documents/MATLAB/spm12/spm_est_non_sphericity.m” (v6827), function “spm_est_non_sphericity” at line 105.
In file “/Users/psymacpro3/Documents/MATLAB/spm12/spm_spm.m” (v6842), function “spm_spm” at line 431.
In file “/Users/psymacpro3/Documents/MATLAB/spm12/config/spm_run_fmri_est.m” (v5809), function “spm_run_fmri_est” at line 33.
The following modules did not run:
Failed: Model estimation
藤本先生
spm_run_fmri_est.mが呼び出されているのが気になります。(ふだん気にしていないので普通に呼び出されているのかもしれませんが)
いくつか教えてください。
1. SPMを起動する際、PET/VBMで起動されていますか?fMRIで起動されていますか?
2. Design matrixが具体的にどうなっているかお見せいただけたら嬉しいです。
3. Estimateする際は、「すぐできるVBM」と同じ設定という理解で大丈夫でしょうか?
「存在しないフィールドを参照」ということは、何か値が抜けてしまっているということなので、
具体的な設定内容を見ないとなんとも言えないかなと…
可能でしたら、Design matrixの内容を.mファイルに保存していただいて、メールでお送りいただければ何らかのヒントが見えるかもしれません。
藤本先生
先ほど、先生には直接メールをいたしましたが、皆の役に立つと思いますので、こちらにも書いておきます。
原因がわかりました。
最新版のSPM12(r6906)のspm_est_non_sphericity.mにあるバグで、explicit maskを指定するときに起きるものとのことです。
解決法がウェブで示されていました。
下記リンクに添付されているファイル(spm_est_non_sphericity.m)を、SPM12のフォルダで上書きしていただけますか。
それでもう一度やってみてください。
どうぞよろしくお願いします。
リソース:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=spm;2c0ae193.1611
根本先生
京都大学医学部の竹内と申します。この度本書を購入し参考にさせていただき画像解析を行っております。そのうえで、統計モデル作成の段階で質問があります。本書の中では、Global calculationでuserを指定しTBVを入力、そのうえでGlobal normalisationでANCOVAを指定する方法をお示しされていると思います。私はデータとしてamountを用いているのですが、ここでTBVを用いることは二重にTBVの影響を除去していることにならないのでしょうか?もしくは、Global calculationでomitを選択し、そのうえでGlobal normalizationでnoneを選択することでもTBVの影響を取り除くことができるのではないかと考えています。ただ、実際のデータでこの2つの方法を比較すると若干ですが結果が変わってしまいます。残念ながら、私がmodulationと体積情報をどの段階でどのように取り扱われているのかということをきちんと理解できていないことが原因だと考えております。このあたりのことについてご指導いただければ幸いです。ちなみにSPM12でVBM8を使用しております。よろしくお願いします。
竹内先生
ご質問に関して、まず、以下を再確認させてください。
Global calculation:これは、全体量の計算をどうするのかという設定です。User -> TBVとするのは、SPMに計算させるのではなく、自分で指定しているということになります。ここはTBVが常に最善というわけではありません。最近、私はICVを使うことが多いです。
Global normalization: ここで、Global calculationで設定した値を用いてどのようにデータの正規化をするかを設定します。
そして、質問になりますが、VBM8をお使いのことですが、amountデータをお使いということですが、modulationはVBM8のnon-linear onlyをお使いでしょうか。
もし、そうならば、TBVを指定することは、二重になってしまうので、Global calculationはomitでかまいません。
もし、modulationで、SPMと同様のmodulationを選ぶならば、TBVを指定する方法でかまいません。
SPMの従来のmodulationでのamountは脳の容積をそのままに保ちます。つまり、生値です。この場合、海馬の容積は全脳の大きさに影響されますので、全脳で補正する必要があります。
VBM8のnon-linear onlyでのmodulationによって作成されたamountの場合、全脳補正がすでに考慮されています。したがって、この場合、全脳補正は必要ありません。
私は数年前までVBM8のnon-linear onlyをよく使っていたのですが、最近の論文で(すみません、すぐに出典を示せません)、Non-linear onlyよりもふつうにSPM12でやった方がより適切な結果が出るという発表も出ているので、VBM8の最新版、CAT12では、non-linear onlyはデフォルトではなくなっています。ご存知かもしれませんが、一応ご参考まで。
根本先生
モデル作成のところにばかり気を取られて、肝心の前処理をどうしたかというところに気が回らず混乱していました。本書ではSPM12のmodulationで全脳体積補正を行っていないのでモデル作成時に全脳体積補正をするのであればなんらかの形で補正する、その方法の一つとしてTBVの例を挙げられているということですね。またVBM8ではmodulationの段階の設定で全脳体積補正をしていればモデル作成時に補正する必要はない、ということですね。
CAT12、機会があればチャレンジしようと思います。この度はご指導ありがとうございました。
竹内
竹内先生
まさにその通りです。今後ともよろしくお願いします。
根本清貴
根本先生
初めまして、埼玉医科大学の瀬尾です。
先生の著書とホームページで日々勉強させていただいています。
質問なのですが、VBMにて個人の経時的な変化をとらえる良い方法はないでしょうか。個人の加齢性変化を取り除く手段は先生が翻訳されたVBM8マニュアルを参考にさせて頂いたのですが、個人間のため、統計に乗らないようです。VBM、統計学に対して未熟者で申し訳ないのですが、何らかの方法をご教授していただければと思い質問させていただきました。宜しくお願い致します。
瀬尾先生
一個人のデータということでしょうか?
私ならば、健常者のデータを準備して、
タイムポイント1 vs 健常者データ
タイムポイント2 vs 健常者データ
タイムポイント3 vs 健常者データ
と複数回同じ健常者データに対してtwo sample t-testを行うことで、時系列変化を図示するかと思います。
1対多の方法は、下記に記載しています。
http://www.nemotos.net/?p=793
これは先生がやりたいことに近いでしょうか?
根本先生
さっそくのご返信ありがとうございます。
先生の仰るとおり、1個人のデータについての経時的な解析で、正常群との比較で時系列的変化を表すことができるのですが、もう少し直接的に個人間での比較で時系列的変化を表す方法はないでしょうか。それと、時系列的変化を表す時に、データの加齢性の変化を取り除きつつ、加齢性では説明できない萎縮の部位のみを表示する方法はないでしょうか。
宜しくお願い致します。
瀬尾
瀬尾先生
N=1という理解でよろしいでしょうか?(1個人のデータが3回あるなど)
もし、その場合、統計をかけることは不可能になります。分散が得られないので。
N=10だと、One-way ANOVA within subjectという形になります。
もし、1個人のデータを直接比較したい場合には、関心領域を決めて、その中の値を直接得て、
それがどう変わっていくかを検証することになるかと思います。
その場合、加齢性変化の影響を取り除くのは、1個人だけだとすみません、いいアイディアは思いつかないです。
もし、Nが多いのであれば、年齢補正は共変量で扱うことで可能ですが。
以上、よろしくおねがいします。
根本先生
ご返信ありがとうございます。
Nの数を増やして、先生の仰るようにOne-way ANOVA within subjectという形で行うと思うのですが、その場合のコントラスベクトルはどのようなものにすれば良いか教えていただけないでしょうか。
また、疑似的(1個人のデータを4倍にしてNを4にして統計にかけられるようにしてみました。)にNを増やしてFlexible factorial designで1群(Nは4で各個人に5時点のデータです。)の縦断的な統計解析を行ったのですが、有意な部位が全体に広がってしまい、全体量の正規化を行っていないためと考え、全体量の正規化を行ったところ、全体量の正規化を行うまえのコントラストベクトルではエラーになってしまいました。全体量の正規化を行った場合、コントラストベクトルを変えなければ、いけないのでしょうか。 そのことについても教えていただけると助かります。
度々ですみませんが、宜しくお願い致します。
瀬尾先生
コントラストベクトルは先生の仮説によります。
3時点あって、時系列に沿って容積が低下していくと仮定するならば、コントラストベクトルは [1 0 -1]となります。
5時点でしたら、私でしたら、[1 0.5 0 -0.5 -1]とするでしょうか。
縦断では、全体量の正規化は不要です。(全体量は同じはずなので)
VBMでのflexible factorialについては、以前、下記の記事でまとめていますので、ご参考にしていただけたらと思います。
http://www.nemotos.net/?p=759
根本先生
ご返信ありがとうございます。
One-way ANOVAという形で、コントラストベクトルは[1 0.5 0 -0.5 -1]で行ったところ、統計解析を行ったところ、結果は出たのですが、やはり加齢性変化による部分も含まれてしまったため、年齢補正は共変量を入力することで行いました。
コントラストベクトルを同様に[1 0.5 0 -0.5 -1]で行ったのですが、1 0.5 0 -0.5 -1 <- !invalid contrastとエラーになってしまいました。計画行列に共変量や全体量の補正を入れた場合はコントラストベクトルをどのように変化すればよいかご教授いただけないでしょうか。宜しくお願い致します。
瀬尾先生
One-way ANOVA within contrastでは、共変量を入れることはできないです。
時系列変化=加齢性変化ですので、加齢の影響を取り除きたいというのは、このモデルでは共変量に入れることではできないと思います。
flexible factorialでは共変量を入れることはできない(することが統計モデルに反する)というのが、SPM-MLで何度か話題にのぼっています。
ただ、ひとつだけ方法があるとするならば、Proportional scalingを使うことだと思います。
Global normalizationをANCOVAではなくProportionalにするわけです。ただ、その場合、Threshold maskingの値も変わりますので注意してください。
根本先生
ご返信ありがとうございます。
返信が遅くなってしまいまして申し訳ありません。
先生にご教授していただいた手段をもとに統計解析を行っていこうと思います。
今後とも先生のお力添えいただきますよう、宜しくお願い致します。
根本先生
いつもこのサイトを参考にさせていただいております.
1年前に質問させていただいた際にも,的確なご指導をいただきありがとうございました.
本日は2点質問させていただきたいことがあります.
①multiple regression analysisでcovariateを2つ以上組み入れる際のコントラストベクトルの立て方について
11/26の関先生の質問に関連して教えていただきたいことがあります.
いま,片頭痛でVBM研究を行っております.頭痛の重症度スケールと相関関係のある領域の解析をしております.年齢と頭痛重症度スケールに相関関係がないことは別の統計ソフトを用いて確認済みです.
そうはいっても,頭痛重症度スケールだけでなく年齢も共変数に入れた方がよいかと思ったのですが,その際のコントラストベクトルの立て方についてのご教授いただきたいことがあります.
multiple regressionでcovariateを頭痛重症度スケール,年齢の2つとして,頭痛重症度スケールとpositive correlationのある領域を解析するとします.この場合のコントラストベクトルは「0 1(頭痛重症度スケール) 0(年齢)」でよいのでしょうか?
「0 1 1」だと,頭痛重症度スケールとも年齢ともpositive correlationのある領域となり,「0 1 -1」だと頭痛重症度スケールとpositive,年齢とnegative correlationのある領域となってしまうという理解でよろしいでしょうか?
②concentration(density)で解析した場合と,amount(volume)で解析した場合の結果の違いについて
片頭痛を対象としてVBMを行った場合,amountで解析するとなかなか有意な領域が検出されない一方,concentrationで解析すると,いわゆるpain matrix(疼痛関連の疾患で密度・容積減少が多く報告されている領域です)が複数検出されてきます.amountはconcentrationに比べてより厳しい(感度が低い)解析であるという理解でよろしいでしょうか?頭痛疾患は他領域の疾患に比べて密度・容積の変化がより微小であるのか,amountではなかなか有意な結果が出しにくいです.amountでも解析できるようになった今日,concentrationで論文を書くのはありでしょうか?
もちろんこれについては片頭痛に関する過去の論文を参考にすべきだとは思うのですが,先生のご見解を聞かせていただければ幸いです.
すみません、返信が遅くなりました。
1) コントラストベクトル
>multiple regressionでcovariateを頭痛重症度スケール,年齢の2つとして,
> 頭痛重症度スケールとpositive correlationのある領域を解析するとします.
>この場合のコントラストベクトルは「0 1(頭痛重症度スケール) 0(年齢)」でよいのでしょうか?
その通りです。狭義の共変量(その影響を省きたい変数)に関しては、Design matrixには入れますが、コントラストを作成するときには、0にします。そうすると、一般線形モデルに共変量が考慮されますので、その影響を省いたうえでの、関心のある変数に対しての正しい相関を見ることができます。
> 「0 1 1」だと,頭痛重症度スケールとも年齢ともpositive correlationのある領域となり,
> 「0 1 -1」だと頭痛重症度スケールとpositive,年齢とnegative correlationのある領域となってしまうという理解でよろしいでしょうか?
理屈では、そう考えることもできますが、実際には、どちらがどの程度影響しているかとかは考えられなくなってしまいますよね。
なので、現実的には、そのようなコントラストベクトルは、意味がないということになってしまいます。
2) concentrationとamount
concentrationとamountの違いですが、amountで解析する方が多いです。
ただ、amountで解析する場合は、必ず、全体量の補正を行う必要があります。
(実は、concentrationに関しては、全脳容積の補正がされているような値になります。)
また、全体量として、全脳容積(GM+WM)を使うか、頭蓋内容積(GM+WM+ICV)を使うかでも結果は変わってきます。
もし、concentrationで結果が出るのでしたら、amountで、全脳容積もしくは、頭蓋内容積を全体量として、いれて、
解析されてはいかがでしょうか?もし、そうしていたら、全体量を違う方にしてみるのがひとつかと思います。
ちなみに、concentrationで書く人は少ないですが、きちんとrationaleをもっているのであれば、そういう論文もいくつかはあります。
以上、よろしくお願いします。
いつもご丁寧な回答をいただきありがとうございます.
よくわかりました.
全体量として頭蓋内容量も使えるというのは盲点でした.
この方法を試してみたいと思います.
根本清貴先生
以前にも質問させて頂いたことがあります関と申します。
身近にSPMやVBMに詳しい者がおらず、引き続き先生のご著書を片手に色々な解析に取り組んでおります。
本日は相関解析の際の共変量の扱いについて質問させて頂きたくコメントを書かせて頂きました。
病気の重症度を表す評価尺度(連続変数)と相関のある領域を調べたいと思っています。
その場合、全脳容積のみならず年齢(や性別)も共変量として入力したほうがいいのでしょうか?
もしこれらの変数を共変量として入力する場合、Design–Multiple regression–Covariatesの中のCavariateを増やして入力すべきなのでしょうか?それともMaskingの直上にありますCovariatesに入力すべきなのでしょうか?
前回に引き続き初歩的な質問で誠に申し訳ありません。
ご教示頂けますと幸いです。どうぞ宜しくお願い致します。
関先生
共変量の考え方の原則は、「それによって説明できない」ことを示すことにあります。
もし、病気の重症度が年齢と全く関係ないとはっきり言える状態であれば、年齢をいれる必要はないでしょう。
しかし、病気の重症度が加齢の影響を受けるのだとすれば、加齢の影響を考慮したうえで、重症度と関連のあるところを調べるという点で、年齢を共変量にいれることになります。
そして、SPMのどちらにいれるかですが、正直、どちらでも大丈夫です。これは、SPMの古いバージョンとの互換性を保つためとのことであり、どちらでも大丈夫です。GLMでは、どちらも同じように扱われていますので。
以上、よろしくお願いします。
根本清貴先生
早速のご回答、誠にありがとうございます。
とてもスッキリ致しました!
いかんせん初学者なもので、また初歩的なところでつまづいてしまうかもしれません。その際はまたどうぞ宜しくお願い致します。
根本 清貴先生
長崎大学大学院の中島と申します.
何度も質問させて頂き,また返事をして下さり誠にありがとうございます.
今回は,統計的推定と結果表示に関して質問させて頂ければと思います.
今,私は脳卒中後の運動麻痺の予後予測を研究しています.
先生の著書の相関解析と同様に麻痺側上肢機能と負の相関を示す領域を求めたいと考えています.
そこでご質問なんですが,先生の著書のP106~P108にかけての「年齢と負の相関を示す領域を
求める」のところで,最終的にコントラストベクトルが(0 -10)となるとあります.ここを理解することに
難渋しております.
このコントラクトベクトルの数値の持つ意味はどのようなものでしょうか?また,この数値は負の相関を見る際はすべて当てはまるのでしょうか?
ご多忙であると思いますが,ご教授頂ければ幸いです.
何卒,よろしくお願い致します.
中島 輝
中島先生
ここのコントラストベクトルは、[0 -10]ではなく、
[0 スペース -1 スペース 0]
です。
ひとつひとつの数値は、それぞれのβの係数になります。
正の相関を仮定する場合は、コントラストベクトルは、1となります。
負の相関を仮定する場合は、コントラストベクトルは、−1となります。
まずは、ここまでにしておきます。-10ではなく、-1であるとすると、理解は進みますでしょうか?
これでもひっかかることがあるようならば、また連絡いただけたらと思います。
根本 清貴先生
お忙しい中,お返事を頂き,ありがとうございます..
-10と勘違いしていました.お恥ずかしい限りです.申し訳ありません.
今後とも,ご相談させて頂くことがあると思いますが,何卒よろしくお願い致します.
この度は,誠にありがとうございました.
中島 輝
中島先生
コントラストベクトルは、表現方法が難しいです…。今後、フォントを変えるなどの工夫をして、
-1 0 と-10が違うということを明確にする必要がありますね。
ご質問、どうもありがとうございました。
根本清貴 先生
長崎大学大学院の中島 輝と申します.
これまでも何度もご質問にお答え頂き,誠にありがとうございます.
今回の質問はVBM解析とは関係が無く恐縮ですが,お答え頂ければ幸いです.
VBM解析を進めているのですが,コントロール群が必要となりました.
そこで先生へのご質問なんですが,
1)VBM解析を行う上で,コントロール群は必ず同じMRIの機械でないといけないでしょうか?
2)もし別の機械でも大きな問題がない場合は,先生の著書にも引用されている,The Center for Biomedical Research Excellenceよりコントロール群(健常者)を引用させて頂きたいと考えています.The Center for Biomedical Research Excellenceからの引用は学術論文へ投稿を行う際に問題はありますでしょうか?
大変ご多忙である中,このような質問をさせ頂き,誠に申し訳ありません.
お手数をおかけしますが,何卒よろしくお願い致します.
中島 輝
中島先生
コントロール群は、同じMRIの機械であることが望ましいです。
疾患群とコントロールが違うMRIだと、「MRIの違いのせいでは?」という問題が生じます。
また、COBREデータは、西洋人で、先生のデータはおそらく日本人でしょうから、そこでも、人種差の問題が出ます。
その点では、残念ながらCOBREデータを使用することはおすすめできません。
以上、よろしくお願いします。
根本清貴 先生
お忙しい中,返事を頂き,誠にありがとうございます.
私もコントロール群を確保することが出来るように努力して行きたいと思います.
この度は,誠にありがとうございました.
中島 輝
根本清貴 先生
国際医療福祉大学大学院の理学療法学領域修士課程1年の山口と申します。
初めて投稿させて頂きます。
現在、根本先生の著書の「すぐできるVBM」を参考にVBM解析を学び始めたところです。
まだ研究デザインを検討中の段階でありますが、分からないことが多く、基本的な内容かもしれませんが御教示頂ければ幸いです。
今回、急性期の脳梗塞患者における灰白質体積の変化を算出できないかと考えております。しかし、先生も御存知の通り、急性期脳梗塞においては梗塞巣周囲の浮腫を考慮しなければならないと考えております。そこで、VBMの中で浮腫を伴っている白質の部分がどのように処理されているか教えて頂けますでしょうか。
初歩的な内容で恐縮ですが、宜しくお願い申し上げます。
山口雄介
山口さん
ご質問、ありがとうございます。
初歩的な内容どころか、アドバンスドなご質問です。
すぐに答えることができませんので、数日時間をください。
よろしくお願いします。
根本先生
お忙しい中、返信頂きましてありがとうございます。
VBMの学習を進めながら、先生の御回答を心待ちにしております。
今後ともよろしくお願い申し上げます。
山口雄介
山口さん
改めていろいろ調べていますが、
質問に対する直接の返答としては、浮腫に対する白質の部分ですが、VBMでは、
・信号値
・事前確率マップ
の2つの情報をもとにSegmentationを行います。
VBMのアルゴリズムそのものは、浮腫の有無はわかりませんから、
浮腫の信号値は変わるものの事前確率マップがあることで、白質のボリュームが低めに出ることがあるかもしれません。
浮腫を起こしていても、Normalizationにより、浮腫の影響が排除される可能性はあると思います。
ただ、これは、いずれにしても、試してみないとわからないところです。
試しに1例、Segmentationして、どうなるか見てみたらどうでしょうか?
しっかりした答えができず、恐縮ですが、いろいろ調べてみましたが、このぐらいしか情報がないです。
よろしくお願いします。
根本先生
お忙しい中、いろいろと調べて頂きまして本当にありがとうございます。
私としてもsegmentationが適切に行われるかどうかがポイントであると思っておりまして、その点で梗塞領域をいかにするかで悩んでおりました。
私が知りたいのは運動野を含む大脳皮質の感覚運動関連領域の灰白質体積です。
梗塞部位に関しては、脳卒中に関するVBMの報告は少ないので、他の画像を元にした研究を参考にして、「放線冠(側脳室体部が最大径となるスライスレベルに梗塞巣が存在し、画像上白質に限局した)梗塞」はどうかと考えています。
根本先生の仰る梗塞部位より近いか遠いかでは、遠いということになると思われますがどうなのでしょうか。その違いによって、segmentationに大きく影響するのでしょうか。
現在の段階では、すぐに脳梗塞患者のMRI画像を処理することができませんので、可能となり次第、一度segmentationをしてみたいと思います。
日々御多忙のなかで、丁寧に説明していただき大変恐縮です。
引き続き、御指導の程よろしくお願い致します。
山口さん
白質に限局した梗塞を考えていらっしゃるのですね。
それならば、かなりいけると思います。
浮腫などはもちろんあるので、丁寧にアセスメントしなければいけませんが、
まず、segmentationして、灰白質がきちんとsegmentationされているか確認し、
白質の梗塞部位については、マスクして値を0にするという方法をとります。
(ここが工夫が必要なところなので、それはまた相談してください)
そのうえで、DARTELをしていけば問題なく前処理ができるかと思います。
一度、試してみて、また相談していただけたらと思います。
よろしくお願いします。
根本先生
大変心強い御意見をありがとうございます。
おかげさまでこれまでの自分の計画がかなり現実的になってきた気がします。
今後、取り組む中で問題も出てくると思いますので、引き続き相談させて頂きたいと思います。
よろしくお願い致します。
根本清貴 先生
神奈川県立こども医療センター放射線科の大和田と申します。
VBMに関しては初学者であり、先生の御高著を拝読しながら、VBMに奮闘しております。
自力では解決に至らず、もしかしたら非常に基本的なところでの問題かもしれませんが、どうかご教授願いたく、ご質問させていただきたいと思います。
現在満期相応の新生児の脳画像VBMを試みております。
tissue probability mapを LondonのImperial Collegeのwebから入手し、segmentationにあてはめようとしているところなのですが、デフォルトのTPMをそれ(NIFTIへ変換した上で)に置き換えて処理を行うと、多数の警告「 行列は、特異行列か特異行列に近い行列です。結果は不正確になる可能性があります。RCOND = NaN. 」が流れ、最終的には「SCHUR への入力は、NaN または Inf を含んではいけません。・・・」となり、処理を行うことができません。
なお、デフォルトのTPMをつかえば、不正確ながらもsegmentationの処理を完了することができます。
入手したTPMのフォーマットや設定が異なることによる演算過程のエラーだと推測はするのですが、それを修正する方法はございますでしょうか。
あまりMATLABに精通しているわけでもなく、細かい内部の計算を検証するには力が及びませんが、解決法がございましたらどうかご教授くださいますようお願い申し上げます。
うまく情報を伝えきっていないかもしませんが、追加で詳細なエラー情報や状況などについて、お伝えすべき部分がございましたら教えていただけたら幸いです。
宜しくお願いいたします。
大和田先生
先生が手に入れられたTPMはいくつの画像から構成されているでしょうか?
(GM, WM, CSFなど…)
MRIcronでTPMを開こうとすると、どんなメッセージが開かれるか教えていただけますか?
そこに何かわかるきっかけがあるかと思います。
根本清貴 先生
早速のご返事くださり、大変感謝申し上げます。
①TPMの種類:
cortex, wm(white matter), csf, brainstem, cerebellum, dgm(deep gray matter), brainmask, template_T1, template_T2の9種類です。
デフォルトのTPMとはおそらくデータ構造が異なり、デフォルトでは各構造ごとにseries1-6(というのでしょうか?)が割り当てられたファイルでしたが、入手したTPMは各構造でファイルがまとめられ、そのうえで新生児の週数(28-44週)ごとにseries1-17が割り当てられています。
TPMを指定するときには、各構造のファイルを指定した上で、満期相応のseries番号(つまり40週=series13)を指定していました。
②それに対応してか、いずれのファイルもMRIcronで開くと、初めに「”Integer required” Multi-volume file, please select volume to view [1..17]」と表示され、series番号を指定するとそれに対応した週数の新生児脳画像TPMが表示されます。
表示された画像そのものには問題がないように思われます。
お忙しいところ恐縮です。
なにとぞ宜しくお願いいたします。
大和田先生
よくわかりました。
SPMのTPMは、6種類から構成されていますが、gm, wm, csf, soft tissue, skull, air
から構成されています。
一方、先生が入手されたデータで、共通するのは、gm, wm, csfの3つですね。
この場合、SPM12のSegmentationを使うことはできません。
ただ、SPM12のold segmentationを使うとできるかと思います。
SPM12のold segmentationへのアクセス方法はおわかりになりますか?
根本清貴 先生
ご教示くださり、どうもありがとうございます。
調べてみながら進めてみたところ、old segmentへアクセスでき、手持ちのTPMを選択したところ、segmentationに成功いたしました!!!!
デフォルトでsegmentationの構造を指定されていたことを理解していなかったことが大きな間違いだったのですね・・。
行き詰っていたところを今日中に教えていただいたことで解決できるとは思いませんで、心より感謝申し上げます。
恐縮ですが、追加でもう一つご質問させていただいてもよろしいでしょうか。
old segmentを使っても、segmentationの部位はgm、wm、csfに限定されているようですが、ほかにも局所的なTPMを用いてbrainstemやdeep gray matterやcerebellumもできると思っていたのですが、それを行うには何か特殊な設定が必要なのでしょうか。
次回作業を進めるのは少し先になってしまいますので、お答えいただけたとしても検証が少し遅くなってしまうかもしれませんが、どうかまたご教示くださいますようお願い申し上げます。
また、新参者で厚かましいかもしれませんが、どうか今後も何度かご質問させていただくことをお許しいただけましたら大変ありがたく存じます。
本当にありがとうございました。
大和田先生
無事にできたようで何よりです。
追加の質問に対しての答えですが、現在、SPMで、部分的なSegmentationは基本的にはできないと思います。
私がやり方を知らないだけかもしれませんが、SPMのSegmentationはあくまでも灰白質と白質を分離することを目的としたものなので、
脳幹などはできないです。成人でも脳幹は一部がGM,一部がWMに分離されます。
そのためには、ほかのソフトを使う必要があると思います。
以上、よろしくお願いします。
根本清貴 先生
どうもありがとうございます。
おかげさまで、無理な探索をせずに済み、感謝申し上げます。
SPMで試行錯誤しながら、もう少し先行研究を検討して探索してゆきたいと思います。
今後ともよろしくお願いいたします。
大和田
根本 清貴先生
長崎大学大学院の中島と申します.
以前も先生にご質問させて頂いた者です.
今回はWFU PickAtlasに関してご質問があります.
私は脳卒中急性期のMRI画像を用いて研究を行っています.
WFU PickAtlasのIBSPM116を使用して,中心後回などの容積を測定しています.
その結果,中心後回では左(損傷側) 6.8161 右(非損傷側) 1.4890との結果が出ました.方法が間違っていないのかと思い,先生の著書のデータ(01_segment内の灰白質画像)を用いて行った所,左 7.1372 右6.9876との結果が出ました.
私のデータの左右差は急性期の為,脳浮腫などが影響しているのか?それとも,方法が間違っているのか?検討が付かずにご質問をさせて頂きました.
ご多忙な中,大変恐縮ですがご教授の程をよろしくお願い致します.
中島先生
返信が遅くなってすみません。
先生からみて、Segmentation画像(c1画像)は正しく、segmentationされていますでしょうか?
脳卒中があるような場合、Segmentationがうまくいかないことがあることはよく知られています。
なので、まずは、Segmentationがうまくいったかどうかを確認することが大事です。
その結果を教えていただけたらと思います。
根本 清貴先生
お忙しい中,質問にご返答を頂き,誠にありがとうございます.
無知な私の確認で恐縮ですが,Segmentationはうまくいっているのではないかと考えています.
中島先生
直接そのデータを見ていないのでなんとも言えませんが、Segmentationが視察でうまくいっているように見えるのであれば、
急性期による浮腫などの影響は十分に受けると思われます。
しかし、非損傷側の値がずいぶん小さそうなのが気になりますが…。
複数例を処理してみて、その結果を見るのが一番ではないでしょうか。
以上、よろしくお願いします。
根本 清貴先生
お忙しい中、誠にありがとうございます。
突拍子も無い、質問を致し、大変申し訳ありません。
私も非損傷側の値が非常に気になっております。
複数例、処理を行いながら検討していきたいと思います。
この度は誠にありがとうございました。
すみません、先ほどのメールに名前を書いていませんでした。
名古屋大学老年内科の藤沢と申します。
私も先生の本を読みながら、大学院の論文を作成している最中のものです。
自分なりに調べてみたのですが、わからないことがあり、質問させいただきたい次第です。
①多重回帰分析を行う際、covariateに、私は関心因子と、それ以外の調節したい年齢、性別の3つをいれて解析を行っています。その3因子の中で、関心因子と年齢は強い相関があります。関心因子と性別は相関がありません。その場合、3因子から年齢を除いた関心因子と性別の2つをcovariateにいれればよいのでしょうか。
②多重比較補正についてなのですが、結果をFDRで補正しようとしても、先生の本の中にあるように、whole brain のFDRpもFDRcもinfとなっていて、数字が出てきません。どのような意味なのでしょうか。。。
③論文によっては、uncorrected 0.001でも論文になっていますが、調べると割とすぐに、corrected以外の論文は、ほとんど意味がない、などと出てきます。uncorrected 0.001でも結果が興味深ければ、論文化しても通るものなのでしょうか。
教えていただければ幸いです。
お忙しいところすみません。
よろしくお願いします。
藤沢先生
私の考えでは、以下のようになります。
1. 年齢と関心因子が強い相関を示すならば、おっしゃるように、2つをcovariateにいれられたらいいと思います。そして、論文には、年齢と強く相関したいので…と書く必要があります。ただ、年齢と相関しているならば、「それは、年齢で説明できるということではないの?」というツッコミも来てしまいそうです。従って、それに対しては自分なりの説明ができるようにすることが大事かと思います。
2. FDRでInfになってしまう場合というのは、FDRで有意になる領域がないということになります。
3. 最近の傾向では、uncorrected p < 0.001では、論文としてアクセプトされない傾向にあります。もし、事前に仮説がしっかりある場合、その領域に絞って統計を行うことにより多重比較補正の結果が有意になることがあります。(これをsmall volume correctionといいます) ご参考まで。
重ね重ねありがとうございます。
勉強になります。
根本先生
いつも書籍を参考にさせて頂いてます。
京都大学の米田と申します。
F検定について質問させてください。
「すぐできるVBM」の「5.4 要因の分散分析」の項目では
Plot機能について紹介されています。
その際、コントラストに eye(4)-1/4 を入力されています。
一方、SPM12のマニュアルの「Face group fMRI data」を読むと
eye(4)でも良いように思いました。
「-1/4」があることで、一体どのような意味・違いがあるのでしょうか?
ご教授よろしくお願いします。
米田先生
ご質問、ありがとうございます。
eye(4)-1/4と、eye(4)で行ったプロットの違いを実際に見てみました。
eye(4)-1/4のコントラストで行ったプロットの結果はこちらになります。
一方、eye(4)のコントラストで行ったプロットの結果はこちらになります。
もともと、eye(n)-1/nは、VBMツールボックスのマニュアルにあった記載からもってきました。
説明は下記にもあります。
http://dbm.neuro.uni-jena.de/vbm/contrasts/
どちらを採用するかは、自分で決められたらいいと思います。
eye(n)-1/nの意味については、以下のようにとらえたらよいのではないかと思います。
eye(4)-1/4を、実際に行列に書いてみると、
0.75 -0.25 -0.25 -0.25
-0.25 0.75 -0.25 -0.25
-0.25 -0.25 0.75 -0.25
-0.25 -0.25 -0.25 0.75
この1行目をどう見るかというと、
A群、B群、C群、D群の4群があるときに、帰無仮説は
A群=(B群、C群、D群の平均)
書き直すと
A群 ー(B群、C群、D群の平均)=0
となります。
そして、これを満たすように重み付け係数x,yを考えると、
xA-y/3(B+C+D)=0
と表現することができます。
x-y/3=0をみたす解は、
3x-y=0
3x=y
となりますので、
x:y=1:3になるものであれば何でも大丈夫です。
これが第2行〜第4行まで同じことが言えます。
で、これを行列で表現しようとすると、
シンプルな方法として、単位行列を利用するとなり、
その結果、
eye(4)-1/4
となるわけです。
ブログのコメント欄だけで説明するのはなかなか簡単ではありませんが、
こんな感じでの説明で伝わりますでしょうか?
根本先生
解説ありがとうございます。
eye(n) と eye(n)-1/n は、
それぞれの条件の変化(プラスもマイナスも)を見ることを目的としているが
帰無仮説が異なるということでしょうか?
eye(n): baseline(他の条件の効果はゼロ)からの変化
eye(n)-1/n: 他の条件の平均からの変化
このような解釈では大雑把すぎるでしょうか?
米田
はい、それで大丈夫かと思います。
で、VBMの場合、横断研究の場合、「baselineからの変化」が意味がないことがありますので、
その場合は、eye(n)-1/nがよいかと思います。
以上、よろしくお願いします。
根本清貴先生
都内病院に勤務しております関と申します。
先生のご著書「すぐできるVBM」を片手に初めてのVBMに挑んでおります。
このような専門家の先生が集まるwebsiteにて私のような初学者が質問をしてしまってよいものか迷いましたが、勇気を出して質問を投稿させていただくことに致しました。
現在、MATLAB 7.8.0(R2009a)、SPM8を用いてVBMに挑んでおります。
・分割化について
先生のご著書によりますとTissuesのNum.GaussiansはTPM.nii,1とTPM.nii,2に関しましては1でよいとのことですが、VBMチュートリアル日本語版では同箇所がいずれも2になっております。1と2とどちらが良いのでしょうか?
また、私の環境ですと、分割化の方法がSPM→Spatial→SegmentとSPM→Tools→New Segmentationの二つがあるのですがどちらが優れているなどの優劣はございますでしょうか?
・白質部分について
ご著書の中では灰白質の比較を行っておりますが、同データを用いて白質の比較をしたいと思った場合はどのステップを変更すればよろしいのでしょうか?
DARTEL(テンプレートがないパターンでトライしております)のステップでしょうか?
それともMNI空間への標準化のステップでしょうか?
このような初歩的な質問で誠に恐縮ではございますが、お時間がございます時にご助言頂けましたら幸いに存じます。
どうぞ宜しくお願い申し上げます。
関先生
ご質問ありがとうございます。
このページは、あらゆる方が質問されているので、お気軽に質問していただけたらと思います。
以下、私の意見を述べさせていただきます。
・Num Gaussiansに関して
Num of Gaussiansは「組織分布をあらわす正規分布の数」です。灰白質のNum Gaussiansが2だとすると、灰白質の分布を2つの正規分布曲線であらわそうとするわけです。
それで、SPM8のNew Segmentでは、このデフォルトが2となっており、SPM12のSegmentでは、このデフォルトが1となっています。この値をひとつずつ変えた検討はしたことがないのですが、SPMの開発者がいろいろ調整してたどり着いている値なので、ここに関してはデフォルトのままで大丈夫かと思います。つまり、SPM8のNew Segmentでは2、SPM12では1で大丈夫ということです。どちらに優劣というのはないと考えます。
・分割化の方法
分割化に関しては、歴史的にSPM8のSegmentation→SPM8のNew Segmentation→SPM12のSegmentationの順に開発が進んでいます。
SPM8のSegmentationとNew Segmentationの違いはいくつかありますが、一番大きな違いは、TPM(組織確率画像)が従来のSegmentationはGM, WM, CSFの3つであるのに対して、New Segはその3つに加えて、軟部組織、頭蓋骨、その外の空気の3つを加えて6つになっているということです。これはさらにSPM12に受け継がれています。
開発者のAshburnerは繰り返しSPMのメーリングリストで、「SPM8のNew segmentationよりSPM12のSegmentationの方が精度が高くなっている」と述べています。
なので、もし、これからSegmentationを行うのでしたら、私はSPM12を用いることをおすすめします。
・白質のDARTEL
白質のDARTELをしたい場合、Run Dartel (create Templates)までは灰白質と同様の手順で行ってください。DARTELで作成されるflow fieldは灰白質にも白質にも用いることができます。
変更する必要があるのは、MNI空間への標準化です。
Normalise to MNI Spaceのところで、
Select according to…をMany Subjectsとして、
Flow fieldsは先に作られたFlow fieldを、
そして
Imagesのところに、白質画像(c2)を指定してください。
rc2でなく、c2画像を指定します。
modulationもpreserve amountとしてください。
これで、白質をDARTELを使って標準化することができます。
以上、試してみてください。
根本清貴先生
大変お忙しい中、早速のお返事誠にありがとうございます。
私のような者にもとても分かりやすくご説明して頂き、頭の中のもやもやがすごくすっきり致しました。
Normalise to MNI spaceを行う際は先生が著書の中でも強調されていましたように、rcではなくcを選ぶように気をつけたいと思います。
初学者のくせにものぐさな私はNormalise to MNI spaceのステップを灰白質・白質「同時に」行えないかな・・・などと思ってしまうのですが、Many Subjectsの中のImagesをDARTELを行った時のように2つにしてそれぞれ灰白質(c1)、白質(c2)を指定しまってもよろしいのでしょうか?
度々のご質問で誠に申し訳ございません。
関先生
おっしゃるとおりです。
灰白質と白質を指定していただければ、同時に標準化できます。
試してみて下さい。
根本清貴先生
度々の投稿、誠に申し訳ございません。
一点とても基本的なことでお聞きし忘れてしまっていることがございました。
ご著書の第5章では142例のデータが健常群と統合失調症群に分けられております。一方、それまでの章では142例が一塊で扱われております。
前処理の段階では全体が何群に分けられる集団だとしても「各群それぞれ別個」にDARTEL、MNI空間への標準化を行うのではなくまとめて行い、出来上がってきたsmwファイルを各群に分けて統計解析に回すと考えてよろしいのでしょうか。
先生のご親切に甘え、矢継ぎ早に大変初歩的な質問をしてしまい申し訳ございません。
関先生
DARTELのテンプレートを作る目的は、「自分の研究の対象者にもっとも適したテンプレートを作成する」ことにあります。
このため、テンプレート作成時は、対象となる画像を【すべて】いれることになります。
テンプレートが何個も作られると、そのテンプレートが微妙に変わってきますので、
標準化された画像が微妙に変わってきて、その結果、系統的な差異がうまれてくることになります。
ということで、前処理は、すべてをひとつにしてテンプレートを作成し、
統計解析は、各群にわけてやるようにしてください。
根本清貴先生
大変初歩的な質問にも関わらず、大変丁寧にお返事頂きまして誠にありがとうございます。頭の中にうずまいておりましたモヤモヤがすっきり致しました。
これでまた画像解析の大海原に漕ぎ出していけそうです。
この度は誠にありがとうございました。
根本先生
滋賀県立大学四回生の唐と申します。VBM法を用いて脳梁に関する卒論を書いております。
高著を拝読して、現在手持ちのデータでDARTELを終えたところです。
まだまだ経験が浅く理解が及ばない部分も多い為、アドバイスを頂きたく投稿致しました。脳領域の一部(例えば、脳梁の中のmidbody部)を抽出し、体積を比較することはVBMで可能でしょうか。
ご多忙の中誠に恐縮ですが、ご教示頂きますようお願い申し上げます。
唐さん
はい、可能です。
そのために、まず、標準脳空間での、脳梁のMidbody部の関心領域を作成する必要があります。
また、DartelでNormalize to MNI spaceにするときに、Smoothingのパラメーターを[0 0 0]にする必要があります。
そうすると、mwrc1*.niiという画像ができると思います。
これを入力画像に使います。
具体的な方法は、
http://www.nemotos.net/?p=200
に書いてあります。
関心領域はすでに決められたものがありますか?
ご多忙の中質問にお答え頂き、誠にありがとうございます。
ROIは、運動前野、補足運動野、吻側体、中央体前部、一次運動野、中央体後部、一次体性感覚野を想定しております。
ご提示頂いた方法を試してみたいと思います。結果につきましては後ほどご報告させて頂きます。
根本先生
以前アドバイスを頂きました唐を申します。
おかげさまで無事に卒論が完成致しました、心より御礼申し上げます。
ありがとうございました。
唐 瓏
唐さん
無事に卒論ができたとご報告いただき、ありがとうございます。
少しはお役にたてたようでよかったです。
根本 清貴先生
長崎大学大学院の中島です.
再度,アドバイスを頂き,誠にありがとうございます.
アドバイスを受け,ファイル名のパスを変更したところ,分割化を行うことが出来ました.
私は,ファイル名に日本語や空白が入っていたことが原因であった模様です.
先生の著書に記載されているやり方でも行うことが出来ました.
この度は,何度も質問に答えて頂き,誠にありがとうございました.
これからも画像解析を用いた研究に精進して行きたいと思います.
今後も解析を行う上で,質問させて頂くことがあるかと思いますが,何卒よろしくお願い致します.
この度は,誠にありがとうございました.
中島 輝
中島先生
この前のエラーから想定したように、日本語名や空白の問題だったのですね。
私にとってもいい勉強になりました。
今後も何かありましたらご質問いただけたらと思います。
根本 清貴先生
長崎大学大学院の中島です
使用しているパソコンではバックアップソフトは動いていませんでした
ご多忙な中,何度も申し訳ありません。
中島 輝
中島先生
そうでしたか…。何が原因か、もう少しつきつめる必要がありますね。
MRIを1例だけでもデータのやりとりを行うことは可能でしょうか?
NIfTI画像がひとつだけあればいいのですが…。
中島先生
もうひとつの方法を思いつきました。以下を試していただけますでしょうか。
このデータを用いてSegmentationを試していただけますか。これでOut of Memory問題が出ないようであれば、やはり、入力画像が大きすぎたということになります。
その場合、解決方法は、以前にも申したように、64bitマシンで、メモリをできるだけ多く(最低8GB以上)積むということになります。
これを試してみて結果を教えていただけますか。よろしくお願いします。
根本 清貴先生
長崎大学大学院の中島です
お忙しい中、アドバイスを頂き、誠にありがとうございます。
現在、恥かしながら体調不良で研究室に行くことが出来ていません。
来週、ご提示して頂いた方法を試したいと思います。
ご多忙な中、誠にありがとうございました。
中島 輝
中島先生
どうぞお大事にされてください。
また、試してから結果を教えていただけたらと思います。
根本 清貴先生
平素より大変お世話になっております.
長崎大学大学院の中島 輝です.
先生にご提示して頂いた方法を試してみました.
結果,エラーとなりMatlab上には下記のメッセージが表示されました
Failed ‘Coregister: Reslice’
エラー mat2file
Cant get ‘fname’.
In file “C:\spm\spm12\@file_array\subsasgn.m” (v6157), function “subfun” at line 158.
In file “C:\spm\spm12\@file_array\subsasgn.m” (v6157), function “subsasgn” at line 85.
In file “C:\spm\spm12\spm_write_plane.m” (v6079), function “spm_write_plane” at line 31.
In file “C:\spm\spm12\spm_write_vol.m” (v5731), function “spm_write_vol” at line 84.
In file “C:\spm\spm12\spm_reslice.m” (v5929), function “reslice_images” at line 244.
In file “C:\spm\spm12\spm_reslice.m” (v5929), function “spm_reslice” at line 133.
In file “C:\spm\spm12\config\spm_run_coreg.m” (v5956), function “spm_run_coreg” at line 45.
The following modules did not run:
Failed: Coregister: Reslice
尚,パソコンのメモリも8GBから16GBに変更致しました.
何度も方法を教えて頂いているにも関わらず,失敗し大変申し訳ありません.
ご多忙であると存じますが,ご教示の程をよろしくお願い致します.
中島先生
幅広いところに影響が出ているエラーですね。
ひとつひとつ確認させてください。
1. すぐできるVBMについているサンプルデータでは、問題なく処理できるわけですね?念の為にもう一度試していただけますか?
Segmentationだけでなく、今やってもらっているCoregisterも試してみてください。
これが問題なくできるようであれば、SPMのせいではないということになります。
2. ファイルが保存されているパスに、日本語名や空白は入っていないでしょうか?
よろしければ、画像ファイルが置いてある絶対パス(C:\img_data\…のようなものです)をお示しいただけますか?
以上、2点について教えていただけたらと思います。
よろしくお願いします。
根本 清貴先生
長崎大学大学院の中島です.
お忙しい中,何度もありがとうございます.
バックアップソフトが動いていないかは今から確かめたいと思います.
尚,私が用いているMatlabのバージョンは,MATLAB R2012bです.
ご多忙な中,何度も質問に答えて頂き,誠にありがとうございます.
中島 輝
根本 清貴先生
何度も申し訳ありません.長崎大学大学院の中島です.
システムが64ビットオペレーティングシステムでも同様のエラーメッセージが表示されました.
やはり,SPM12が正式版でないことが問題でしょうか?
尚,先生の著書に付属されているデータでは,問題なく解析は可能でした.
ご多忙な中,恐縮ですがご教示の程をよろしくお願い致します.
中島 輝
根本 清貴先生
長崎大学大学院の中島です.
ご多忙な中、質問に答えていただき、ありがとうございます.
先生の指摘のとおり、Nifti画像のファイルサイズは70MB以上あります.
中島 輝
中島先生
やはりそうですか。
Matlabがエラーを起こす原因は、Segmentationをするための画像を読み込む際に、
画像が大きすぎるために、メモリが不足してしまうことによります。
となると、方法は2つです。
1. パソコンのメモリを増やす
64bitのWindowsのメモリを8GB以上にしていただくと、エラーを起こす可能性がぐっと減ります。
2. 画像のダウンサイズを行う
おそらく、先生のお持ちの画像のボクセルサイズは0.5mm x 0.5mm x 0.5mm程度と推測します。
VBMはボクセルサイズは1mm程度で十分です。
このために、画像のサイズを小さくすることを検討してみてもいいと思います。
これはメモリを追加購入しなくていい解決方法です。
下記のリンクを右クリックして、resize_img.mをSPMのフォルダに保存してください。
http://www0.cs.ucl.ac.uk/staff/G.Ridgway/vbm/resize_img.m
そして、Matlabから
resize_img
とタイプします。そうすると、画像を選択するウィンドウが出ますので、ためしにひとつ選んでください。
その後、Vox dim?と出てきますので、そこで [1 1 1] と指定してください。1mm x 1mm x 1mmにするという意味です。
Bounding boxはデフォルトのまま ([Nan Nan Nan] というようになっているはずです)で結構です。
(今、SPMが近くにない環境でこの返信を書いていますので、記憶によって書いていますので、多少違うかもしれません)
そうすると、選択した画像に接頭辞にrがついた画像ができるはずです。これはボクセルサイズが1x1x1で、ファイルサイズが30MB程度になっているかと思います。
これをSegmentationにかけてみてエラーが出るかどうかご確認いただけますでしょうか。
もし、出ないようならば、画像全例に対してresize_imgでサイズを落として、前処理を行っていただけたらと思います。
これを試した結果を教えていただけたらと思います。
よろしくお願いします。
根本 清貴先生
長崎大学大学院の中島です.
お忙しい中,質問にお答え頂き,誠にありがとうございます.
先生が提示して頂いた方法をさっそく試してみたいと思います.
結果を後ほどお伝えいたします.
誠にありがとうございました.
中島 輝
根本 清貴先生
長崎大学大学院の中島です.
先生に教えて頂いた方法を試してみました.
結果,エラーになりMATLAB上には下記のメッセージが表示されました.
>> resize_img
エラー mat2file
Cant get ‘fname’.
エラーの発生場所 file_array/subsasgn>subfun (line 158)
mat2file(sobj,dat,va{:});
エラーの発生場所 file_array/subsasgn (line 85)
subfun(sobj,double(dat),args{:});
エラーの発生場所 spm_write_plane (line 31)
V.private.dat = subsasgn(V.private.dat,S,dat);
エラーの発生場所 resize_img (line 109)
spm_write_plane(VO, img, i);
また,私の画像ですが,MRIcronで処理した際に水平断と冠状断の画像が少し押しつぶされています.Displayで見ることが出来るので問題ないと解釈していたのですが,そこも影響あるのでしょうか?
ご多忙な中,何度も申し訳ありませんが,ご教示の程をお願い出来ればと思います.
中島 輝
中島先生
私もSPM12でresize_img.mを試してみました。
その結果、エラーが出ずに、問題なく処理出来ました。
Googleでerror mat2fileで調べてみたところ、下記のページに行き当たりました。
https://www.jiscmail.ac.uk/cgi-bin/wa.exe?A2=spm;14306976.1102
ここには、
This has to do with the backup process that runs on your PC. Disable
it (from the toolbar tray) before doing SPM analysis.
と書いてあります。
何かバックアップソフトが動いていませんでしょうか?
また、次のようなページも見つけました。
https://groups.google.com/forum/#!msg/comp.soft-sys.matlab/mLaCV2uHpCg/HzXMfqGipH4J
I actually had the same error (using Matlab 2011b), and I got around it by using a newer version of Matlab (2012a). You may want to try this.
先生がお使いのMatlabのバージョンは何でしょうか?
根本 清貴先生
長崎大学大学院医歯薬学総合研究科の中島と申します.作業療法士をしています.
現在,先生の著書「すぐできるVBM」を読ませて頂き,画像データの解析を行おうとしている所です.
まだまだ解析の序盤ではあるのですが,分割化がうまく行かずにエラー表示になります.
理解できる範囲で修正を試みたのですが,上手く行かない次第です.
尚,MRIはSIGNA EXCITE HD 1.5T(GE横河)を用いて,3D T1 SPGRで撮影をしています.
その後,MRIConvertを用いてNlfTlに変換しています.
ご多忙であると存じますが,ご都合よろしければ,先生にご教示頂ければ幸いです.
中島 輝
ご質問、ありがとうございます。
以下のことを教えていただけますか?
1. 画像のAC-PCの位置合わせは行なっていらっしゃいますか?
2. SPMのDisplayで、画像はきちんと表示されますか?
3. 具体的にはどのようなエラーが出ますか?Matlabのウィンドウに、エラーメッセージが出力されますので、それをそのままコピペで貼りつけていただけますか?
これで原因がつかめると思います。よろしくお願いします。
根本 清貴先生
長崎大学大学院の中島です.
ご多忙な中,質問に答えて頂き,ありがとうございます.
先生の質問に答えさせて頂きます.
1:AC-PCの位置づけは行っています.
2:Displayで画像の確認を行うことはできます.
3:Matlabのウィンドウに表示されるエラーを下記に記載いたします.
Running ‘Segment’
Failed ‘Segment’
エラー zeros
メモリが足りません。オプションについては、HELP MEMORY と入力してください。
In file “C:\spm\spm12b\spm_preproc_write8.m” (v6008), function “spm_preproc_write8” at line 144.
In file “C:\spm\spm12b\spm_preproc_run.m” (v5886), function “run_job” at line 135.
In file “C:\spm\spm12b\spm_preproc_run.m” (v5886), function “spm_preproc_run” at line 35.
In file “C:\spm\spm12b\config\spm_cfg_preproc8.m” (v5652), function “spm_local_preproc_run” at line 399.
The following modules did not run:
Failed: Segment
ご多忙である中,恐縮ですが,ご教示の程をよろしくお願い致します.
中島 輝
中島先生
エラーを見たら、可能性がいくつか見えてきました。
1. SPM12は正式版が公開されました。SPM12bではなく、SPM12を改めて入手していただけますか?
2. メモリーが足りないというエラーは、Windowsの32ビット版でよくみられる症状です。
先生のお使いのWindowsのバージョンを確認していただけますか?
3. MatlabはStudentバージョンなどをお使いでしょうか?MatlabのStudentバージョンは32bit版なので、もし、その場合、また方法を考える必要がありそうです。
以上、上記3つに関してご確認いただけますか。よろしくお願いします。
根本 清貴先生
長崎大学大学院の中島です.
お忙しい中,丁寧な解説をして頂き,ありがとうございます.
1:SPM12は改めて入手致します.
2:Windowsのバージョンは,Windows 7 Professionalです.
実装メモリ:4.00GB
システム:32ビットオペレーティングシステムでした.
上記のシステムでは難しいのでしょうか?
3: MatlabはStudentバージョンではありませんでした.
ご多忙な中,恐縮ですがご教示をよろしくお願い致します.
中島 輝
中島先生
64bitのWindowsでも同様のエラーが出たのですね。
SPM12の正式版にすることで、問題が解決できる可能性もありますが、
もうひとつ、可能性として、先生が解析するデータが大きすぎる可能性があります。
Nifti画像のファイルサイズがどのくらいか教えていただけますか?
予想するに、70MB程度ありませんでしょうか?
根本先生
いつもお世話になっております。東京大学の小池です。
先日UCLのSPMセミナーに参加してまいりました。今年度は正式版SPM12を用いての講義となりました。その中で、SPM12正式版から、Atlas mappingが実装されたようで、内部の人は気に行っていました。
結果左下ウインドウのAtlasで、好きなAtlasを選択し、右下ウインドウのXYZ軸数値を右クリックすると、その部位における対応脳部位の確率分布が表示されるようです。
https://drive.google.com/file/d/0B4HajTRaq0hSV3pPSjhIOXpHRGM/view?usp=sharing
先生の御本では紹介されておらず、正式版になって掲載されたのではないかと思いましたので、ご連絡いたしました。
今後ともどうぞよろしくお願いいたします。
小池
小池先生
有用な情報をどうもありがとうございます!
SPM12の正式版からAtlasが実装されたことは気づいていたのですが、
結果から使えるようになっているのはとても便利ですね。
早速試してみて、ブログにも反映させていただきます。
今後ともよろしくお願いいたします。
根本先生
何度も恐れ入ります。札幌医科大学の篠崎です。
VBMにて、2群間に差のある領域が出たのですが、この領域の体積を個人ごとに出す方法がありましたらお教えいただきたく、お願い致します。
篠崎先生
体積を出す方法は、いくつかあるのですが、
先生は、共変量などを考慮した値を出力したいですか、
それとも、純粋に体積を求めたいですか?
それによって方法が変わりますので、どちらを知りたいか、あるいはどちらも知りたいか、教えていただけたらと思います。
よろしくお願いします。
根本先生
篠崎です。
ご返信ありがとうございます。私自身は純粋に体積を求めたいのですが、
せっかくの機会ですので、両方を知りたいです。
よろしくお願い申し上げます。
了解です。まとめてブログにアップしますので、少しお待ちください。
篠崎先生
ブログにまとめると言いましたが、時間が今はすぐにとれないので、
とりあえず、先生が知りたい方法をお伝えします。
SPMで結果を出した後、関心のある領域に赤矢印を移動します。
その後、左下のウィンドウのsave… から、 current clusterを選択します。
すると、Output filenameと聞かれますので、ファイル名を入力します。
これで、関心領域がマスク画像となって、保存されます。
これはDartelと同じサイズになっているはずです。
その後は、
http://www.nemotos.net/?p=292
に書いてある方法で、計算します。
つまり、get_totals.mを入手していただき、
get_totals([],[],[])
として、最初に出てくるダイアログに画像を、
次に出てくるダイアログで先程保存したマスク画像を指定します。
これで、関心領域内の個々の体積を求めることができます。
これで試してみてわからなかったらまた聞いていただけたらと思います。
根本先生
篠崎です。
お忙しいところありがとうございます。
試してみます。
根本先生
篠崎です。
画像を選択するところでは、「すぐできるVBM」で言うところの’rc1’画像を選択すべきでしょうか。
マスク画像は標準化されていますので、
smwrc1を使っていただけますか。
よろしくお願いします。
根本先生
ありがとうございます。無事出力できましたが、これの単位は何でしょうか?
当該ROIのVolumeをMarsBaRにて確認しますと、
597.38 mm
ですが、get_totalsが出力する値は、被験者によって異なりますが
0.2764
などの値です。
度々恐れ入りますが、よろしくお願いいたします。
篠崎先生
get_totalsの単位はmlとなります。
1ml=1cm3=1000mm3となります。
おそらく、MarsBarで出た597.38は597.38mm3ということですから、0.59738mlということになるかと思います。
そうしたら、0.2764という値は妥当な値であるという気がします。
根本先生
ありがとうございました。
納得いたしました。
篠崎 淳
画像のゆがみの件ですが,slice spacingとslice thicknessを1.0mmに統一することで解決できました.
技師に確認したところ,slice spacing 0.7mm, slice thickness 1.4mmとなっていたのは,実際には0.7mmスライスで撮影し,最終的にPACSに乗せる画像の枚数を抑えるために2スライスを1枚に合成していたということでした.先生にご指摘いただいた通りですね.
他の先生方に多少とも参考になればと思い報告させていただきました.
ご丁寧にどうもありがとうございます。
推測があたっていてよかったです。
こういうのはいろんなところで起こりえる話なので、
このように共有していただけると助かります。
技師さんもVBMをはじめとした画像解析の際の注意点を理解していただけたのではないでしょうか。
今後共よろしくおねがいします。
SPMでもDICOM→NIfTI変換を行ってみましたが,やはり同様にゆがんでしまいました.
MRIcronのWindows→Informationで確認すると,ほかの方法と同様,I SpaceのSpacingが0.7mmと表示されていました.
先生がおっしゃるようにslice spacingとslice thicknessの値が異なるのが根本的な問題なのかもしれませんね.
なおLONI Debabelerも試してみようとしたのですが,なぜかrunのバッチファイルが起動できませんでした.
いずれLONI Debabelerでも試せるようであれば,結果を報告させていただきます.
根本先生
いつも興味深く拝見させていただいております.
大学病院で神経内科医をしております.
頭痛患者でVBM研究を始めたばかりの初心者なのですが,早速壁にぶつかっておりアドバイスをいただければと思い投稿させていただきました.
DICOMをNIFTIに変換してMRIcronで表示した際,水平断と冠状断の画像が横に押しつぶされたような形で表示されます(元画像として利用した矢状断は通常のバランスで表示されます).MRIはGE社で3D(T1sag)FSPGRという撮影モードで記録しています.
MRIconvertでSeries infoを見ると以下のように記載されています.
Slice thickness (mm): 1.4
Slice spacing (mm): 0.699999
・
・
・
Voxel size x (mm): 0.4688
Voxel size y (mm): 0.4688
水平断・冠状断で上下左右の比率が正しく表示されないのは等方voxelではないからなのでしょうか?(Series infoを見ると,voxel sizeはX × Y × Z=0.4688 × 0.4688 × 0.699999と理解してよいでしょうか?)
MRIcroでは等方voxelではなく画像が歪んだ場合は,表示方法をSquare modeからStretch modeに変更すれば良いという記載も見つけたのですが,MRIcronの場合にどうすればよいかがわかりません.
MRIcronで歪んで表示された画像を修正表示する方法があるのか?,もしくはMRIcronで歪んで表示されていても統計解析では正しい結果が出せるのか?,そもそもMRIの撮影条件(voxel size)を修正する必要があるのか? ご教示いただければ幸いです.
ご質問ありがとうございます。
実は、この手のエラーはよく遭遇するものでして、
MRIConvertを使っていると時々起こります。
なのでShort answerとしては、
MRIConvertではなく、MRIcronに一緒についてくる、dcm2niiもしくはそのGUI版であるdcm2niiguiを使うと、
正しく変換されます。
Long answerとしては、以下のようになります。
今、
Slice thickness (mm): 1.4
Slice spacing (mm): 0.699999
となっていると教えて下さいました。
http://mipav.cit.nih.gov/pubwiki/index.php/Correcting_image_spacing
ここの
Understanding contiguous planes’ effect on image scanning
に書いてあるのですが、
Slice thicknessとSlice spacingの値が違うことがあり、このような場合、
今、遭遇しているような画像がひしゃげてしまう事象にぶつかることがあります。
Slice thicknessが矢状断の厚みです。
ここでのvoxel sizeのx, yは矢状断でのx,yですから、実際はxが前後方向、yが上下方向となります。
従って、水平断でのx,y,zで考えると、
xは左右方向ですので、矢状断の厚みであるslice thicknessとなり、1.4となります。
そして、yは前後方向ですので、0.4688, zが上下方向ですから、こちらも0.4688となります。
ということで、1.4*0.4688*0.4688となるわけです。
しかし、おそらく、MRIConvertはslice spacingの0.69≒0.7をx軸方向のボクセルサイズととっていると思います。
そうすると、ボクセルは本来よりもx軸方向、つまり左右方向に圧縮された形になりますので、つぶされたような形になるはずです。
こう考えると今見ている現象を説明できるかと思います。
いかがでしょうか?
MRIcronのメニューにあるWindows→InformationのDimensionタブにあるI, J, K SpaceのSpacingの値を見てください。
それが、今の画像に設定されているSpacingです。おそらく、I SpaceのSpacingが0.7で、K, J SpaceのSpacingが0.47となっていませんか?
で、その場合の解決法ですが、Short answerで述べましたように、
MRIConvertではいかんともしがたいので、dcm2niiを使うということになります。
ただ、これで気になるのは、Slice thicknessが1.4と比較的厚いことです。
x, yが0.5mmと小さいのにスライス厚が1.4mmというのはもったいない気がします。
なお、0.5mmはVBMの観点からはそこまで小さくする必要はなく、1mmぐらいで大丈夫です。
0.5mmとすると、画像のサイズが非常に大きくなってしまい、メモリ不足が起きやすくなります。
これから撮像方法を調整できるのならば、1*1*1.2か1*1*1ぐらいでとれるように調整してもいいかもしれません。
といっても各病院の事情があるので、なんともできないところもあるかと思いますが…。
ご確認いただき、私の推測と違うようでしたらまた教えていただけると幸いです。
よろしくお願いします。
根本先生
ご丁寧な解説ありがとうございます.
横方向にゆがむ理由がよく理解できました.
ご指摘のようにMRIcronのWindows→Informationで確認するとI SpaceのSpacingがslice thicknessの1.4mmと異なり0.7mmで設定されていました.
ただしdcm2niiguiを用いてDICOM画像を変換してもやはり横方向にゆがみ,I SpaceのSpacingが0.7mmと表示されていました.なかなか難しいですね.
これまでに蓄積した3次元MRIデータも少しあったのですが,MRI技師と相談し,voxel sizeが1.0×1.0×1.0mmになるように再設定してMRIデータを集めていく方針としました.
技師のコメントとしては3次元MRIなのでinterslice gapがないはずなのに,slice spacing 0.699999mmと表示されているのはおかしいとの指摘もありました.
これがゆがみの修正がうまくいかない理由の一つなのでしょうか?
もし,今回の問題に対するさらなるご指摘やアドバイスがありましたらご教授いただければ幸いです.
dcm2niiでもダメでしたか…
もうひとつの方法は、SPMのDICOM importを使うことです。
SPMのメニューのDICOM Importをクリックして、DICOM画像を指定すれば、NIFTIに変換してくれます。
その他、LONI Debabelerも試してみる価値があるかもしれません。
また、技師さんのコメントに関してですが、
slice spacingとslice gapは異なるらしく、
問題がない場合は、slice spacingとslice thicknessが一致します。
slice spacing(スライス間隔) 0.7mm, slice thickness (スライス厚)1.4mmということは、
おそらく、画像のサイズを大きくさせないために、
スライス厚0.7mmの画像2枚を平均してスライス厚1.4mmという情報をもたせているのではないかと思います。
スライス厚とスライス間隔の説明については、日本語では
http://okwave.jp/qa/q4820195.html
あたりがわかりやすいたとえなので参考にしていただけたらと思います。
で、DICOMヘッダーにこれらの情報が書かれているわけですが、
DICOMは機種ごとに自由度が高いため、画像コンバーターが、すべてのヘッダーを読めるわけではないために
情報が抜け落ちてしまうことがあります。
間違っている可能性もありますが、私の理解している範疇で書かせていただきました。
根本先生
HPをよく参照させていただいています。札幌医科大学の篠崎と申します。
さて、先生の著書「すぐできるVBM」を購入し、さっそく手持ちのデータにてDARTELを行っているところです。この本のp.78に、Global calculationにてTBVを入れる部分ですが、個々人のTBVはどのようにして算出できるものでしょうか。
ご教示いただければ幸いです。
よろしくお願い申し上げます。
篠崎先生
ご質問、ありがとうございます。
大事なところが抜けていましたね…。
すぐにまとめてアップしますので、少しだけお待ちください。
よろしくお願いします。
篠崎先生
TBVの算出の方法をまとめさせていただきました。下記をご覧ください。
VBMでの全脳容積(Total Brain Volume; TBV)の求め方
根本先生
札幌医科大学の篠崎です。
この度は早速にありがとうございました。
TBVを出力でき、手持ちのデータにて最後まで解析できました。
篠崎先生
ご報告ありがとうございました。
無事に解析できたということでよかったです。
今後も何かありましたらおたずねいただけたらと思います。