画像解析のためには、DICOM画像をNIFTI画像に変換する必要があります。
主に使われるソフトウェアとして、MRI Convertとdcm2niiがあります。
開発者からスクリーンショットを使ってよいという許可をいただきましたので、
MRI Convertおよびdcm2niiの使用方法をPDFで公開します。
日別アーカイブ: 2014-05-24
Flexible factorial designを用いたVBMの縦断解析
様々な方々から「2群の縦断解析をしたいんだけれども、どうすればいいの?」と質問されてきて、その都度、きちんとした答えをできずにいました。
ちょうど、今日、ある方から質問をうけたので、これを機にまとめてみることにします。
一言で言うならば「Flexible factorial modelを使うといいよ」となります。しかし、これはそんな簡単ではありません。
以下にその方法をまとめます。
根拠となっている資料として、”Contrast weights in flexible factorial design with multiple groups of subjects“を挙げます。これは、SPMのML上で流れたドキュメントで、Flexible factorial designにおけるコントラストを様々な条件から検討しています。このドキュメントの他にも、SPM-ML上の議論も参考にしています。できるだけ正確を期していますが、間違っている可能性もゼロではありませんので、もし間違いを見つけた方がいらっしゃったらぜひご指摘ください。
例として、以下のような状況を想定します。上述のContrast weights in flexible factorial design with multiple groups of subjectsでとりあげられている状況と同じ状況です。
- 被験者は11人。6人(Subject1(S1)-S6)がグループ1、5人(S7-S11)がグループ2
- それぞれ3回MRIを撮像。従って、11×3=33の画像があることになる
以下、SPM12bのスクリーンショットを用いながら説明します。基本的にSPM8でも同じです。
SPMのメニューから”Basic models”をクリックします。
- Design matrixの作成
- Flexible factorialの指定とFactorの設定
まずは、DesignでFlexible factorialを指定します。その後、Factorを指定します。今、指定すべきFactorは3つです。各々に対してindependenceとvarianceを指定します。
- subject
- group
- time
これは必ず入れないといけないとのことです。independenceはyes, varianceはequalとなります。
次はgroupです。これはindependenceはyes, varianceはunequalとなります。
縦断解析ですので、timeが入ります。これはindependenceはno, varianceはequalとなります。
すぐに見直すことができるように表にしておきます。
factor independence variance subject yes equal group yes unequal time no equal - subjectの指定
- Conditionsの指定
- Main effectsとInteractionの指定
- Flexible factorial designのコントラスト
- groupの主効果
- timeの主効果
- group x timeの交互作用
Specify Subjects or all Scans & Factorsで、”Subjects”を選択します(all Scans & Factorsもいけそうなのですが、Design matrixがやや異なるので、ここは無難にSubjectsとします)。そして、Subjectsに、Subject 1のtime 1, 2, 3の3つのファイルを指定します。
Conditionは行列で指定します。行は画像の順番です。列は指定したFactorの順番です。Factor1のSubjectは今、ひとつひとつ指定することで考慮されていますので、groupとtimeを指定します。被験者1-6(S1-S6)はグループ1, S7-S11はグループ2ですので、S1-S6のconditionは次のようになります。
1 1
1 2
1 3
同様に、S7-S11のconditionは次のようになります。
2 1
2 2
2 3
その後、Main effects(主効果)とInteraction(交互作用)の指定をします。
subject, group, timeの主効果を見るために、Main effectとしてFactor 1, 2, 3をそれぞれ指定します。
さらに、group x timeの交互作用もみたいので、Interactionとして、2 3とします。(Factor2がgroup, Factor 3がtimeだからです)
それ以降の設定(mask, global normalization)は通常のVBMと同様です。
この設定を適当な名前(flex_fact_design_matrix)で保存し、実行して、次のようなDesign matrixが得られたらOKです。
ここで気を付けなくてはいけないのは、Subjectは最初に指定しても、Design matrix上では最後に来ることです。
最初の2列(赤)がgroupの主効果, 次の3列(黄緑)がtimeの主効果, 次の6列(青)がgroup x timeの交互作用, 最後の11列(紫)がsubjectの主効果となっています。
ここまでできたらEstimateしてください。
Design matrixの設定もややこしいのですが、コントラストはもっとややこしいことになっています。ここは上述の”Contrast weights in flexible factorial design with multiple groups of subjects”に従って説明します。
今、Design matrixの各列の要素を列挙すると以下のようになっています。
G1 | G2 | T1 | T2 | T3 | G1T1 | G1T2 | G1T3 | G2T1 | G2T2 | G2T3 | S1 | S2 | … | S6 | S7 | S8 | … | S11 |
ここでGはgroup, Tはtime, Sはsubjectを意味します。
これを見ると、Interactionの中にgroupとtimeの要素が入っていることがわかります。コントラスト作成の際には、ここのところに気をつける必要があります。nの数によってコントラストに重みづけをしなければならないからです。
G1 | G2 | T1 | T2 | T3 | G1T1 | G1T2 | G1T3 | G2T1 | G2T2 | G2T3 | S1 | S2 | … | S6 | S7 | S8 | … | S11 |
1 | -1 | 0 | 0 | 0 | 1/3 | 1/3 | 1/3 | -1/3 | -1/3 | -1/3 | 1/6 | 1/6 | … | 1/6 | -1/5 | -1/5 | … | -1/5 |
ここでG1T1, G1T2, G1T3は皆等分なので、シンプルに3で割っただけです。G2T1なども同様に-1/3となります。S1-S6, S7-S11は人数にあわせて1/6と-1/5となっています。
ただ、これをひたすらSPMに打つのは非常に苦痛ですね。ここで、Matlabの便利な機能を使います。
Matlabでは、1がn個続く時は、 ones(1,n) とします。
これは応用が効いて、もし、1/3がn個続く時は、 ones(1,n)/3 とします。
-1/4がn個続く時は、-ones(1,n)/4 となります。
そして、ゼロがn個続くときは zeros(1,n) となります。
従って、今の場合は、以下のように書くことができます。私はこれをSPMのcontrast managerに入力しています。
1 -1 zeros(1,3) ones(1,3)/3 -ones(1,3)/3 ones(1,6)/6 -ones(1,5)/5
すると、下図に示すようなコントラストになるはずです。
G1 | G2 | T1 | T2 | T3 | G1T1 | G1T2 | G1T3 | G2T1 | G2T2 | G2T3 | S1 | S2 | … | S6 | S7 | S8 | … | S11 |
0 | 0 | 1 | 0 | -1 | 6/11 | 0 | -6/11 | 5/11 | 0 | -5/11 | 0 | 0 | … | 0 | 0 | 0 | … | 0 |
timeの主効果は、経時的にvolumeが小さくなると仮定して、[1 0 -1]と考えています。G1T1, G1T2, G1T3に関しては、今はT1がG1とG2で不均等になっていますので、その比率を考慮して、G1T1, G1T2, G1T3に関しては、6/11×[1 0 -1], G2T1, G2T2, G2T3に関しては、5/11×[1 0 -1]となっています。そして、subjectのfactorに関してはこの中に3つの時系列をすべて包含していますので、コントラストに影響しませんので、すべて0となります。
これも先ほどと同様にonesとzerosを上手に使って書いてみましょう。以下をcontrast managerに入力します。
zeros(1,2) [1 0 -1] 6/11*[1 0 -1] 5/11*[1 0 -1] zeors(1,11)
すると、コントラストは下図のようになるはずです。
G1 | G2 | T1 | T2 | T3 | G1T1 | G1T2 | G1T3 | G2T1 | G2T2 | G2T3 | S1 | S2 | … | S6 | S7 | S8 | … | S11 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | -1 | -1 | 0 | 1 | 0 | 0 | … | 0 | 0 | 0 | … | 0 |
交互作用で用いられる項目は、GxTxのみです。これも次のように書きなおすことができます。
zeros(1,2) zeros(1,3) [1 0 -1] [-1 0 1] zeros(1,11)
コントラストは下図のようになります。
これでひと通り検定することができるはずです。
いざまとめてみると、結構すっきりした感じになりました。
縦断データをお持ちの方は、是非トライしてみてください。VBMだけでなく、脳血流SPECTなどにも応用可能です。