用DPARSF做slice timing时报错

严老师您好,
我们最近开始进行脑静息态研究,经验不足,目前使用软件(DPARSF,SPM5 Updates)在MATLAB 7.30(R2006b vista版本)平台上应用DPARSF对自己采集的患者数据进行预处理,但是在进行到slice timing时出现了错误,下面一张图是我用DPARSF进行数据预处理的设置。我们使用的是西门子3T磁共振,图像间隔采集。

Slice Timing Setup:sub-2 OK
Warning: In the directory "F:\soft ware\spm5 2010\spm5-update", spm_unlink.mexw32 now shadows spm_unlink.dll.
 Please see the MATLAB 7.1 Release Notes.
> In spm_config at 215
  In spm_jobman>initialise_struct at 2426
  In spm_jobman>run_job at 480
  In spm_jobman at 89
  In DPARSF_run at 223
  In DPARSF>pushbuttonRun_Callback at 924
  In gui_mainfcn at 75
  In DPARSF at 38
Warning: In the directory "F:\soft ware\spm5 2010\spm5-update", spm_global.mexw32 now shadows spm_global.dll.
 Please see the MATLAB 7.1 Release Notes.
> In spm_config at 215
  In spm_jobman>initialise_struct at 2426
  In spm_jobman>run_job at 480
  In spm_jobman at 89
  In DPARSF_run at 223
  In DPARSF>pushbuttonRun_Callback at 924
  In gui_mainfcn at 75
  In DPARSF at 38
--------------------------
Running "Slice Timing"
Warning: In the directory "F:\soft ware\spm5 2010\spm5-update", spm_slice_vol.mexw32 now shadows spm_slice_vol.dll.
 Please see the MATLAB 7.1 Release Notes.
> In spm_config_slice_timing>slicetiming at 170
  In spm_jobman>run_struct1 at 1587
  In spm_jobman>run_struct1 at 1597
  In spm_jobman>run_struct1 at 1597
  In spm_jobman>run_job at 482
  In spm_jobman at 89
  In DPARSF_run at 223
  In DPARSF>pushbuttonRun_Callback at 924
  In gui_mainfcn at 75
  In DPARSF at 38

SPM5: spm_slice_timing (v$Rev: 671 $)              09:24:00 - 10/06/2010
========================================================================
Warning: In the directory "F:\soft ware\spm5 2010\spm5-update", file2mat.mexw32 now shadows file2mat.dll.
 Please see the MATLAB 7.1 Release Notes.
> In nifti.subsref>rec at 219
  In nifti.subsref at 45
  In spm_vol_nifti at 19
  In spm_vol>subfunc at 141
  In spm_vol>subfunc1 at 87
  In spm_vol>subfunc2 at 73
  In spm_vol at 57
  In spm_slice_timing at 130
  In spm_config_slice_timing>slicetiming at 170
  In spm_jobman>run_struct1 at 1587
  In spm_jobman>run_struct1 at 1597
  In spm_jobman>run_struct1 at 1597
  In spm_jobman>run_job at 482
  In spm_jobman at 89
  In DPARSF_run at 223
  In DPARSF>pushbuttonRun_Callback at 924
  In gui_mainfcn at 75
  In DPARSF at 38
Your TR is 2.0
Warning: In the directory "F:\soft ware\spm5 2010\spm5-update", mat2file.mexw32 now shadows mat2file.dll.
 Please see the MATLAB 7.1 Release Notes.
> In nifti.subsasgn>assigndat at 361
  In nifti.subsasgn>fun at 76
  In nifti.subsasgn at 20
  In spm_create_vol>create_vol at 79
  In spm_create_vol at 16
  In spm_slice_timing at 192
  In spm_config_slice_timing>slicetiming at 170
  In spm_jobman>run_struct1 at 1587
  In spm_jobman>run_struct1 at 1597
  In spm_jobman>run_struct1 at 1597
  In spm_jobman>run_job at 482
  In spm_jobman at 89
  In DPARSF_run at 223
  In DPARSF>pushbuttonRun_Callback at 924
  In gui_mainfcn at 75
  In DPARSF at 38
??? Cant open file.

Error in ==> file_array.subsasgn>subfun at 125
    mat2file(sobj,dat,va{:});

Error in ==> file_array.subsasgn at 63
        subfun(sobj,double(dat),args{:});

Error in ==> spm_write_plane at 33
V.private.dat = subsasgn(V.private.dat,S,dat);

Error in ==> spm_slice_timing at 261
    Vout(p) = spm_write_plane(Vout(p),slices(:,:,p),k);

Error in ==> spm_config_slice_timing>slicetiming at 170
    spm_slice_timing(P,Seq,refslice,timing)

Error in ==> spm_jobman>run_struct1 at 1587
        feval(prog,val);

Error in ==> spm_jobman>run_struct1 at 1597
            run_struct1(c.val{i},gui);

Error in ==> spm_jobman>run_struct1 at 1597
            run_struct1(c.val{i},gui);

Error in ==> spm_jobman>run_job at 482
    run_struct1(c,gui);

Error in ==> spm_jobman at 89
            run_job(varargin{2});

Error in ==> DPARSF_run at 223
        spm_jobman('run',jobs);

Error in ==> DPARSF>pushbuttonRun_Callback at 924
    [Error]=DPARSF_run(handles.Cfg);

