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

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

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

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

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

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

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

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

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

          1

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

          1:160

          とする必要があります。

コメントを残す