CONNチュートリアル 10: Setup – Covariates 2nd-level

続いてCovariates 2nd-levelの設定です。
このCovariates 2nd-levelは、今設定しなくても大丈夫です。
(逆に言うと、これまで設定してきたものは最初に設定する必要があります。)
2nd levelのCovariatesは解析を進めていくなかで追加したくなるものもありますので、そのような親切な設計になっています。

ただ、今は、設定しましょう。

楽をしたいので、Matlabの方で少し準備を進めます。

まず、Matlabで現在のディレクトリを確認します。

pwd

で確認できます。

conn037

もし、conn_practiceのディレクトリにいないようでしたら、移動します。

そして、さらにその下のsampleディレクトリに移動します。

cd sample

この中にSubjects.txtというファイルがあります。
これはMatlabで読み込むことができるように工夫してあります。

これをMatlabで読み込み、subjという変数に代入しましょう。
変数名は何でもいいのですが、タイプすることを考えると短い方がいいでしょう。

Matlabから

subj=load('subjects.txt');

とすると、右側のワークスペースにsubjという変数ができているのがわかります。

subj

でその内容を見ることができます。

conn038

ここで、第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が表示されるのですね。便利ですね。

ここまでできれば、共変量の設定はおしまいです。

7 thoughts on “CONNチュートリアル 10: Setup – Covariates 2nd-level

  1. 根本先生

    いつもhomepageで色々と勉強させて頂いております。本当にありがとうございます。
    先週、質問を一つ書き込んでみたのですが承認待ちにならなかったので、スパム扱いされたかと
    思い再度投稿させて頂きます。多少文面が違う点をお許しください。

    先日先生にCovariateの取り扱いについて質問させて頂いてから少しずつ解析をすすめ、ついに
    最終段階の手前くらいまでたどり着くことができました。
    ただ、ここに来てまた一つ重要な問題に直面してしまいました。
    私は健常者、疾患A、疾患Bの3群を対象にseed-to-voxel analysisを行い、各2群間の差を検討したいと思っています。
    3群の比較のコントラストの作り方についてお伺いしたく質問を書かせて頂いています。
    単純に考えますと、Subject effectsから3群全てを選び、Between-subjects contrastに[1 -1 0][1 0 -1][0 1 -1]という3つのコントラウトを順次入れて検討すればよいかなと思ったのですが、ConnToolboxのwebsiteを見てみたところ3群比較の場合最初にANOVA F検定 [1 -1 0; 0 1 -1]をやりましょうというような書き込みがありました。
    試しに [1 -1 0; 0 1 -1]というコントラストを試してみたところ、[1 -1 0][1 0 -1][0 1 -1]といった2群間の比較の際に得られた結果のいくつかを得ることができませんでした。
    height thresholdを少し緩めたりするとほぼ同じ結果が得られはするのですが・・・。
    このような場合、2群間の比較で得られた結果というのはあまり意味がないということなのでしょうか?
    もしくは2群間の比較でheight thresholdやcluster thresholdなどをもっと厳しい値に補正する必要があったということなのでしょうか?
    初歩的な質問で申し訳ありません。お時間があります時にご教授頂けますと幸いです。

    • ご質問ありがとうございます。

      これについては、ANOVAの基本に立ち返ることが必要かと思います。

      3群以上の平均に関しての検定では、一元配置分散分析 (one-way ANOVA)を行います。

      帰無仮説は、A=B=Cです。
      これをコントラストであらわすと、A=B と B=Cが同時になりたつので、
      Connのウェブサイトにあったように[1 -1 0; 0 1 -1]となります。

      で、一元配置分散分析の場合、これで有意差が認めたられた領域に関して、Post-hoc解析として、どの2群で有意差があるのかを調べます。
      2群の比較で得られたものは、ボクセル数の多さではなく、検定の回数という意味での多重比較の問題があるため、閾値がゆるくなります。
      なので、2群間の比較より[1 -1 0; 0 1 -1]の方が結果は出にくくなります。

      うまく説明できているかはわかりませんが、基本的な流れは

      ANOVAで検定
      有意な領域に対してPost-hocとして群間比較を実行

      です。

      これでいかがでしょうか。

      • 根本先生
        早速の丁寧なお返事、誠にありがとうございました。よく理解することができました。
        ANOVAで有意差を認めた部位についてconnectivity valueを抽出するなどして、post-hoc解析をすすめてみたいと思います。本当にありがとうございました。

  2. 非常に丁寧なCONNチュートリアル、誠にありがとうございます。
    安静時fMRI解析のCovariateについて一点質問させて頂いても宜しいでしょうか?
    精神神経疾患の中でもアルツハイマー病のようなものですと、側頭葉(海馬)付近の灰白質に萎縮を認めることが多いと思うのですが、そのように灰白質に萎縮を認めるような疾患の場合(実際にVBMで萎縮を認めたような場合)、灰白質容積などをCONNの2nd covariatesに入れるべきなのでしょうか?
    CONNはROI analysisがメインですので、ROI毎(灰白質の部位ごと?)の容積などを準備する必要があるのでしょうか?
    CONNチュートリアルの使い方を越えて安静時fMRI解析の一般的なことになってしまい恐縮ですが、ご教授頂けますと幸いです。

    • ご質問ありがとうございます。

      ご質問に対しては、Covariatesの意義をもう一度見直す必要があると思います。

      Covariates(今の場合は、狭義のcovariates, すなわちnuisance variablesになりますでしょうか)
      は、ある観測値に対して、影響し得る値のことですよね。

      ご指摘のように、アルツハイマー病では、海馬が小さくなります。
      ただ、頭の小さい人はもともと海馬が小さい可能性があります。
      そのときに、海馬が小さい=異常とは言えないわけで、
      頭の大きさを勘案したうえで、海馬が小さかったら異常と言えるわけです。

      CONNにおいては、観測値が何になるかというと、各関心領域におけるBOLD信号の時系列データとなります。

      BOLD信号の時系列データに萎縮が影響するかというと、あるボクセルに関心を向けるならば、そのボクセルにおけるBOLD信号のあがりさがり
      を見ているわけですので、萎縮はあまり影響しないということになるような気がします(断言するのは憚られるので弱く表現します)。

      したがって、私の意見では、CONNの2nd-levelにおいて灰白質容積をcovariateに指定する意義は少ないと思います。

      (ちなみに、脳血流SPECTにおいては、勘案しないといけないです。局所脳血流は部分容積効果の影響を受けるので、容積が小さいと、血流が下がったように見えてしまうので、
      その補正はしないといけないです。脳血流はワンポイントのデータですので。fMRIは時系列データであるというところが決定的な違いです)

      • 大変ご丁寧な回答、誠にありがとうございます。とてもよく理解できました。
        先生のチュートリアルを拝見して興味を持ちCONNを使い始めてみました。
        2nd-level analysis含めて取り組んでみたいと思っています!

        • ありがとうございます。
          今、時間がなくて更新できていないのですが、
          近日中に2nd-levelのところにも踏み込んでいきます。
          どうぞよろしくお願いします。

コメントを残す