MarsBar教程

工具包及示例数据下载

本文是按照MarsBar0.44官方文档的教程来对MarsBar工具包来进行学习的,感兴趣的同学可以直接参考Mar
sBar官方文档(tutorial)来进行学习(百度网盘 提取码:0clb)。教程中所使用的数据为marsbar_example_data-0.3

安装MarsBar

教程中提供了两种安装方法:一种是在MATLAB中使用,一种是在spm中使用。但是前提是必须得提前装好spm,我装的是spm8。这是直接将MarsBar0.44解压后的文件夹放在MATLAB的toolbox目录里,然后在MATLAB中添加文件夹而不选择添加并包含子文件夹就好了。验证是否安装成功在命令框输入marsbar,若出现MarsBar的图形界面那么就算安装成功了,接下来就是按照manual去处理示例数据来进行学习了。(这里建议MATLAB安装路径的所有文件夹不要有空格和中文,否则你懂得。)
欢迎界面

数据集描述

数据集的来源不多介绍,我们主要对数据做如下处理:首先定义ROI,然后在ROI中做分析。教程中将介绍两种定义ROI的方式:一种是基于功能的定义,另一种是基于结构的定义。

数据处理和分析

示例数据包含的文件
rois包含感兴趣的预定义区域,目录sess1、sess2和sess3包含实验的三个sessions(runs)的切片。数据已经提前进行了时间校正和重新对齐、不失真、空间归一化数据等预处理。

定义功能性ROI

一个关键问题就是如何找到正确的ROI,这个问题在视觉皮层里比在其他功能区简单得多。一种方式是使用被试自己的激活模式来定义ROI,在这个数据集中我们感兴趣的是run1和run3的差异,因此我们用run2的spm分析来定义视觉皮层,然后将此用作ROI来分析run1和run3。所以在处理该数据集是我们不对run2进行比对,只对run1和run3进行分析。具体定义方法是我们在run2上进行SPM分析,并降低阈值,找出一些因噪声而比其他体素值更高的体素。我们使用这个噪声集群定义ROI,并从ROI中提取数据。

开始处理

一、预处理

首先将下载好的数据集进行解压,解压后的文件夹应该有四个子文件夹,如上图所示。这里我将解压后的文件存放到了G:\data\路径下。切换工作路径到marsbar0.44->example->batch目录下,batch里包含预处理的一些文件。然后在命令框内输入run_preprocess,之后会出现一个窗口,选择G:\data路径里的marsbar_example_data-0.3文件,然后点击done进行批处理。
批处理
这个命令将会对每个图像进行平滑处理(8mm FWHM),并且为每个run运行spm模型。

二、Define ROIs

preprocessing脚本已经对run1,run2,run3进行了预处理,现在我们需要在视觉皮层找到一个激活群集。
在marsbar窗口上选择ROI Definition,如下图:
定义ROI
每个选项的含义为:

  1. View… :在结构图像上显示一个或多个ROI。
  2. Get SPM cluster(s):使用SPM的显示结果界面去选择并可以保存选择的激活族群作为ROIs。
  3. Build:提供用于定义ROIs各种方法的界面(使用形状、框、球、激活群集和二进制图像。)
  4. Transform:提供一个GUI,用于组合ROI,并将ROI的方向翻转到大脑的右侧或左侧。
  5. Import:允许将所有SPM激活作为ROI,或从群集图像(如SPM结果界面中所写入的图像)中导入ROI,或从ROI定义的图像中导入ROI。
  6. Export: 把ROI写成图像用于其他软件包,例如MRIcro。

