运行新版DPARSF遇到问题

Submitted by lynnrain on

各位RESTers,我在运行DPARSF的时候遇到问题。
序列情况,SIEMENS TRIO TIM 3T,梯度回波EPI序列,TR/TE 2000/30, FOV 256*256, Resolution 64*64, 每卷共36层,层厚 4 mm, 层间隔0mm, 翻转角 90度。共210个时间点。
运行环境为VISTA下的matlab 2009b,SPM8b(更新至9月的版本),DPARSF_V1.0_091201.和 REST2007V1.3_091201.
我尝试运行采集的一个受试者图像,功能DICOM图像建立于matlab工作目录下的FunRAW/Subject001目录下。
采用DPARSF处理数据的时候,当运行到显示如下窗口时停滞


同时matlab的命令窗口提示错误如下:
??? Error using ==> rest_loadmask at 37
There are no appropriate default mask file:
 Volume size=79*95*69 ,Voxel size=2*2*2;
 Volume size=53*63*46, Voxel size=3*3*3;
 Volume size=91*109*91, Voxel size=2*2*2;
 Volume size=61*73*61, Voxel size=3*3*3;
 Please set bMask = 0.

Error in ==> reho at 62
mask=rest_loadmask(nDim1, nDim2, nDim3, AMaskFilename);

