fMRI 数据:使用 MATLAB 访问与特定大脑区域相关的 BOLD 值的最佳方法是什么?

fMRI data: What is the best way to access BOLD values associated with a specific brain region using MATLAB?

我有一些 Nifti 文件格式的预处理 fMRI 数据,我想访问与特定大脑区域相关的 BOLD 值,例如右前岛叶。我知道有很多函数可以从 nifti 文件导入数据,但我想确保粗体值字面上代表感兴趣区域中的 activity,因为我想基于它进行一些分类。

有什么好的有效的方法吗,最好是一些SPM相关的函数?

我不知道有一个简单的现有 Matlab function/toolbox 可以直接执行您想要的操作,但是所有元素都在那里,您应该能够自己编写类似的程序。

图像中的哪个体素属于哪个大脑解剖区域的信息由所谓的地图集提供,基本上是查找表。一个这样的地图集包含在 SPM 的流行 AAL extension 中(最高版本 8)。 AAL 工具箱的目的是将给定的体素坐标转换为解剖标签——这不是您需要的。

然而,这背后是一个 nifti 图像 "ROI_MNI_V4.nii",它在每个体素中包含整数代码,以及一个随附的文本文件 "ROI_MNI_V4.txt",它在这些整数代码和解剖标签之间进行转换。例如,右侧脑岛的代码为 3002。因此,您在 nifti 图像中查找包含代码 3002 的所有体素,并得到一个标记右侧脑岛中所有体素的掩码。

您必须知道,为了逐个体素匹配,您的数据文件需要与图集图像具有相同的分辨率和对齐方式。此外,图集已根据 MNI 标准 space 进行了校准,这意味着您必须将数据规范化为 MNI 模板,或者更好:将逆规范化转换应用于图集。如果您不知道我在说什么,您应该阅读 SPM 手册中有关空间归一化的部分。另一个问题可能是 AAL 分割对您来说不够细粒度;例如,右侧脑岛没有特殊代码。但是还有其他地图集,其中之一可能会提供您所需要的。

如果您开始实施这种方法来解决您的问题,但遇到困难,请随时 post 提出另一个关于具体问题的问题,并通过此处的评论指出我。

函数spm_regions.m将提取ROI。它直接从预处理图像中提取数据。但是,它会对输出进行白化和过滤,并且可以针对不感兴趣的回归变量(例如重新对齐参数)调整数据。我discuss this here

但是,如果您想要未经过滤的原始数据,请使用 spm_get_data.m