关于DPARSFA新增功能newsegment+DARTEL的问题

谢谢上一封关于DPARSFA新增功能的回复,继续还有一些问题想请教下:

1、我试做一例,normalized by DARTEL
做到New segment+DARTEL这步,程序跑Running new segment一段时间后报错,出现Failed 。。。以下的命令,是不是也是内存溢出的问题,我这种内存溢出应该怎么解决?
报错程序:
Running 'New Segment'
Failed 'New Segment'
Error using ==> permute
Out of memory. Type HELP MEMORY for your options.
In file "C:\Program Files\MATLAB\R2009b\toolbox\matlab\elmat\ndgrid.m" (???), function "ndgrid" at line 48.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_invert_def.m" (v1434), function "rgrid" at line 76.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_invert_def.m" (v1434), function "spm_invert_def" at line 35.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_write8.m" (v3102), function "spm_preproc_write8" at line 338.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_run.m" (v2281), function "run_job" at line 112.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_run.m" (v2281), function "spm_preproc_run" at line 27.

The following modules did not run:
Failed: New Segment

??? Error using ==> cfg_util>local_runcj at 1426
Job execution failed. The full log of this run can be found in MATLAB command window, starting
with the lines (look for the line showing the exact #job as displayed in this error message)
------------------
Running job #1
------------------
Error in ==> cfg_util at 699
Error in ==> spm_jobman at 203
Error in ==> DPARSFA_run at 1067
Error in ==> DPARSFA>pushbuttonRun_Callback at 1133
Error in ==> gui_mainfcn at 96
Error in ==> DPARSFA at 31
??? Error while evaluating uicontrol Callback

同时发现已经生成了一些文件:BiasField_20100702_124624t1mpragewangyongping3T-018-01as011a1001.nii、c120100702_124624t1mpragewangyongping3T-018-01as011a1001.nii、iy_20100702_124624t1mpragewangyongping3T-018-01as011a1001.nii、m20100702_124624t1mpragewangyongping3T-018-01as011a1001.nii、rc420100702_124624t1mpragewangyongping3T-018-01as011a1001.nii,这几类图像各自有什么意义呢,同为nifti格式,为什么这步要转换为nii格式,而不直接生成hdr/img格式?

2、DPARSFA界面中Smooth 与的区别在哪里,既然只是用来设置平滑核,那么感觉只有Smooth模块就可以了啊。
3、 我想尽量提高静息数据预处理准确性,想尝试把本来使用的normalized by unified segmentation换为Normalize by DARTEL,所以想多了解DARTEL的信息。查了查文献,发现确实DARTEL在理论上要比传统的分割方法更好,但发现目前还没有将DARTEL运用于静息态功能像配准的,仅看到一篇用于任务态数据配准的,Title:Reducing Inter-subject Anatomical Variation: Effect of Normalization Method on Sensitivity of Functional Magnetic Resonance Imaging Data Analysis in Auditory Cortex and the Superior Temporal Region。该文献提示在任务相关的激活区域,DARTEL的配准效果鉴于HAMMER与传统的EPI模版或unified segmentation之间。想请问严老师,是否可以推荐将DARTEL利用于静息态功能像配准的文献,或是否可以分享下您的DARTEL应用于静息态功能像配准的经验?
问题好多,非常感谢论坛老师们的耐心与热情!

1. 内存溢出请参考一下http://www.restfmri.net/forum/Course#comment-168,看看能不解决。用.nii简洁一点,文件数更少,现在我也更喜欢用.nii了。

2. (5) "Smooth by DARTEL": DARTEL Normalize to MNI space (Few Subjects) for functinal images but with smooth kernel as specified, the smoothing is part of the normalisation to MNI space computes these average intensities from the original data, rather than the warped versions. 这个平滑同以前常用的简单平滑不太一样,通常用的平滑(即Smooth选框),是做完Normalize之后再进行平滑的。但Smooth by DARTEL效果似乎也不一定好,用以前常用的选项也完全可以。

3. DARTEL比较新,并且使用不是特别方便,所以可能看见的文章还比较少。DPARSF把其步骤简化了,以后可能会多起来。我现在都是用DARTEL来配准,我想静息态用DARTEL的文章应该会慢慢多起来。


多谢回复,我用DPARSF又试了一遍DARTEL标准化的预处理,从slice timing realigment 到标准化,做到New segment的时候还是出现与上面相同的报错,转换为3GB后仍然解决不了,猜测是否可能需要修改报错的m文件呢?我再用DARSFA,同样的步骤设置,又出现Running 'New Segment'
Failed 'New Segment'
Error using ==> zeros
Out of memory. Type HELP MEMORY for your options.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_write8.m" (v3102), function "affind" at line 427.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_write8.m" (v3102), function "spm_preproc_write8" at line 241.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_run.m" (v2281), function "run_job" at line 112.
In file "C:\MATLAB7\software\spm8\toolbox\Seg\spm_preproc_run.m" (v2281), function "spm_preproc_run" at line 27.

The following modules did not run:
Failed: New Segment

??? Error using ==> cfg_util>local_runcj at 1426
Job execution failed. The full log of this run can be found in MATLAB command window,
starting with the lines (look for the line showing the exact #job as displayed in this
error message)
------------------
Running job #2
------------------

Error in ==> cfg_util at 699

Error in ==> spm_jobman at 203

Error in ==> DPARSFA_run at 1067

Error in ==> DPARSFA>pushbuttonRun_Callback at 1133

Error in ==> gui_mainfcn at 96

Error in ==> DPARSFA at 31

??? Error while evaluating uicontrol Callback
从命令看,同是out of memory,一个是permute,一个是zeros,似乎还有所不同!但是当我不选slice timing smooth这些分割前的处理,只选择new segment+DARTEL时,就不out of memory了,DARTEL可以运行,很奇怪! 严老师是否可以再帮忙分析一下,感觉好复杂~!