Setupの最後のところまで来ました。
最後はOptionsです。
ここは、デフォルトのままで大丈夫です。
ここまでいったら、一度保存しましょう。
左上の Project -> Save で現在のプロジェクトを保存できます。
そこまでいったら、左下の “Done” をクリックしてください。
そうすると、下のような画面が出てきます。
デフォルトのままで結構です。
Startをクリックすると処理がはじまります。
しばらく時間がかかりますので、その間、ちょっと休憩です。
Setupの最後のところまで来ました。
最後はOptionsです。
ここは、デフォルトのままで大丈夫です。
ここまでいったら、一度保存しましょう。
左上の Project -> Save で現在のプロジェクトを保存できます。
そこまでいったら、左下の “Done” をクリックしてください。
そうすると、下のような画面が出てきます。
デフォルトのままで結構です。
Startをクリックすると処理がはじまります。
しばらく時間がかかりますので、その間、ちょっと休憩です。
続いてCovariates 2nd-levelの設定です。
このCovariates 2nd-levelは、今設定しなくても大丈夫です。
(逆に言うと、これまで設定してきたものは最初に設定する必要があります。)
2nd levelのCovariatesは解析を進めていくなかで追加したくなるものもありますので、そのような親切な設計になっています。
ただ、今は、設定しましょう。
楽をしたいので、Matlabの方で少し準備を進めます。
まず、Matlabで現在のディレクトリを確認します。
pwd
で確認できます。
もし、conn_practiceのディレクトリにいないようでしたら、移動します。
そして、さらにその下のsampleディレクトリに移動します。
cd sample
この中にSubjects.txtというファイルがあります。
これはMatlabで読み込むことができるように工夫してあります。
これをMatlabで読み込み、subjという変数に代入しましょう。
変数名は何でもいいのですが、タイプすることを考えると短い方がいいでしょう。
Matlabから
subj=load('subjects.txt');
とすると、右側のワークスペースにsubjという変数ができているのがわかります。
subj
でその内容を見ることができます。
ここで、第1列は、IDなので実際は使いません。
第2列は、診断(健常者か統合失調症か)
第3列は、年齢
第4列は、性別(男性が1、女性が2)
となっています。
Matlabでは、変数の中で特定の列だけ使いたい場合は、
変数(:,その列)
という表し方をします。
今の場合、診断だけ取り出したいのであれば、
subj(:,2)
で表すことができます。
それで、CONNはMatlabで動くので、今作った変数をそのまま使うことができます。
それでは、CONNに戻ります。
左側のメニューからCovariates 2nd-levelに進みます。
(バージョン17からQAの結果がCovariates 2nd-levelに自動で入るようになりました。)
そして、画面中央の左側にあるCovariatesで”All Subjects”とある下をクリックします(何もないところです)。
そうすると、右側にenter covariates name hereと出てきます。
これから、診断と年齢と性別を順番にいれていきましょう。
まずは診断です。もともとのファイルには、健常者0、統合失調症1となっていますが、今後、群間比較することを考えて、controlという変数とpatientという変数を準備します。
まず、健常者から準備しましょう。
covariates nameを “control” とします。
[0 0 0 … 0 0 0]と0が20個並んでいますが、これを削除し、以下のようにタイプしてEnterキーを押してください。
subj(:,2)==0
subj(:,2)は先ほど出てきたものです。
subj(:,2)==0は、Matlabでの論理値というもので、0であれば真の値として1を、それ以外は偽の値ということで0を返すものです。つまり、今の場合、健常者は0なので、0であれば1にして、それ以外(といっても1しかないのですが)は0にするというものです。
また、画面下の方の”Description”には説明をつけられるようになっています。なので、今は”Control subjects”と入れておきましょう。
そうすると、下のようになるはずです。
次に、patientを準備します。
covariates nameを “patient” とします。
Valuesは
subj(:,2)==1
となります。
Descriptionは必須ではないのでいれなくてもいいでしょう。
ここでわざわざControlとPatientをわけておく理由は、後で群間比較をするためです。いわゆるダミー変数です。
同様に、年齢、性別も入れていきましょう。
年齢は
covariates name: age
values: subj(:,3)
性別は
covariates name: gender
values: subj(:,4)
Description: Male=1; Female=2
とします。
その結果、図のようになります。
Descriptionを書いておくと、項目名のすぐ右側にそのDescriptionが表示されるのですね。便利ですね。
ここまでできれば、共変量の設定はおしまいです。
Setupの確認はあともう一息です。
左メニューから”Conditions”をクリックします。
rs-fMRIの場合、Conditionsはいじらなくて大丈夫です。
なのでこんな感じとだけ見ておきましょう。
その次に、”Covariates 1st-level”をクリックします。
画面中央のやや左に”realignment”, “QA_timeseries”, “scrubbing”の3つがあるのが見えます。
realignmentは位置合わせの情報を読み込んでいます。
translation(水平移動)とpitch(回転)に関して、x, y, z方向に頭がどれだけ動いたかの指標になります。
QA_timeseriesは外れ値に関しての情報です。2つの外れ値があります。ひとつが、信号値をZ変換した後に、各ボリュームの全体の値がどれだけ平均から外れているかであり、もうひとつが、頭の動きです。
scrubbingは、外れ値になるスキャンがどこになるかを示したものです。
この詳しい説明はいつかすることとします。
個人によっては動きが非常に激しい人がいることがわかります。(例Subject 16)
これも解析に加味されます。
それでは、前処理の結果、どうなったか確認しましょう。
左のメニューから”Structural”をクリックします。
そうすると、脳が頭蓋骨が除かれ、標準化された脳になっていることがわかります。
右側にマウスを持ってくると、赤枠で示すようなスクロールバーと、スクロールバーの上にある○印が出てきます。○印はクリックすると、Axial → Coronal → Sagittal と変化していきます。
次に、左のメニューから”Functional”をクリックします。
そうすると、当初は [150 Files]となっていたものが、今は[144 Files]となっていることに気づきます。前処理で最初の 6スキャンを除くとしていたことがここに反映されているわけですね。また、脳も標準化されています。
その次に、左のメニューから”ROIs”をクリックします。
そうすると、”Grey Matter”, “White Matter”, “CSF”, “atlas”, “network”というROIがあるのがわかります。GM, WM, CSFに関しては、segmentationの結果がそのまま反映されています。WM, CSFはこの後、”Denoising”に用いられます。
“atlas”および”dmn”はもともとCONNに用意されているものです。
これがどのように作られたのか、CONNの中にきちんと書かれています。
CONNがインストールされたディレクトリの中にroisというサブディレクトリがあり、”atlas.info”, “dmn.info”というファイルがあります。そこの記載を抜粋します。
まずは、”atlas.info”から。
ROIS defined from:
1) Cortical ROIs from FSL Harvard-Oxford Atlas maximum likelihood cortical atlas (HarvardOxford-cort-maxprob-thr25-1mm.nii); divided bilateral areas into left/right hemisphere; (91 ROIs)
2) Subcortical ROIs from FSL Harvard-Oxford Atlas maximum likelihood subcortical atlas (HarvardOxford-sub-maxprob-thr25-1mm.nii); disregarded Cerebral White Matter, Cerebral Cortex, and Lateral Ventrical areas; (15 ROIs)
3) Cerebellar parcelation from AAL Atlas (26 ROIs)
次に、”dmn.info”から。
Atlas of commonly used networks:
Default Mode Network (4 ROIs)
SensoriMotor (3 ROIs)
Visual (4 ROIs)
Salience / Cingulo-Opercular (7 ROIs)
DorsalAttention (4 ROIs)
FrontoParietal / Central Executive (4 ROIs)
Language (4 ROIs)
Cerebellar (2 ROIs)ROIs defined from CONN’s ICA analyses of HCP dataset (497 subjects)
アトラスはてっきりAALと思い込んでいましたが、上をみると、違いますね。複数のアトラスをもとに構成されているということがわかりますね。
また、ネットワークはバージョン16では、dmnしかありませんでしたが、17eでは、複数のネットワークが準備されているということになります。
これまで、構造画像、機能画像を指定してきました。
次に Setup -> ROIs に行かずに、画面左下にあるPreprocessingにうつります。
(前処理が終わっているという場合は、中級編になりますので、まずは、前処理をしていない状態で説明していきます)
まずは基本からいきましょう。
Preprocessingをクリックしたあと、最初に出てくる画面で、
default preprocessing pipeline for volume-based analyses (direct normalization to MNI-space)
になっていることを確認したうえで、
画面右側にある”Add”をクリックします。
そうすると、下図のようになります。
これは前処理の順番が記載されています。
機能画像の位置合わせとunwarp (被験者の動きの評価および補正)を行います。
これはAC-PC位置合わせの簡易版と思ってください。画像の原点を画像の重心に持ってきます。たいていの場合、これでAC-PCに比較的近いところにきます。ただ、これは万能ではありませんので、注意は必要です。
機能画像のスライスタイミング補正を行います。
これは機能画像で頭が過度に動いてしまったようなスライスを検出するという機能です。scrubbingと言います。AFNIではcensoringと呼ばれています。ちなみに、outlierは外れ値という意味です。CONNではscrubbingにARTというプログラムを用いています。
機能画像のSegmentationと解剖学的標準化を行います。
先ほどと同様に構造画像も画像の原点を画像の重心に持ってきます。
構造画像の分割化と標準化を行います。ここでの標準化はDARTELでなく、低次元の標準化であることに注意してください
機能画像の平滑化を行います。
デフォルトでは、この順番で行います。この内容を変えたければ、適宜右側にあるAdd, Remove, Move Up, Move Downを使っていけばいいわけです。
まずは基本でこのままでもいいのですが、最初のスキャンを省きましょう。
fMRIでは最初の数スキャンは磁場が安定しないため、取り除いた方がいいと言われています。今回のCOBREのデータは、最初の4スキャンはすでに除かれているということですが、さらに6スキャン(トータル10スキャン)除いてみましょう。
Data Preprocessing stepのところで先ほどまでDefaultだったものから、
functional Removal of initial scans (disregard initial functional scans)
を選択し、Addをクリックします。
一番下に追加されますので、Move upで一番上に持って行きましょう。
取り除くので、一番最初にしてしまった方がいいと思いますので…。
下図のようになるはずです。
これで前処理の準備ができました。
“Start” をクリックしましょう。
そうすると、最初に平滑化のパラメータを聞かれます。デフォルトのまま8でOKです。
次に、fMRIのスライスオーダーを聞かれます。
COBREのデータセットのスライスオーダーはSiemensのinterleavedですので、
interleaved (Siemens)
を選択します。
次に、最初の何スキャンを取り除くかの画面が出ます。
今、ここでは6としておきます。
そうすると、すでに取り除かれている4スキャンとこの6スキャンでトータル10スキャンが取り除かれることになります。TRが2秒ですから、20秒分取り除くことになります。どのくらいかというのはいろいろあるようですので、各ラボごとに決めたらよいと思います。
次に、外れ値の閾値を設定する画面が出ます。
かつては、”liberal”か”conservative”しかなかったのですが、最近のバージョンでは、”intermediate”が付け加わりました。
以下のような関係になっています。
liberal: Global signal はZ値に換算して 9SD まで、被験者の動きは、2mm までは許容する。
intermediate: Global signal はZ値に換算して 5SD まで、被験者の動きは、0.9mm までは許容する。
conservative: Global signal はZ値に換算して 3SD まで、被験者の動きは、0.5mm までは許容する。
正直、conservativeだと厳しすぎるし、liberalだとゆるすぎるなと思っていたので、intermediateがいいなと思います。
実際、conn17eでは、intermediateがデフォルトになっています。
メニューから、デフォルトの
Use intermediate settings (97th percentiles in normative sample)
を選択してください。
そうすると、下図のようなメッセージが表示され、前処理がはじまります。
私の環境(Core i7, メモリ16GB, Thinkpad X250, Lin4Neuro based on Ubuntu 14.04) のノートPCで20例で4時間でした。1例あたり10分〜15分程度という感じです。しばらくゆっくりするしましょう。
前処理が終わると以下のメッセージが出ます。
次で、前処理の結果を確認します。
Structuralに続いてfMRI画像を指定します。
Setup -> Functional といきます。
先ほどと同じ要領で、まず、画面真ん中のSubjectを選択します。
次に、画面右側のフィルタに
F.*.nii
と入力し、”Find”をクリックします。そうすると、Fではじまる画像が出てきます。
これで先ほどと同様に画像を選択し、”Select”とクリックすれば、画像が割り当てられ、先ほどと同様に下のダイアログが表示されます。
ここで画面中央のSubjectに戻り、クリックするとfMRI画像が表示されます。
マウスを画像の上に持ってくると、下のように、画像のファイル名などを見ることができます。これで、構造画像と機能画像が同じ順番で並んでいるかを確認してください。
ちなみに、画像を選択する場面で、右上にある”ALT Select”がなんだろうと思った方がいらっしゃるかもしれません。これをクリックすると、SPMのファイル選択画面が出てきます。SPMに慣れている方はこちらを使うのも手です。
SetupでBasic infoを入力した後は、Structuralをクリックします。
そうすると、下図のようになっているかと思います。
重要なのは、真ん中のエリアと右側のエリアです。
まず、真ん中のエリアで、
Subject 1 〜 Subject 20までをすべて選びます。
ここで全部選んでおくと、これから先でファイルを選択した際にデータが一度に各Subjectに割り当てられます。(楽するためのコツです)
次に、右側のエリアにマウスをもっていきます。そうすると何もなかったところに表示が出てきます。CONNはこのような隠しメニューがいろいろあります。作者の方のセンスなのだと思います。メニューがびっしりのAFNIと対照的ですね。
そうしたら、ファイルを選択しますが、2つ方法を示します。
ここにはひとつひとつ示しませんが、画面の上にあるディレクトリ(オレンジ色で示されています)をダブルクリックしながらデータのあるディレクトリまで進んでいく方法です。
こちらはよりスマートな方法です。
今、構造画像はファイル名がVから始まる画像です。
そして最後が.niiで終わりますので、
正規表現を用いて表すならば、
V.*.nii
と表すことができます。
ひとつ気をつけなければ行けないのは、ここはワイルドカードではなく、正規表現ということです。
正規表現において、*は、「前の0回以上の繰り返し」という意味があります。
なので、
V*.nii
としてしまうと、Vは全く意味がなくなり、
「終わりがniiで終わるもの」
という意味になってしまいます。
一方、正規表現では、.は「任意の一文字」という意味になりますので、
V.*.nii
だと、
「最初がVでその後が何でもよくて最後がniiで終わるもの」
という意味になります。
これを画面下に入力し、そして、そのちょっと上にある “Find” をクリックします。
そうすると、確かに、Vではじまるファイルがならび、その下に “20 files found” と出てきます。これが確かにほしいものです。
ここで、Vから始まるファイルをすべて選択したうえで、”Select”をクリックします。
そうすると、
と出ますので、そのままOKをクリックします。
そうしたら、画面の真ん中に戻って、Subjectを適当にクリックしてみてください。画面にそれぞれ割り当てられた画像が表示されます。
これで、構造画像の指定は終わりました。
さて、サンプルデータも手に入ったところで、設定を始めていきます。
CONNでは、画面上の“Setup” “Denoising” “first-level Analysis” “second-level Analysis” の順番に進んでいきますが、
各項目において、左側の見出しを設定していきます。
上が大項目、左が小項目と覚えておけばいいでしょう。
それでは、まず、Setup -> Basic と選択します。
Number of subjects: 今回使うサンプルデータは合計20例ですので、20と入力します。
Number of sessions: 上を20と入れると自然に 1 1 1 … 1 1 1と入るはずです。resting-state fMRIは基本的に1セッションですので、これでOKです。もし、タスクfMRIならば、セッション数は変わります。
Repetition Time: TRを入力します。サンプルデータのTRは2000msec、つまり2sです。今はそのままで大丈夫ですが、もし、2500msecでしたら、2.5と入力します。全部入力するのは、めんどくさいので、matlab の ones を上手に使います。
2.5を20個並べたかったら、
2.5*ones(1,20)
と入力し、Enterをおすと自動で2.5が20個並びます。
Acquisition type: デフォルトのままContinuousで結構です。
これでBasicのセットアップは終了です。
CONNを試したいけれどもデータがないという方のためにデータを準備しました。
COBREデータセットから、30代の健常者と統合失調症患者をそれぞれ10例ずつ集めてあります。
データはこちらからダウンロードしてください。500MB強あります。
ZIPファイルをダウンロードし、展開すると、そこにsampleフォルダがあります。
また、subjects.txtもあります。後ほど使います。
このsampleフォルダを先ほど作成したconn_practiceの下に置いてください。