我们将使用run2的SPM分析来定义功能ROI。在marsbar界面中选择Get SPM cluster(s)…,这将会展示spm的结果界面。使用SPM提供的文件选择窗口导航到sss 2/spm 8_ana目录。选择SPM.mat文件,然后点击Done。如下图:
选择SPM.mat
在之后弹出的窗口中选择t-contrast然后选择stim_hrf之后点击Done。如下图:
Select contrasts
在之后弹出的窗口中按下图选择即可:
相关参数
回车后,就会出现如下界面:
在这里插入图片描述
在这里插入图片描述
与此同时MATLAB的工作路径已经转化到了sess2/SPM8_ana里了。将SPM图形窗口中的红色箭头移动到可视皮质中的激活群集。您可以通过拖动箭头或右键点击图像区域,选择goto global maxima来执行此操作。
选择区域
当红色箭头指向主族时,在spm的输入窗口中点击Write ROI(s)按钮,并且选择Write one cluster。如下图:
Write ROIs
为了简单起见,之后选择默认值即可,将stim_hrf_-9_-93_-15_roi.mat保存到sess2/SPM8_ana目录下。
Write ROI(s) 其他选项的含义:
Write one cluster :在选定位置写入单个族群。
Write all clusters :从SPM映射中写入所有集群;marsbar在将每个ROI保存为单独的文件之前,将请求一个目录来保存这些文件,并为ROI文件提供一个根名。
Return results UI:重新启动SPM结果界面,可以重新选择.Mat文件。
查看ROI:我们可以选择ROI definition的View来查看之前保存的ROI来检查效果如何。
效果图
理想情况下,我们希望将ROI限制在主要视觉皮层中的体素上。我们可以通过定义一个包含我们感兴趣的区域的box的感兴趣区域来实现这一点,并将其与激活集群相结合。如下:
Defining a box ROI :定义此盒子ROI,首先单击 ROI definition,然后选择Build。SPM输入窗口中会弹出一个新菜单。点击后选择Box (ranges XYZ),然后按照如下设置参数:
Type of ROI
参数
保存.mat文件到默认路径,即和之前的.mat同目录。检查效果的话和之前一样,选择 ROI Definition->View,选择这两个.mat文件,点击Done。这样之前的区域会被蓝色的框所覆盖住。如下图:
效果图
接下来就需要 combine这两个ROI,仅选择框和激活群集共享的体素。
Combine ROIs : 选择ROI Definition->Transform,会出现一个新的spm窗口 ,之后选择Combine ROIs ,在弹出的窗口中将两个.mat文件都选中,Done。然后会弹出一个 Combine ROIs的界面,按照如下输入:
参数
其中functions to combine ROIs中r1和r2的含义为:r1表示你选择的第一个ROI,r2表示你选择的第二个ROI,这里我们希望得到他们的重叠部分,因此用&连接符。
笔记 : 您可以使用大多数数学函数来组合ROI。如果您想组合两个ROI,那么组合出来的新的ROI具有ROI1中的所有体素和ROI2中的所有体素,可以使用函数r1|r2(读作“r1 或 r2”)。如果只希望得到ROI1不在ROI2中的体素,使用r1 & ~ r2。同样,您可以选择两个以上的ROI并组合它们。函数(r1 & r2)&~r3提供的是所有的ROI1和ROI2中的但不包括ROI3中的体素。需要注意的是r1 & r2表示的两个ROI的交集,r1 | r2表示的是两个ROI的并集。
Export :仅仅当做练习,我们可能会用别的工具来查看ROI,比如MRIcro。点击ROI definition->Export…->image 从弹出的界面中选择trim_stim_roi.mat作为输出的ROI,然后Done在Space for ROI image里选择 ROI native space之后按照默认操作即可。

三、ROI analysis

分为三个阶段来进行分析:

  1. Choosing the design
  2. Extracting the data
  3. Estimating the design model with the data

1、Choosing the design

在marsbar的窗口上选择Design,如下:
界面
design菜单提供了创建、估计、处理spm/MarsBaR设计。每个选项的含义为:
Show default design summary:在spm图形窗口中显示当前加载的设计摘要。
set design from file:会让你选择一个.mat的文件,并将它加载到MarsBaR中。加载进来的文件会成为默认的design,MarsBar将假定您要使用此设计工作,除非你通过加载不同的.mat文件来告知它。
Save design to file:将会保存当前的设计为一个文件。
Set design from estimated:当marsbar估计一个design时,它会将估计的design存储在内存中。有时,使用这个估计的design并将其设置为默认设计是有用的,以便能够使用这些菜单选项中的各种来检查设计。
PET models,FMRI models,and BAsic models:将使用SPM设计程序进行设计,并将其存储在内存中作为默认设计。
Explore:运行spm界面,用于审查和扫描设计。
Frequencies(event+data):可用于fmri设计。该选项提供了ROI数据中的频率图和特定fMRI事件的设计回归器。这将允许你选择一个高通滤波器,它不会移除设计中的大部分频率,但会去除数据中的低频,而这些数据通常是由噪声主导的。
Add images to FMRI design:允许你为尚未包含图像的fMRI设计指定图像。SPM和MarsBar可以在没有图像的情况下创建fMRI设计。如果要使用design提取数据(请参见下面),您可能希望使用此菜单项将图像添加到设计中。
Add/edit filter for FMRI design:提供用于指定高通和可能(SPM 99)低通滤波器的菜单选项,以及自相关选项(SPM 2及更高版本)。
check images in the design:查找设计中的图像名称,并简单检查磁盘上是否存在这些名称,在MATLAB控制台窗口中打印一条消息。使用保存的SPM设计的一个常见问题是,设计中指定的图像已经移动或删除。此选项是查看已发生的有用检查。
Change path to image:允许您更改保存在SPM设计中的图像文件名的路径,以处理自设计保存以来图像已移动的情况。
Convert to unsmoothed:获取设计中的图像名称,并对它们进行更改,以便它们引用相同图像的未平滑版本–实际上它只是从文件名中删除了“s”前缀。当您想要使用最初运行在平滑图像上的spm设计时,这是非常有用的,但是您的ROI非常精确,因此您希望避免对平滑的数据运行ROI分析。在你的ROI中模糊不想要的信号。

