おいて、何人かからうまく動作しないというご連絡をいただきました。以下のようなエラーメッセージが出ます。conn_process([0:4,4.5,5]);調べた所、以下のバグが報告されています。https://www.nitrc.org/forum/forum.php?thread_id=7356&forum_id=1144解決策として、以下のリンクからrex.mをダウンロードし、CONN17aにあるrex.mに対して上書き保存してください。Analysisをやる前に確認しておくものですが、忘れたので、今、書きます。16において、以下のようにDMNではなく、かなり変な結果になりました。これはおかしいですね。levelのところにいってscrubbingの結果を確認すると、ほとんどすべてが外れ値と判定されていることがわかります。17の結果を見れば本来はこの程度ということがわかります。このscrubbingの話は、いつかもう少し詳しくしますが、要するに、頭が大きく動いてしまっているボリュームを検出する機能です。CONNは適切な結果を得るために、scrubbingにひっかかったボリュームは取り除いて解析します。16に関しては、ほとんどすべてが外れ値だったために、時系列の相関を計算するのに十分なボリュームがなくなってしまったわけです。CONNのチュートリアルでは、QCではなく、QAといっていました。Assuranceの略ですね。興味深かったので、そのままにします。1st-levelでscrubiingを見ることでできます。19の2つがかなり外れ値が多い状況です。19は取り除きたいと思います。BasicでSubject数を減らすと、取り除くSubjectを聞いてくれるのです。Subjectsを18に変更します。Enterを押すと、新しいダイアログが出ます。16と19を選択します。複数選ぶ場合は、Ctrlキーを押しながら選択することで、選択できます。これでOKを押すと、「本当に消してもいいの?回復できないよ」と確認されます。これでOKを押すと、しばらく何も起こらないように見えますが、MatlabのWindowを見ると、何やらいろいろコピーしているのが見えます。1st-levelを見てみましょう。Subjectが18に減っているのがわかると思います。こればかりでは、ありません。2nd-levelを見てみてください。なんと、先ほど設定したCovariateで削除した2例分がきちんと削除されているのがわかります。これはとても便利ですね。Analysisに戻りましょう。18例のデータだけで構成されていることがわかります。このQAは本来は、Preprocessingの後にすべきことです。2nd-levelを設定した後で、このQAをするといいのかもしれません。追記しました)Denoisingが終わった後、first-levelの画面に来ます。connectivityを見るということになります。最初は、下のようなものしか見えません。Seed-to-Voxelを見ていきましょう。ROI-to-ROIをクリックします。ここでは画面の右側でいろいろなことが確認できますので、右側のスクリーンショットで説明します。results”の下に領域を選ぶことができます。わかりやすく、デフォルトモードネットワーク(DMN)を確認してみましょう。(1,-61,38)”を選択してください。画像が見えているところの右側にマウスをもっていくとスクロールバーがあらわれますので、適宜スクロールしていただくと、確かにDMNっぽい感じで見えます。これは色がつきすぎの感じがしますね。NetworkのPCCと相関係数0.25以上の関係にある領域を描出しているということになります。この値を変えてみることで変わります。右側にあるSubjectsを適宜クリックしていくと、各個人のDMNの様子を観察することができます。続いて、どんな解析をしていくのかを決定します。画面中央をご覧ください。optionsとあり、それぞれ2項目設定する必要があります。typeここで、何の解析をするかを決定します。このままで大丈夫です。(PPI)などをしたい場合は、変更します。“Seed-to-Voxel”を選ぶことができるのがわかります。“Seed-to-Voxel”をここでは選んでいます。optionsここでは解析のオプションを指定します。多変量回帰分析のβということですね。どんな解析をするかによって異なります。今回は、シンプルにデフォルトの2変量の相関係数とします。タスクfMRIの時にここを変える必要が出てくると私は理解しています。すると、画面中央が下のような図になるはずです。MVPA、ALFFの計算などができます。factorsこれは、独立成分分析の際のFactor数です。デフォルトの20のままにしました。matrixの次元を落とすというものです。デフォルトの64にしました。ありますが、ここは正直私の手にはおえないので、何も変更しませんでした。このうえで、左下のDoneをクリックします。Analysisの解析が行われます。DenoisingSetupがすべて済んだらDenoisingです。ここはすべてデフォルトのままで大丈夫です。ひとつひとつ確認する価値があります。確認ポイントはいくつかあります。scrubbingの情報を使っています。左下にはバンドパスフィルタの情報がのっています。右のSubjectsを選ぶことで、各個人のデータがどのようにノイズが減るのかがわかります。ヒストグラムで、実際にデータがどのようになるのかが直感的に理解できます。灰色のヒストグラムがDenoising前、黄色のヒストグラムがDenoising後です。ヒストグラムの下はボクセル同士のconnectivityがDenoisingによってどのように変化するかを示しています。これを見ると、ノイズによる見せかけの相関が減っていることがわかります。相関グラフの下は、BOLD信号のタイムシリーズの信号値がDenoisingによってどのように変化するかを示しています。これをひと通り確認したら、左下の”Done”をクリックしてください。OptionsSetupの最後のところまで来ました。最後はOptionsです。ここは、デフォルトのままで大丈夫です。ここまでいったら、一度保存しましょう。現在のプロジェクトを保存できます。クリックしてください。すると、下のような画面が出てきます。デフォルトのままで結構です。Startをクリックすると処理がはじまります。時間がかかりますので、その間、ちょっと休憩です。2nd-levelの設定です。2nd-levelは、今設定しなくても大丈夫です。(逆に言うと、これまで設定してきたものは最初に設定する必要があります。levelのCovariatesは解析を進めていくなかで追加したくなるものもありますので、そのような親切な設計になっています。今は、設定しましょう。楽をしたいので、Matlabの方で少し準備を進めます。Matlabで現在のディレクトリを確認します。pwdで確認できます。conn_practiceのディレクトリにいないようでしたら、移動します。その下のsampleディレクトリに移動します。sampleこの中にSubjects.txtというファイルがあります。これはMatlabで読み込むことができるように工夫してあります。これをMatlabで読み込み、subjという変数に代入しましょう。変数名は何でもいいのですが、タイプすることを考えると短い方がいいでしょう。Matlabからsubj=load('subjects.txt');とすると、右側のワークスペースにsubjという変数ができているのがわかります。subjでその内容を見ることができます。ここで、第1列は、IDなので実際は使いません。第4列は、性別(男性が1、女性が2)となっています。変数(:,その列)という表し方をします。今の場合、診断だけ取り出したいのであれば、subj(:,2)で表すことができます。それで、CONNはMatlabで動くので、今作った変数をそのまま使うことができます。それでは、CONNに戻ります。2nd-levelに進みます。2nd-levelに自動で入るようになりました。Subjects”とある下をクリックします(何もないところです)。hereと出てきます。これから、診断と年齢と性別を順番にいれていきましょう。ファイルには、健常者0、統合失調症1となっていますが、今後、群間比較することを考えて、controlという変数とpatientという変数を準備します。健常者から準備しましょう。0]と0が20個並んでいますが、これを削除し、以下のようにタイプしてEnterキーを押してください。subj(:,2)==0subj(:,2)は先ほど出てきたものです。subj(:,2)==0は、Matlabでの論理値というもので、0であれば真の値として1を、それ以外は偽の値ということで0を返すものです。今の場合、健常者は0なので、0であれば1にして、それ以外(といっても1しかないのですが)は0にするというものです。画面下の方の”Description”には説明をつけられるようになっています。subjects”と入れておきましょう。すると、下のようになるはずです。次に、patientを準備します。Valuesはsubj(:,2)==1となります。Descriptionは必須ではないのでいれなくてもいいでしょう。ここでわざわざControlとPatientをわけておく理由は、後で群間比較をするためです。いわゆるダミー変数です。同様に、年齢、性別も入れていきましょう。Female=2とします。その結果、図のようになります。Descriptionを書いておくと、項目名のすぐ右側にそのDescriptionが表示されるのですね。ここまでできれば、共変量の設定はおしまいです。1st-levelSetupの確認はあともう一息です。左メニューから”Conditions”をクリックします。rs-fMRIの場合、Conditionsはいじらなくて大丈夫です。こんな感じとだけ見ておきましょう。1st-level”をクリックします。“scrubbing”の3つがあるのが見えます。realignmentは位置合わせの情報を読み込んでいます。z方向に頭がどれだけ動いたかの指標になります。QA_timeseriesは外れ値に関しての情報です。2つの外れ値があります。ひとつが、信号値をZ変換した後に、各ボリュームの全体の値がどれだけ平均から外れているかであり、もうひとつが、頭の動きです。scrubbingは、外れ値になるスキャンがどこになるかを示したものです。この詳しい説明はいつかすることとします。個人によっては動きが非常に激しい人がいることがわかります。16)これも解析に加味されます。ROIs)それでは、前処理の結果、どうなったか確認しましょう。左のメニューから”Structural”をクリックします。すると、脳が頭蓋骨が除かれ、標準化された脳になっていることがわかります。右側にマウスを持ってくると、赤枠で示すようなスクロールバーと、スクロールバーの上にある○印が出てきます。次に、左のメニューから”Functional”をクリックします。Files]となっていることに気づきます。6スキャンを除くとしていたことがここに反映されているわけですね。脳も標準化されています。その次に、左のメニューから”ROIs”をクリックします。“network”というROIがあるのがわかります。CSFに関しては、segmentationの結果がそのまま反映されています。CSFはこの後、”Denoising”に用いられます。“atlas”および”dmn”はもともとCONNに用意されているものです。これがどのように作られたのか、CONNの中にきちんと書かれています。“dmn.info”というファイルがあります。そこの記載を抜粋します。”atlas.info”から。ROIs)次に、”dmn.info”から。subjects)アトラスはてっきりAALと思い込んでいましたが、上をみると、違いますね。複数のアトラスをもとに構成されているということがわかりますね。ネットワークはバージョン16では、dmnしかありませんでしたが、17eでは、複数のネットワークが準備されているということになります。行かずに、画面左下にあるPreprocessingにうつります。(前処理が終わっているという場合は、中級編になりますので、まずは、前処理をしていない状態で説明していきます)まずは基本からいきましょう。画面右側にある”Add”をクリックします。すると、下図のようになります。これは前処理の順番が記載されています。(被験者の動きの評価および補正)を行います。(translation)これはAC-PC位置合わせの簡易版と思ってください。画像の原点を画像の重心に持ってきます。場合、これでAC-PCに比較的近いところにきます。これは万能ではありませんので、注意は必要です。correction機能画像のスライスタイミング補正を行います。scrubbing)これは機能画像で頭が過度に動いてしまったようなスライスを検出するという機能です。scrubbingと言います。AFNIではcensoringと呼ばれています。ちなみに、outlierは外れ値という意味です。CONNではscrubbingにARTというプログラムを用いています。normalization)機能画像のSegmentationと解剖学的標準化を行います。(translation)先ほどと同様に構造画像も画像の原点を画像の重心に持ってきます。normalization)構造画像の分割化と標準化を行います。kernel)機能画像の平滑化を行います。デフォルトでは、この順番で行います。Downを使っていけばいいわけです。基本でこのままでもいいのですが、最初のスキャンを省きましょう。fMRIでは最初の数スキャンは磁場が安定しないため、取り除いた方がいいと言われています。今回のCOBREのデータは、最初の4スキャンはすでに除かれているということですが、さらに6スキャン(トータル10スキャン)除いてみましょう。scans)を選択し、Addをクリックします。upで一番上に持って行きましょう。取り除くので、一番最初にしてしまった方がいいと思いますので...。下図のようになるはずです。これで前処理の準備ができました。すると、最初に平滑化のパラメータを聞かれます。デフォルトのまま8でOKです。次に、fMRIのスライスオーダーを聞かれます。(Siemens)を選択します。次に、最初の何スキャンを取り除くかの画面が出ます。今、ここでは6としておきます。すると、すでに取り除かれている4スキャンとこの6スキャンでトータル10スキャンが取り除かれることになります。TRが2秒ですから、20秒分取り除くことになります。どのくらいかというのはいろいろあるようですので、各ラボごとに決めたらよいと思います。次に、外れ値の閾値を設定する画面が出ます。”liberal”か”conservative”しかなかったのですが、最近のバージョンでは、”intermediate”が付け加わりました。以下のような関係になっています。