Error in ==> gui_mainfcn at 75
        feval(varargin{:});

Error in ==> DPARSF at 38
    gui_mainfcn(gui_State, varargin{:});

??? Error using ==> DPARSF('pushbuttonRun_Callback',gcbo,[],guidata(gcbo))
Cant open file.

??? Error while evaluating uicontrol Callback

>>
我不清楚是SPM软件问题呢还是我操作出了问题,期盼老师回答,谢谢!

你好!
感觉是你的SPM装的有问题,你可以用SPM单独跑一次slice timing看是否也有问题。
另外,juwell说的很重要,请一定注意。感谢juwell的回复。
祝一切顺利!

谢谢各位老师,按照你们所说重新安装SPM,这个问题已经解决了。
现在又遇到新问题。
我同时做了有任务和静息态脑功能,参数相同。静息态脑功能数据的预处理顺利完成。
我希望用DPARSF做有任务脑功能的预处理。先用DPARSF做数据转换,去掉10个时间点,不做slice timing,用DPARSF的Utilities在数据前加前缀“a”,在进行realign,虽然出现很多“warning”,但是仍然完成了realign。接下来做基于T1的normalize,报警!如下

??? Index exceeds matrix dimensions.

Error in ==> DPARSF_run at 158
        InputFilename=[AutoDataProcessParameter.DataProcessDir,filesep,'T1Raw',filesep,AutoDataProcessParameter.SubjectID{i},filesep,DirDCM(3).name];

Error in ==> DPARSF>pushbuttonRun_Callback at 924
    [Error]=DPARSF_run(handles.Cfg);

Error in ==> gui_mainfcn at 75
        feval(varargin{:});

Error in ==> DPARSF at 38
    gui_mainfcn(gui_State, varargin{:});

??? Error using ==> DPARSF('pushbuttonRun_Callback',gcbo,[],guidata(gcbo))
Index exceeds matrix dimensions.

??? Error while evaluating uicontrol Callback

我试用基于EPI的normalize,虽然出现很多“warning”,但是可以通过。
我用同样的T1数据,做静息态的基于T1的normalize完全没有问题。
我用静息态的T1img数据做normalize也不行。

问题:1)上述处理有什么问题吗?为什么不让做基于T1的normalize ?        
         2)realign有许多warning是否影响后面的处理。

盼回复,谢谢

又有新问题。按照视频所说进行统计计算(我只用了两个被试)
One sample T test

之后做Estimate。顺利通过。
Result 中的Define new contrast出问题了,如图

                      

什么地方出问题了??
盼回复,谢谢

 

Hi!
我用同样的T1数据,做静息态的基于T1的normalize完全没有问题。
我用静息态的T1img数据做normalize也不行。

这段话我没有理解。
不能用T1做normalize的原因,应该是你的T1数据没整理好。看看T1Img文件夹下面正确的放置和生成了文件吗?注意T1Img和FunImg下的被试ID要保持一致。
warning不影响后续处理。
我印象中单样本T检验的最小样本量是3。你增加些被试吧。

可能是样本量太小,我再试试。

关于normalize
我用西门子3T机器。同样一个被试先做静息脑功能,再做有任务脑功能,并扫描T1WI。
用静息功能像和T1结构像做静息态功能分析,用DPARSF做预处理完全通过。有任务功能像和同样的T1结构像用DPARSF做预处理(方法如前所述),做到normalize时报错。
SAG T1WI 原始数据放在T1Raw文件夹里。直接用DPARSF做T1数据转换和normalize,一做就报错。一共两个被试,自动生成T1Imag文件夹里只有Sub-2,Sub-2里面没有文件生成。这个T1Raw数据是从静息功能分析中复制过来的。我甚至把静息态分析中生成的T1Img文件复制过来,用在有任务的功能处理时,也不能通过。

同样的数据,我用SPM做预处理通过了。但是用DPARSF很方便,我仍然希望用DPARSF做预处理。
我比较了一下SPM和DPARSF处理生成的T1Img文件不同,这是正常的吗?

我不明白T1Raw中的数据不就是从机器中拿出来的原始数据吗?DPARSF有一个选项是T1 DICOM to NIFTI,不是自动做了数据转换吗?还需要整理数据吗?

感谢老师的帮助!新手还有许多问题,要经常麻烦各位老师,先谢谢各位老师了!

请把报错的详细信息贴上来。

报错如下:

??? Index exceeds matrix dimensions.

Error in ==> DPARSF_run at 158
        InputFilename=[AutoDataProcessParameter.DataProcessDir,filesep,'T1Raw',filesep,AutoDataProcessParameter.SubjectID{i},filesep,DirDCM(3).name];

Error in ==> DPARSF>pushbuttonRun_Callback at 924
    [Error]=DPARSF_run(handles.Cfg);

Error in ==> gui_mainfcn at 75
        feval(varargin{:});

Error in ==> DPARSF at 38
    gui_mainfcn(gui_State, varargin{:});

??? Error using ==> DPARSF('pushbuttonRun_Callback',gcbo,[],guidata(gcbo))
Index exceeds matrix dimensions.

??? Error while evaluating uicontrol Callback
 

Please check what do you have under "T1Raw", and report the folders and files in detail.