回到我们的例子中,在design菜单栏里选择Set design from file选项,然后在弹出的窗口中选择sess1/SPM8_ana路径下的SPM.mat文件,点击Done。marsbar将设计加载到内存中,并在SPM图形窗口中显示设计矩阵。

2、extracting the data
在运行模型之前,我们需要从功能像中提取ROI数据。因此要先在data菜单栏里选择EXtract ROI data(default),然后进行简单的分析。
Data菜单栏里其它选项的含义如下:
Extract ROI data(default):获取一个或多个ROI文件和设计,并在设计中的所有图像中提取ROI内的数据。对于默认设计,MarsBar将数据存储在内存中,以便进一步使用。
Extract ROI data(full options):允许您指定要从其中提取数据的任何图像集,并将为您提供用于提取数据的所有图像缩放选项。
Default region…:当您为多个ROI提取数据时,这将非常有用。在这个例子里,您可能需要限制绘图功能(下面)只查看其中一个区域; 您可以设置与此选项一起使用的区域。如果您没有指定,Mars BaR将假设您想查看所有区域。
Plot data(simple):绘制ROI数据到SPM图形窗口的时间历程曲线。绘图数据(完整)具有用于在绘图之前使用SPM设计过滤器过滤数据的选项,以及其他类型的绘制图,例如作为自相关系数的频率曲线或曲线。
Import data:允许您导入用于从MATLAB、文本文件或电子表格进行分析的数据。同理,Export data可以将数据导出到MATLAB变量、文本文件或电子表格。
Split regions into files :在您从多个ROI中提取数据的情况下是有用的,但您要使用来自这些ROI中的一个ROI的数据进行估计。
Merge data files: 通过将一系列ROI数据文件与多个ROI数据文件一起转换成一组数据,从而逆转上述拆分文件的过程。
Set data from file:将向MarsBar请求一个数据文件(默认后缀_mdata.mat),并将其加载到内存中作为当前数据集。
Save data to file:将将当前数据集保存到MarsBar数据文件中。
Show data summary:将一些摘要文本输出到SPM图形窗口。

在本教程中,我们希望从设计中的图像中提取ROI的数据。选择Extract ROI data(default),GUI将要求您选择一个或多个ROI文件;选择trim_stim_roi.mat文件,然后Done。

3、estimating the model
点击Results菜单里的第一个选项Estimate results,marsbar将会在MATLAB控制台和spm界面生成一系列报告参数。

四、基本结果

让我们通过为设计中的效果获取一些T值和F值来开始评估。点击MarBar界面的Results菜单,其中其他选项的含义如下:
Estimate results:采用默认设计和ROI数据,并估计模型。MarsBar将所估计的结果存储在内存中,作为要估计的设计。
Import contrasts:提供一个界面,供您从其他分析中选择对比,并将它们导入当前分析的对比列表中。
Refresh F contrasts:如果已将MarsBar设置为不刷新F对比度(请参阅选项:Statistic:Load updates F contrasts),那么可以使用此菜单选项刷新对比度。
Add trial specific F:将为每个试验和每个部分添加F对比度,如果没有的话。
Default contrast:将设置一个对比度作为此菜单上其他选项去默认使用,例如marsbar SPM图形的绘图功能。
Default region:适用于当前结果有多个区域的情况。它将从数据中选择一个区域以用于分析和绘图。
Plot residuals:从模型中提出各种残差图,以检查是否违反了假设或主要的异常值。
MarsBaR SPM graph:使用SPM绘图函数绘制参数估计、拟合和调整响应、事件或块相关响应估计等的对比图。
Statistic table:显示所选对比的各种统计数据。
% signal change:将会显示单个事件的百分比信号变化的估计值。
Set results from file:允许您选择要查看的结果。当您在marsbar中估计模型时,程序将自动将新结果设置为“结果”菜单的最新结果。如果你想分析一些其他的MarsBar结果,您可以使用此选项来选择和加载其他分析文件。marsbar估计结果的默认文件后缀是_mres.mat。
Save results to file:将当前估计结果(包括用于估计的数据)保存到磁盘上。