Error in ==> DPARSF_run at 605
        reho(
        [AutoDataProcessParameter.DataProcessDir,filesep,FunImgDir,filesep,AutoDataProcessParameter.SubjectID{i}],
        ...

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

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

Error in ==> DPARSF at 36
    gui_mainfcn(gui_State, varargin{:});
 
??? Error while evaluating uicontrol Callback

问题:
(1)我看来,似乎是缺少了一个brain的模板文件,但是我查找了REST下面的Mask目录,没有找到对应分辨率的文件。
(2)用SPM的display观察detrend+filtered的文件,发现文件分辨率已经改为46*55*46,而原始的DICOM图像分辨率为64*64*36,是怎么回事呢?
(3)视频教程中为提取功能连接的covariable所使用的全脑、脑脊液和白质的mask是否就是Rest文件夹下mask里面的那几个文件?但是该文件夹中brain的mask有几个不同的分辨率,请问如何选用?
(4)非常新手的问题:我将SPM8b采用Dicom import导入的nifti文件,用rest里面的slice viewer打开,为何会出现颠倒的显示(请见附件),nifti格式不就是优越于带有空间信息吗?

希望各位不吝赐教,多多批评指正
谢谢
林云

YAN Chao-Gan

Mon, 12/07/2009 - 05:47

1. 当没有对应分辨率的MASK文件时,需要进行重采样。英文教程里面有介绍,另外,也很快会推出一个相应的中文教程。或参照http://www.restfmri.net/forum/node/88 2. 这取决于你在Normalize过程中填写的Bounding box和voxel size。 3. 是的。选用与你的功能像分辨率对应的文件,如果没有,则需要进行重采样,方法同上。或者你在Normalize中选用默认的Bounding box和voxel size。 4. 附件打不开。颠倒是指什么颠倒?REST Slice Viewer按照左是右,右是左来显示图像(所谓Radiology convention)。 祝好!

lynnrain

Wed, 12/09/2009 - 11:32

In reply to by YAN Chao-Gan

谢谢严老师:
1. 用 SPM8b 的 coreg:reslice 将 Rest 里面的一个全脑 mask 重采样后,程序顺利运行,但是到计算 fALFF 的时候,程序停滞,如图:
 
同时matlab提示错误如下:
Load mask "C:\REST2007V1.3_091201\mask\rBrainMask_05_53x63x46.img".
Build fALFF filtered mask. Wait...
fALFF computing. Wait...............
ReConstructing 3D Dataset fALFF. Wait...............
Saving fALFF map. Wait...
fALFF compution over, elapsed time: 57.6268 seconds.
??? Index exceeds matrix dimensions.
 
Error in ==> DPARSF_run at 719
            BrainTemp=mean(Data(BrainIndex));
 
Error in ==> DPARSF>pushbuttonRun_Callback at 907
    [Error]=DPARSF_run(handles.Cfg);
 
Error in ==> gui_mainfcn at 96
        feval(varargin{:});
 
Error in ==> DPARSF at 36
    gui_mainfcn(gui_State, varargin{:});
 
??? Error while evaluating uicontrol Callback

2. 采用 rest 的 slice viewer 打开转化好的 nifti 文件(从 SPM 的 dicom import 转换而来)后,图像如下,而用 MRIcroN打开却很正常,请问是怎么回事呢?
 




3. 关于 bounding box,为何要与 SPM 默认的 bounding box 参数不同呢?

4. 我希望在统计分析的时候 brodman 中的某个区域作为 ROI 使用,请问应该通过怎样的操作来实现呢?

非常感谢!

我也遇到一些问题:在detrend的时候matlab报错: 我的电脑是3G内存的,应该不会出有out of memory的问题 。请师兄帮忙看一下。

Removing the linear trend:

     Read 3D EPI functional images: "J:\MAOA\FunImgNormalizedSmoothed\MAOAVNTR3sub003".??? Out of memory. Type HELP MEMORY for your options.

Error in ==> repmat at 78
    B = A(subs{:});

Error in ==> rest_to4d at 63
                AllVolume =repmat(AllVolume, [1,1,1, size(ImgFileList,1)]);

Error in ==> rest_detrend at 23
    [AllVolume,VoxelSize,theImgFileList, Header] =rest_to4d(ADataDir);

Error in ==> DPARSF_run at 544
        rest_detrend([AutoDataProcessParameter.DataProcessDir,filesep,FunImgDir,filesep,AutoDataProcessParameter.SubjectID{i}], '_detrend');

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

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

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

??? Error while evaluating uicontrol Callback.

1. 你正在用DPARSF去除协变量,准备做功能连接吧?
    这个问题是由于你的EPI数据精度与DPARSF默认的精度不一致导致的。你需要重采样{DPARSF_DIR}\Templates下的全脑、白质、脑脊液模板,然后将这几个模板文件替换掉。将来的版本可能允许自动重采样。

2. 你的T1数据应该是矢状位扫描的。如果用SPM来转格式,头文件中的仿射变换矩阵形如下:
0    0    1.33    -82.3952
-1    0    0    160.8644
0    1    0    -128.678
0    0    0    1
而REST Slice Viewer并不支持这种不在正交空间的数据。
如果你用MRIcroN或DPARSF(自动调用MRIcroN)来转数据,则会自动Reorient large images to nearest orthogonal plane,结果文件以o打头(另有去除颈部的文件,以co打头,在视频中也有介绍)。这时,头文件中的的仿射变换矩阵变为:
-1.33    0    0    82.3952
0    1    0    -96.1356
0    0    1    -128.678
0    0    0    1
REST Slice Viewer支持这种数据。

3. SPM默认的bounding box偏小。DPARSF默认的bounding box是SPM中的第二个选项。

4. 用REST Slice Viewer中的Save Cluster功能来实现。当然,事先通过Misc下拉菜单中的Set Range of Threshold确定你需要的BA分区。

lynnrain

Fri, 12/11/2009 - 10:05

In reply to by YAN Chao-Gan

 谢谢您的及时回复:
采用 DPARSF 中内置的 dcm2niigui 转换结构像后 (如图)



随后生成如您所述的三个文件:



用rest slice viewer 打开 o* 文件后如图:



打开 co* 文件如图:



结构像序列参数: 梯度回波GRE序列,矢状位扫描,TR/TE 1.9/2.52, 视野 256*256, 分辨率 256*256, 1个slab, 内有 176层, 层厚1.0, 层间隔 0, 翻转角 90,带宽 170.
  1. 是否我的转换操作出了什么问题?
  2. 我将此前的总共近50个受试者的结构像数据,采用SPM中的 DARTEL 进行处理,生成template之后,在将图像推到 MNI 空间时也出现了报错,是否也是因为我的图像不是在正交空间的问题?
  3. 请问是否有什么方法将这样的图像转换到正交空间,从而避免出现重新将受试者请回来的惨剧发生?
谢谢您的时间!
林云

1. dcm2niigui转换的结果是正确的。REST Slice Viewer中冠状位有点拉长是因为voxel size不是正方体。这个不用担心。
2. 我认为要实现你的这个操作,应该用o打头或者co打头的文件。我建议用co打头的文件。
3. 用dcm2niigui就可以把这样的图像转换到正交空间。
祝好!
Forums