使用基于MATLAB的Brain Covariance Connectivity Toolkit (BCCT),进行CaSCN分析(选择的模式是Map(Surface))出现报错

基于SBM分析得到的皮层厚度数据,使用基于MATLAB的Brain Covariance Connectivity Toolkit (BCCT),进行CaSCN分析(选择的模式是Map(Surface))出现以下两种情况的报错:

(1)当选 nii格式文件引入ROIs后运行,报错如下:

Output argument “Y” (and maybe others) not assigned during call to “SurfStatReadData1”.

Error in SurfStatReadData (line 52)
data1=SurfStatReadData1(filenames{1,j});

Error in BCCT_CaSCN_Surf_compute_freesurfer (line 98)
datroi = SurfStatReadData(rois);

Error in BCCT_CaSCN_Surf_GUI_freesurfer>Compute (line 434)
BCCT_CaSCN_Surf_compute_freesurfer(Parameter);

Error while evaluating UIControl Callback

当选 mgh格式文件引入ROIs后运行,报错如下:

Undefined function or variable ‘dataroi’.

Error in BCCT_CaSCN_Surf_compute_freesurfer (line 99)
dataroi(isnan(dataroi)) = 0;

Error in BCCT_CaSCN_Surf_GUI_freesurfer>Compute (line 434)
BCCT_CaSCN_Surf_compute_freesurfer(Parameter);

Error while evaluating UIControl Callback

备注:
选用的ROI文件,由freesurfer自带的aparc+aseg.mgz文件,限定DK模板的64个label的区域,经mri_vol2surf转换投影生成对应左、右半球球面的各自带有34个label值的mgh文件(这两个文件成功用于BCCT软件包SCN分析Map(Surface)模式的ROIs引入并跑出结果;对于BCCT软件包,都在Map(Surface)模式下,SCN分析的ROIs引入须选取两个mgh文件,经尝试如前述选用左右半球面各一个mgh是可行的,而CaSCN分析的ROIs引入不知为何这样设计只能选取1个mgh/nii/img文件,故根据前面SCN分析的经验尝试合并左右半球的mgh文件后再引入,但出现了以上报错);进一步通过基于Python3的nibabel将左右半球面的mgh文件合并为一个mgh文件(用于CaSCN分析ROIs的选取),再将其转换为nii格式文件(用于CaSCN分析ROIs的选取)。

  1. 我并没有用过BCCT这个包,以下仅仅是我的猜测。从你的描述来看,如果你输入的皮层厚度文件是左右半球合并在一起的,那么你的label/ROI文件可以左右半球合并在一起,否则怎么知道左右半球的顺序,比如到底是左半球在前,还是右半球在前。另一种可能是,这里的mgh/nii预期的是一个3D的图像,不是皮层的文件,比如你直接把aparc+aseg.mgz文件放进去试试,软件可能自己会进行mri_vol2surf。
  2. 我搜了一下这个包,你可以考虑直接在BCCT的仓库下去提issue,也许开发者会回复你,万一是软件bug呢,因为一般来说,不同分析模块会复用同一套输入输出逻辑。