接下来,我们需要指定对比度,Import contrasts选项允许从以前的分析中得到对比度。我们首先点击这个选项,然后在弹出的界面中选择sess1/SPM8_ana路径下的SPM.mat文件,点击Done。之后按照如下图:
在这里插入图片描述
点击Done。这里我们只选择了一个来对比,其实也可以选择多个来对比。现在,单击MarsBar中的Results菜单中的“Statistic table”选项,选择stim_hrf contrast 然后单击Done。
在这里插入图片描述
t统计量是自解释的,未校正的p值只是用于分析的自由度的该t统计的单尾p值。校正后的P为未校正的P值对分析中的区域数进行Bonferroni校正得到的。在这个例子里,我们只对一个区域进行了分析,因此校正后的P值与未校正的P值相同。marsbar(像SPM一样)不会尝试校正对比度数目的p值,因为对比可能不是正交的,这将使Bonferroni校正过于保守。对于Contrast value列的值,对于T统计,这里的值是一个效果大小。请记住,t统计量由效应大小组成,除以这种效应的标准差。这里我们的对比很简单,只包含单个1,因此,对比值与模型中第一个参数的值相同。该参数的值将是与fMRI信号相关的HRF高度回归值的最佳拟合斜率。此效果大小度量是spm为con_0001.img,con_0002.img…一系列中的每个体素存储的数字。这些是用于标准二级/随机效应分析的数值。
同样的,我们也可以运行F contrast。再次点击Statistic table,如下:
在这里插入图片描述
点击Done即可。MATLAB控制台会输出如下信息:
在这里插入图片描述
现在,对比度值已经成为Extra SS。这是将添加到不包含对比度影响的模型中的方差的度量。F Statistic是度量值,调整用于效果的数量,并除以整个模型的残差方差。在二级分析中,没有使用这个额外SS值的简单方法。

1、Comparing fast and slow events
到目前为止,我们的结果表明,视觉刺激确实对视觉皮层产生了非常显著的影响,即使在非常频繁的事件中也是如此。到目前为止,这还不是“自然”杂志的论文。为了让事情变得更有趣,我们可以将run1中的效果与run3中的效果进行比较,在run3中,事件发生的频率要低得多。
在MarsBar窗口点击Design菜单栏,Set design from file,这次选择sess3/SPM8_ana下的SPM.mat文件。然后在Data菜单里选择Extract ROI data(default),MarsBar会询问你是否保存之前的数据,选择no,接下来再次选择trim_stim_roi.mat。点击Done,运行完之后在Results栏点击Estimate results ,当再次询问时,仍选择no。
当estimation完成后,单击Results里的Statistic table。接下来我们需要点击Define new contrast输入HRF对比度,如下图:
在这里插入图片描述
在这里插入图片描述
Done。之后控制台会输出:
在这里插入图片描述
您可以看到,对于run3而言,对比度值(与单个事件的信号变化成正比)大于run1。对此的一个解释是,run1中有更多的事件,因此对每个事件信号变化的估计更可靠(方差较小)。

五、使用结构ROI

到目前为止,我们已经使用了一个功能ROI。这具有通常很好地调谐到我们正在分析的被试的优点。缺点是我们必须使用完整的数据来定义ROI,我们将倾向于能够分析,并且当激活信号不强烈时,功能性ROI可能是噪声的。另一种方法是利用大脑的解剖来估计功能区的位置。

与使用函数ROI运行分析完全相同。先选择Design->Set design from file ,之后选择sess1/SPM8_ana/SPM.mat文件。然后点击Data->Extract ROI data(default)。当让你选择ROI文件时,定位到rois路径下,选择MNI_Putamen_L_roi.mat,然后点击Done。结束后,选择Results->Estimate results,同样的结束后,选择Results->Statistic table,输入stim_hrf contrast,对MNI_Putamen_R_roi.mat进行同样的操作你会在控制台看见两个表。如下:
在这里插入图片描述
在这里插入图片描述
研究对象用右手做出反应,因此我们预计右侧壳核的信号会比左边少。

六、批处理

将工作路径切换到example/batch下,在命令框输入run_tutorial.m,这将会批处理之前的大部分操作。具体可以查看代码。

七、总结

至此,MarsBar官方文档的教程已经结束了,这里只是将文档的示例数据的操作重复了一遍,对一些知识点进行了翻译。有些细节并没提到,读者可以去阅读文档来查看更多细节。
终于结束了,文档看的头疼。。。。

发布了17 篇原创文章 · 获赞 60 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_36744540/article/details/103288329