これまでに書いてきた脳画像解析に関するドキュメントたちです。役立つこともあるかもしれないので整理しておきます。
- Matlab
- Python
- DICOM→NIfTI変換
- SPM
- SPMのセットアップ方法
- AC-PC自動設定スクリプト(SPM12対応版)
- SPM統計入門
- VBMチュートリアル日本語版
- VBM8マニュアル日本語版
- VBMの観点からのSPMの理解
- Flexible factorial designを用いたVBMの縦断解析
- SPMのPlotの理解
- SPMの3つのウィンドウを起動するためのコマンド
- FSL
- CONN
- 01: インストール
- 02: プロジェクトの作成
- 03: サンプルデータ
- 04: Setup – Basic
- 05: Setup – Structural
- 06: Setup – Functional
- 07: Setup – Preprocessing
- 08: Setup – Preprocessingの確認
- 09: Setup – Conditions and Covariates 1st-level
- 10: Setup – Covariates 2nd-level
- 11: Setup – Options
- 12: Denoising
- 13: first-level Analysis
- 14: QA (Quality Assurance)
- 15: Second Level Analysis 群間比較
- FreeSurfer
- Mac (El Captain以降) へのFreeSurfer 6.0のインストール
- Ubuntu14.04, 16.04へのFreeSurfer 6.0のインストール
- FreeSurferをインストールした後の第一歩
- FreeSurfer前処理結果のQuality Check
- Lin4Neuro関連
はじめまして、大学院生でSPM12を活用した研究をしている者です。
ご質問があるのですが、現在、脳の賦活部位とその賦活した時間を同時に確認する方法がわからない状態であり、
大まかな時間経過による賦活部位の変化はディスプレイ上で表示できるのですが、1スキャンごとに部位と時間をcsvなどのファイルに書き出すにはどのような手順を踏めば良いのでしょうか?
お忙しい中大変恐縮ではございますが、どうかお力添えを願えないでしょうか。
何卒よろしくお願い申し上げます。
もう少し詳しい情報を教えてください。
– 画像の処理はどこまで終わらせた状態なのでしょうか?個人の標準化などは終わった状態ですか?
– スキャンごとに部位と時間をCSVなどのファイルに書き出すということですが、賦活された部位をそれぞれ同定しつつ、かつ、その持続時間を記録したいということですか?
– CSVファイルのイメージはどうなるのでしょう?
早速のご返信、誠にありがとうございます。
今回、ご質問させていただいた背景といたしましては、「被験者に一定時間内に複数の質問を回答してもらい、どの時間帯に脳のどの部位で賦活が見られたのかを把握することで、どのような質問が来ると被験者はどの脳部位を強く働かせるのか」を確認したいという背景があります。
>>画像の処理はどこまで終わらせた状態なのでしょうか?
→
画像の前処理はRealignからSmoothingまで全て終えており、Resultsから個人解析を行ってディスプレイに表示させるところまで終わっています。
また、賦活した特定部位の座標とその部位の反応値の大きさを時間変化で見たものをディスプレイ上にプロットするところも完了しています。
(縦軸が反応の大きさ、横軸が時間(秒)のイメージです。)
上記のグラフをプロットすることが可能であるならば、反応の大きさとそのときの時間をcsvで書き出すことも可能なのではないかと思い、ご質問させていただいた次第です。
>>スキャンごとに部位と時間をCSVなどのファイルに書き出すということですが、賦活された部位をそれぞれ同定しつつ、かつ、その持続時間を記録したいということですか?
→
スキャンごとにという言葉で紛らわしい言い方になってしまい、大変恐縮なのですが、イメージとしては賦活された特定の部位をそれぞれ同定しつつ、その部位の賦活の大きさとそのときの時間(もしくはその時点のスキャン数)を撮像開始から最後までcsvで書き出したいということです。
– CSVファイルのイメージはどうなるのでしょう?
→
上述の通りです。
よろしくお願いいたします。
わかりました。
ディスプレイ上にプロットする際に、何を使ってプロットされましたか?
“plot” を使ってされましたか?
もし、そうだとしたら、Matlabにある変数 y が欲しいものになると思います。
プロットをしたところで、以下をしていただけませんか?
ある領域Aのタイムシリーズということで、region_A_timeseries.csv として保存したいと考えます。
変数 y をcsvに出力するのに csvwrite を使います。
(R2019a意向では、writematrixが推奨されています)
これを、自分が関心のある領域に対して繰り返します。
時間は、TRが2sであれば、0からはじまって、2秒ずつということになりますので、それはご自身で規定できるかなと思います。
これで欲しいものが得られませんでしょうか?
こちら試してみたところ欲しいデータを得ることができました。
お忙しい中誠にありがとうございます!
無事にできたようでよかったです!
横から失礼致します。
当方も、ある領域のtimecourceをデータとして出すのに苦労しております。
MarsbarでROIを作成して、その領域の脳活動の%signalchangeを出す時に、グラフをプロットできるのですがそのデータを数値として取り出す方法を探していました。
そもそもある領域のtimecourseを出す方法がどれが正しいのかはっきりとわからないのですが、どのように出せばいいのでしょうか。
現在は、marsbarの「extract ROI data>Summery time course for regions>Raw dataとしています。これで合っているのでしょうか。
そして、それでデータはプロットできるのですが、
プロットした後に、上記のコマンドを入れれば出てくるのでしょうか。ファイル名と拡張子が「region_A_timeseries.csv」となるのでしょうか。
(今までは「ブラシツール」というツールを使って値を抽出していました。コマンドを教えていただいてとても助かっています。)
ご質問拝見しました。
→はい、それで大丈夫です。
→いいえ、それはまた別かなと思います。しばらくmarsbarを使っていなかったのですぐにはっきりとものが言えないのですが、Marsbarでプロットした後に新たな変数ができていないでしょうか?プロットする前にMatlabのWorkspaceにある変数を確認しておいて、プロット後にできている変数があるのではないかと思います。そこに値が入っている可能性が高いです。
まずはそれを確認されてはいかがでしょうか?
marsbarでのtimecourseデータについて横から質問させていただいたものです。mat labのワークスペースには
それらしい変数が出てきておりませんが、なんとかやってみようと思います。ありがとうございます。
ちなみに、取り出したいものは、個別のnifti画像からですか?
具体的に何をどうしたいか書いてくださったら、やり方を説明できるかなと思います。
marsbarは使わないものの、ROI画像を準備したら、spm_summariseでtime courseを求める方法について、以下に解説しました。
https://www.nemotos.net/?p=5382
ここではCONNで前処理したデータを使用していますが、CONNでなくても、4次元データを指定すれば全く問題なくできます。
よかったらご自身の環境にあわせて試してみてください。
早々にありがとうございます。
conn toolboxのことは知りませんでした。
さっそく使ってみます。
ありがとうございました。
今後もブログを拝見させていただきます。
アップしていただけるのを期待しております。
ご丁寧にありがとうございました。
埼玉医大 放射線科T.Aと申します。
初めまして。お世話になります。fMRIの解析についてご教授いただきたく存じます。
私も昭和大のT.M先生同様で新生児のrs-fMRIをSPM8で解析を始めたところですがうまくいかず
途方に暮れております。
Taskのないresting stateでの1st levelの設定(通常の解析法とは異なるのでしょうか?)についてご教授頂けますと助かります。
また、(spmでうまくいかないため)GIFTを使用してすべてデフォルト条件で解析を行ってみました。
spmより操作が簡単ですが、頭の動き補正があまり効いてないように感じました。
spmである程度前処理をしてから使用した方が良いのでしょうか。
GIFTについてもアドバイスをいただけると幸いです。
お忙しい中申し訳ありませんが何卒よろしくお願い申し上げます。
ご質問ありがとうございます。
確認のためにお聞きしたいのですが、
先生がお困りのことは、
新生児rs-fMRIの前処理
1st level解析のDesign matrixの設定
のどちらでしょうか?
文脈からするに、前処理のところでお困りのようですが…。
正直、rs-fMRIは私自身、今、前処理をいろいろ学んでいるところでして、自信をもって言えることが少ないのですが、
問題を切り分けていけたらと思います。
ちなみに、頭の動き補正は、FSLでもできますが、使ったことなどはありますか?
早々に返信頂きありがとうございます。
前処理のsmoothingまでは到達できました。
1st level解析のDesign matrixの設定以降が困っています。
Taskがないものをどう検定してよいのか悩んでいます。
resting stateの解析法をご教授いただけますと幸いです。
よろしくお願いいたします。
また、FSLは未経験です。windows を使用しています。
了解です。
解析は、seed-based connectivity analysisでよろしいでしょうか?
そうすると、
1. シード(関心領域)を決定する
2. 関心領域からtime-seriesを抽出する
3. 抽出したtime-seriesをGLMに入れて解析する
という流れになります。
SPMでこれをひとつひとつやっていくのはけっこう面倒でして、
SPMの開発者自身が、ツールボックスを使うことを勧めています。
先生はGIFTを使われたようですが、これはGroup ICAを行うものですので、
1st levelとしては、connツールボックスを使ってみるのがよいのではないでしょうか。
http://web.mit.edu/swg/software.htm
こちらにあるconnをチェックしてみたらどうでしょうか?
私自身も学んでいる状況ですが、やり方をまとめることができたらブログに情報をアップしたいと思います。
こんばんは。
お忙しい中、お返事ありがとうございます。
さっそく使用してみようと思います。
また、ブログを楽しみにしております。
何卒、よろしくお願いいたします。
VBMのデータを用いて灰白質容積を求める方法をブログにあげさせていただきました。
http://www.nemotos.net/?p=200
こちらを参考にしていただけたらと思います。
よろしくお願いします。
はじめまして、昭和大学小児科のT.M.と申します。
小児・新生児の頭部MRIの研究を始めたところです。ようやくSPM8を導入することができました。
SPM・VBMについていろいろ調べていくうちに、先生が御翻訳された『VBMチュートリアル』を拝見させていただき、現在活用させていただいております。
私は、小児・新生児の白質・灰白質・全脳容積に興味がございまして、この研究を始めたところです。
『VBMチュートリアル』のp14に簡単に計算できると書いており、*22も調べてみたのですが、なかなかうまくゆきません。
実際にMATLAB上でどの時点で、どのようなコードを入力し、結果がどのように表示されるのか御教授いただけましたら幸いです。
御多忙中の折、大変申し訳ないのですが、何卒よろしくお願いいたします。
はじめまして。
VBMで全灰白質容積や白質容積を調べるスクリプトは、Ged Ridgwayが発表しているスクリプトを使うのが便利です。
http://www0.cs.ucl.ac.uk/staff/g.ridgway/vbm/get_totals.m
具体的な方法は別にまとめさせていただいてブログに投稿するようにします。少しお待ちください。
以上、よろしくお願いします。