看到论坛中有提到海马亚区分割的问题,因此有问题进行求解。在论坛中看到,可以用MNI空间的T1作为输入文件,用于freesurfer进行海马亚区分割,这样得到的海马亚区就是MNI空间下的亚区文件。那是否可以用这个MNI空间的海马亚区的mask用于提取一批数据的值呢(比如已经用cat12分割完成的灰质体积图)?这样做是否正确?还是必须用freesurfer重新进行分割呢?
- 直接对MNI模板进行海马亚区分割,我觉得属于比较省事的做法,但不是最佳的做法。
- FreeSurfer官方也提供了海马亚区在MNI空间的概率分割结果,需要自己进一步二值化。使用官方的版本的好处是提供了一种准确性的保证(如果审稿人要质疑你),但是也要注意官方的版本只提供了MNI152 2009c symmetric空间的,如果要在其他MNI空间使用,还要进行MNI空间之间的转换。
- 直接使用FreeSurfer进行每个被试的海马亚区分割应该是理论上的最佳做法,特别是如果还有额外的T2或FLAIR图像。其次,如果使用FreeSurfer进行分析,就没有必要用CAT12了,因为FreeSurfer可以直接得到每个海马亚区的体积。我个人的偏好是,如果要用CAT12,最好是选择CAT12自带的分区模板,因为这些自带的分区模板都针对CAT12进行过优化。
谢谢老师,我现在就是已经用CAT12做完了分割,但是又想看看海马亚区,最佳的方法仍然是用freesurfer做一遍分割对吗?如果用FreeSurfer官方的版本MNI152 2009c symmetric模板来做是否合适呢?因为需要,我想要海马亚区的每个体素的MNI坐标,来提取一些其它的值,是否有合适的方法?
- 我个人觉得既然已经做了CAT12分割了,不妨先试试简单的做法,比如就用FreeSurfer官方提供的分区试试。特别是,如果你不仅想要分析海马亚区,而且还要根据CAT12进行一些其他分析。
- 如果你已经得到了MNI空间的海马亚区分区模板,那么得到每个体素的MNI坐标应该是直接的,主要看你熟悉哪种工具来进行操作。如果你觉得有困难,可以详细说说困难在哪里。
谢谢老师,因为我是医学的,自己摸索这些很困难。我们通过一些物理治疗的方式,可以使得干预后海马这个区域变大,我想看看海马亚区的变化。目前的困难就是:1.提取海马亚区的方法,我之前看到您的另一篇帖子,可以用MNI的T1来做分割,我已经做完分割,得到的头体尾的mask文件,是否可以用这个mask去提值?这样做会不会被质疑?2.如果我得到了这些mask,怎么才能得到这些亚区里面所有体素的MNI坐标呢?因为需要这些坐标去提取另一个指标的值。我在网上找了一些资料,结合AI,写了提取的代码,不知道是否正确,代码如下:
atlas_file = 'l_tail_mask_binary.nii';
V = spm_vol(atlas_file);
Y = spm_read_vols(V);
roi_labels = unique(Y);
roi_labels(roi_labels == 0) = \[\];
all_rois_coords = cell(length(roi_labels), 2);
for i = 1:length(roi_labels)
current_label = roi_labels(i);
idx = find(Y == current_label);
\[x, y, z\] = ind2sub(size(Y), idx);
vox = \[x, y, z, ones(length(x), 1)\]';
mni = V.mat \* vox;
mni = mni(1:3, :)';
all_rois_coords{i, 1} = current_label;
all_rois_coords{i, 2} = mni;
fprintf('ROI %d 提取完成,体素数 = %d\\n', ...
current_label, size(mni, 1));
end;
3.FreeSurfer官方提供的分区是一个概率模板,比如有个体素可能80%是在CA1,另外20%在其它的地方吗?这个可以直接将它变为mask吗?
- 如果你只关心头体尾这种粗一点的分区,那么我觉得是没有问题的。如果是比较精细的海马分区,我觉得可能经不起审稿人的质疑,虽然大体位置肯定是差不多的;而且即使用FreeSurfer直接分割,也有可能遭到质疑,因为单纯的T1 contrast可能也不够精准分割海马亚区,但是毕竟是FreeSurfer的标准工具,被质疑的可能性会小很多。
- 我没有实际去运行代码,我感觉思路是没问题的,先获得脑区的体素坐标,再将体素坐标转换为物理坐标。为了判断准确性,可以用看图软件打开mask,然后对照着看图软件确认一下自己得到的坐标是否和软件显示的坐标一致,只需要核对一个体素即可。如果你读不懂代码,可以让AI解释给你听,直到你完全理解逻辑了。你先尝试一下,如果还是有问题,我们再接着讨论细节。另一方面,如果只是要用这个mask去提取其他模态的指标,标准的做法是直接用mask去提取,而不是先提取出MNI坐标,当然这是另外一个问题。
- 一般做法是取最大概率,比如一个体素属于CA1的概率是0.8,属于CA2的概率是0.1,属于DG的概率是0.1,那么这个体素就认为是CA1。这个过程可能也需要用代码实现。