SPM5およびSPM8でAC-PCを自動で設定できるスクリプト

この記事は、http://www.nemotos.net/?p=17で紹介したものを日本語に訳しただけのものです。

2008年10月18日に、Carlton Chu氏がSPMのメーリングリストに便利なスクリプトを投稿しました。
メーリングリストでは特に反応はなかったのですが、非常に有用だと思いますので、本ブログで紹介させていただきます。

このスクリプトの目的はいたってシンプルです:AC-PCを自動的にあわせてくれます!

若干時間がかかります(1例に数分かかります)が、何百例もAC-PCをあわせなくてはいけないような状況では、大きな時間の節約になります。
もし関心があったら、次のスクリプトを試してみて下さい。SPM5、SPM8でうまく動きます。

オリジナルの投稿では、若干動作しないバグがありました。そこを修正してあります。

使用方法:添付のファイルをダウンロードし、SPM5かSPM8に置いてください。その後、MATLABのコマンドウィンドウから、”auto_reorient”とタイプしてください。ファイル選択のウィンドウが立ち上がりますので、AC-PCを設定したいファイルを選択して下さい(複数選択できます)。

function auto_reorient(p)
spmDir=which('spm');
spmDir=spmDir(1:end-5);
tmpl=[spmDir 'canonical/avg152T1.nii'];
vg=spm_vol(tmpl);
flags.regtype='rigid';
p=spm_select(inf,'image');
for i=1:size(p,1)
f=strtrim(p(i,:));
spm_smooth(f,'temp.nii',[12 12 12]);
vf=spm_vol('temp.nii');
[M,scal] = spm_affreg(vg,vf,flags);
M3=M(1:3,1:3);
[u s v]=svd(M3);
M3=u*v';
M(1:3,1:3)=M3;
N=nifti(f);
N.mat=M*N.mat;
create(N);
end

auto_reorient.m

Print Friendly, PDF & Email

8 thoughts on “SPM5およびSPM8でAC-PCを自動で設定できるスクリプト

  1. お世話になります。度々の質問失礼します。

    すぐできるVBMの教科書p 36の内容についての質問です。手動でAC-PCの補正を行った後、.matファイルができますが、どのようにすれば複数の画像を選択(5行目)することができますでしょうか。
    一方、そのような処理を行わずすべての画像を手動で合わせたままで次の解析に進んでも良いのでしょうか?
    どうぞよろしくお願いします。

    • どのようにすれば複数の画像を選択することができるかですが、.matファイルは不要で、p.35 の図3−18の画面の時に複数選べます。
      ただし、このようにして選ぶことはほとんどないです。

      すべての画像を手動で合わせたまま次の解析に進んで全く問題ありません。

      • ご連絡ありがとうございます。複数選ぶことができ解決しました。
        また、すべての画像を手動で合わせて次に進んで問題ないとのことで承知しました。
        ご回答ありがとうございました。

  2. ピングバック: AC-PC自動設定スクリプト(SPM12対応版)

  3. おはようございます。
    SPMを用いてfMRIの解析を行っております。
    解析の際にも、まずAC-PCを合わせた方が良いのでしょうか?

    • 基本的にあわせた方が好ましいです。
      CONNでは、AC-PCあわせではなく、画像の中心(重心)にoriginを合わせるという方法をとっています。
      画像の中心付近にAC-PCがあることが多いからです。

      originがあまりにも離れていると、Normalizationが失敗しますので、
      originがどこにあるかを確認しておくことは大事だと思います。

      • ありがとうございます。
        これから、合わせるようにしたいと思います。

        • あわせる際、SPMでは、Defaultでは、タイムシリーズの1番目しか選択されないので、
          全てのタイムシリーズを選択されるように気をつけてください。

          具体的には、ファイル選択画面で、

          1

          となっているところを、タイムシリーズが160ならば、

          1:160

          とする必要があります。

kiyotaka へ返信するコメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください