技术帖 | 什么是mask,如何做mask(未完)
本帖作为的一部分
目录贴请见
我在初学fMRI数据分析的时候常听到mask这个东西,但过了相当长一段时间才搞清楚了这是个啥东西。
你在用SPM跑完数据分析之后会发现你的结果里面那一堆乱糟糟的东西里面有一个文件叫 mask.img.如果用Display按钮来看看的话,就会发现mask是这个样子。
和我的另外一个关于ROI'的帖子一样,图中白色的地方,都是1,黑色的地方都是0。其实ROI和mask都一样,都是一个大矩阵。从上图中可以看到,这是一个61*73*61的大矩阵。之所以脑子边上有锯齿状的东西,是因为这个分辨率比较低,每个体素就是一个比较大的立方体,所以你看到的这些锯齿就是体素的某个边。
在统计分析的时候,如果你不主动设置mask的话,SPM会默认使用implicit mask,这个估计是SPM根据你的图像来取一定的阈限算出来的。所以有的时候比真正的脑子小一些(SPM偏保守),所以你对照真正的标准大脑会发现有些地方没占全。如下图:
你可以看到额叶最前面,还有一部分小脑没有包括,其实还有一部分颞叶,这里没显示。
所以有一些研究者会使用一个exlicit mask来做mask。(请你自己在SPM的第一层和第二层分析的界面上找找explicit mask在哪里)。关于这个mask,你可以在SPM自己的文件夹下找到,在SPM/apriori/中,有一个brainmask.nii,你用SPM的Display按钮打开会发现是这样的。它之所以看起来比较柔和是因为它是经过平滑的,它的边缘是1到0逐渐过渡的。说句题外话,我们在看比较早的电影或电视剧的时候,比如《罗马假日》,一出现女主角,那个画面就会比较模糊柔和,不是女主角就不用那个效果,其实那个就是做了个smooth,让画面显得很柔和,也让女主脸上的痘痘啥的看不清。这也是为何我们看到这些经过平滑的大脑都是那么有感觉!
这里的效果也是一样。
你看图中十字所在的地方就是0.65. 若要用它来作全脑mask的话,还要进一步加工一下。因为这个是smooth过的,要用来当mask的话需要做成一个binary的图(就是只有1和0)。
下面就讲讲如何用这种apriori图做mask。为了展示更多的效果,我们不用上面的图而是用灰质图来做mask。你会看到SPM/apriori/文件夹下除了这个brainmask之外,还有三种概率图,灰质、白质、脑脊液。
对于做VBM的同学,要做统计的时候没有必要用全脑的mask,因为你只关心灰质,那么此时用灰质概率图做个mask就可以了。这样可以有效缩小多重比较的次数,增大统计检验力(就是在进行多重比较矫正时容易显著)。下面我们用SPM的gui做一个灰质mask。这个是grey.nii的样子。
我们先看SPM的界面,
点击ImCalc按钮。然后出现一个Batch Editor。
在Input images中选上grey.nii,如果需要进行图像之间的运算,就要选择多个图像。这些选入的图像按顺序自动地依次被命名为i1,i2,i3......由于我们只选择一张图,所以只有i1
Output Filename可以随便起个名字。最关键的是Expression。如果你要做灰质mask的话就写成 i1>0.3 然后点绿色箭头就会在当前路径下生成你的新的mask了。上面为何写0.3呢?当然你也可以写成0.4, 0.35,这个是个经验值,根据你的需要来定。意思是说,图像里面大于0.3的地方都换算成是1,小于0.3的地方都换算成0。想一想上面那个柔和的某一点的值为0.65的边界你就明白了,用0.1的话,做出的mask相对更大,用0.8的话,做出的mask相对较小。你可以根据自己的需要进行操作。请看下面的对比,是不是差别明显?第一张图是用i1>0.1,第二张是i1>0.8,用的输入图像都是grey.nii.
请你自己试着用brainmask.nii来试着做一个靠谱的mask吧。
另外还有几点需要注意的地方,过段时间我会在后面加上。
@音符DE翅膀
问: 做完Mask后,还用对Mask进行重采样吗?因为我看到北师大REST的视频教程里,严老师说还要重采样,Mask体素大小采成3*3*3的,这个是必须的吗,不重采样可以用吗,有没有影响?
@jigongjun
答:Mask是否要重采样,取决于你要处理的数据的分辨率,如果mask的分辨率和数据的分辨率不一样,通常是要重采样的。在同一分辨率下,才能在mask里提取信号或者做统计分析。
@空里流霜
答:楼上滴友jigongjun说得很对啊。如果你是在SPM中的第一层和第二层分析,不用重采样也可以使用,我觉得SPM会在这个过程中自动重采,但是如果在REST中提取mask中的信号值的话不重采会报错。所以不放心的话全部重采也可以。
@qxz1
问:我现在手上有200幅平滑后的全脑图像,还有一个自己制作的mask,请问我怎么样才能批量得到 200幅只保留mask区域的图像呢?
@空里流霜
答:一个比较简单省事的做法是用我这个帖子中最前面提到的方法,也就是“然后保存成batch(一定要是m文件),打开后就如同下图这个样子。”前后的内容,将其保存成script然后在其中做一些改动,对于每个图像的操作,都用你的每个全脑图点乘自己的mask就可以了。
不过不知道你为何要这样做,一般不需要先把预处理后的图像保存mask中的内容,而是只在统计时使用。
@古林小永
问:1.是如何获取到第二幅图像这样的显示方式的,比如我现在有一副功能像或者结构像,还有一个mask,如何将这2图融合显示,得到你 第二幅图像显示结果。
2. 如果我的mask与结构像或者功能像的分辨率不一致,简单融合肯定会存在大小不一致情况,这种问题如何解决?上面讲到的重采样是如何单独实现的?@空里流霜
答:1.第二张图是用XJview显示的。结构像是xjview本身自带的,我只把mask显示上去而已。至于重叠显示,你就在xjview中选择other按钮就可以把你的结构像load进行来了。完成之后选择你的mask就可以了。REST viewer也能做这个,那个也是类似的。
2.如果你说的简单融合是1中你的意思的话,那么分辨率不一样不会造成大小不一样,大小应该是一样的,只是分辨率高的清楚一点。重采样的话是通过SPM的reslice这个模块实现的,具体可以看一下北师大严超赣博士的REST的视频。
本期编辑:陈锐
本文为滴友原创帖,若有疑问,请后台留言!
52brain,Connect Young Brains.
52brain精彩内容回顾
(点击即达)
fMRI研究的统计分析:FWE,RFT,FDR,Permutation |【索引】核磁共振技术(MR)常用贴列表 | 经颅电刺激tDCS综述帖 | 经颅磁刺激(TMS)研究进展 | Handbook of Functional MRI Data Analysis翻译 | Handbook of Functional MRI Data Analysis翻译第2章 | Handbook of Functional MRI Data Analysis翻译第3章 | Caret 5中文简明教程 | 自己录的spm8及xjview操作视频 | 中文版EEGLAB操作手册 | ERP实验设计逻辑与实验范式 | 关于EEGLAB数据预处理流程的讨论 | 关于使用EEGLAB处理EEG/ERP遇到的问题总结 | 心理学MATLAB初学者教程脑电数据读取 | ERP滤波的操作(水滴原创,版权所有) | ERP基线校正(水滴原创,版权所有)| 心理学MATLAB初学者教程-psychtoolbox介绍 | 实验设计之GO-Nogo | 【索引】脑电技术常用资源 |