1.数据介绍

  下载:http://www.fil.ion.ucl.ac.uk/spm/data/auditory/

  SUBJECT:1

  VOLUME: 64*64*64

  TR:7s

  total acquisitions:96个功能像

  volumes of one block:6

  total blocks:16

  

  数据集中包含一个结构像数据,96个功能像数据。 由于功能像是紧接着结构像进行采集的,所以建议将96个功能像的前几个volume去除掉。这里,选择去除前12个,利用剩余的84个功能像进行分析。

  

2.新建工作目录

  

  建立工作目录:DIR。然后,建立两个子文件夹:

    (i) DIR\jobs,存放批处理脚本,中间数据,模型参数 ;

    (ii) DIR\classical,存放中间图像文件。

3.空间预处理

3.1头动矫正

  (1)在spm总的按钮窗口中,选择Realign下拉列表,从中选择“Estimate & Reslice”,会弹出批处理对话框。这里Estimate 代表评估出头动参数,Reslice代表对图像进行几何矫正重采样。

(2)在弹出的批处理对话框中,左边导航栏会显示当前要处理的批处理任务有哪些,一般只会有一个;右边是参数设置窗格,里面包含当前批处理涉及的所有参数,有些参数必须进行设置,这样的参数名后面,一般跟有”<-x”。有些参数则没有进行强制要求。如果那些跟有”<-x”的参数,没有进行设置,则run按钮是处于非激活状态的。

这一步,只有选择数据文件是必须要设置的。

(3)其他参数如果选择默认的话,那么最终结果会产生:一对mean*平均脑,一个rp*头动参数文件,以及所有r*.hdr/img的重采样后的文件。

mean*平均脑在后面t2图配准到t1图像时用到。

一个rp*头动参数文件,在后面模型的定义时,根据需要可以作为设计矩阵中的一个condition。

所有r*.hdr/img的重采样后的文件,作为后面配准、归一化操作的输入。

(4)最好将所有设置的参数,进行保存,存放到DIR\jobs中,命名为:align.m。这样才有批处理的意义嘛。

3.2 t2图配准到t1图像

(1)在spm总的按钮窗口中,选择Coregister下拉列表,从中选择”Coregister (Estimate)”, 会弹出批处理对话框。这里Estimate 代表仅仅对待配准图像做出估计,而不会对img数据进行几何矫正重采样。估计出的参数存放到结构像的hdr文件中。

(2)在弹出的批处理对话框中的参数设置窗格中,有两项必须进行设置:reference image 和source image。Reference image选择在3.1头动矫正中生成的mean*平均脑文件;source image选择数据集中的结构像。

(3)其他参数如果选择默认的话,那么最终结果会产生:仅仅对结构像的头文件hdr文件进行修改。

(4)最好将所有设置的参数,进行保存,存放到DIR\jobs中,命名为:coregister.m。这样才有批处理的意义。

在这一步处理完之后,可以利用spm总的按钮窗口中的Check Reg工具,检查mean*平均脑文件和结构像之间的空间相关性。

3.3 t1图像做分割

(1)在spm总的按钮窗口中,选择Segment按钮, 会弹出批处理对话框。

(2)在弹出的批处理对话框中的参数设置窗格中,有一项必须进行设置:Data。这里的Data选择数据集中的结构像文件。

(3)将”Gaussian per class”由默认的[2 2 2 4] 设置为 [1 1 1 4]。其他参数如果选择默认的话,那么最终结果会产生:

分割后的灰质图像;

分割后的白质图像;

一个经过场强矫正后的结构像;

空间标准化参数文件;

空间逆标准化参数文件。

(4)最好将所有设置的参数,进行保存,存放到DIR\jobs中,命名为:segment.m。这样才有批处理的意义。

在这一步处理完之后,可以利用spm总的按钮窗口中的Check Reg工具,分别检查灰质图像和结构像之间的空间相关性,以及白质图像和结构像之间的空间相关性。

3.4 分割后的t1图像做配准到模板空间

(1)在spm总的按钮窗口中,选择Normalise按钮,从中选择” Normalise (Write)”, 会弹出批处理对话框。这里Write代表对图像进行几何矫正重采样,这样才叫配准嘛。

(2)在弹出的批处理对话框中的参数设置窗格中,有一项必须进行设置:Data。这里的Data参数包含两个子参数:parameters file 和 images to write。

Parameters file : 选择在3.3生成的空间标准化参数文件;

Images to write : 选择在3.1中生成的所有重采样校正后的功能图像文件;

(3)将”writing options”中的voxcel size从”[2,2,2]”修改为”[3,3,3]”。

(4)将上面的参数设置保存为normalise.m,方便以后批处理使用。然后,点击RUN运行,在这里会生成这些文件:就是对所有重采样的功能图像配准到模板空间后的新的功能图像文件。

如果以后希望把功能激活图像叠加到结构图像上,那么结构图像也需要做一下配准。Parameters files和上面一样,也选择在3.3中生成的空间标准化参数文件。Images to write选择在3.3中场强校正后的结构像。这里的voxel size要设置结构像的大小,也就是”[1,1,3]”。将这一步的批处理操作保存为struct_normalise.m。

3.5 空间平滑

(1)在spm总的按钮窗口中,选择Smooth按钮, 会弹出批处理对话框。

(2)在这一步有两个参数必须要进行设置:images to write,选择要进行平滑的功能图像,将在3.4中生成的所有配准后的功能像选择进来就好了;平滑的”全宽半高FWHM”,将默认的”[8,8,8]”,改成”[6,6,6]”。这里的6,是我们所采用数据的体素大小的两倍。

(3)将批处理参数保存成smooth.m,然后点击RUN运行。这里会将选进来的所有功能像进行平滑,生成相应的平滑后的文件。

到这里,预处理也就结束了。

4.模型定义,评估,检查

(1)在spm总的按钮窗口中,选择specify 1st - lever按钮, 会弹出批处理参数设置对话框。

(2)在”timing parameters”选项中,有一些参数必须进行设置:

Directory 输出目录设置为:DIR\classical,用于存放在这一步生成的SPM.mat;

Units of design 设定为 scans;//也就是说这里以每一次扫描为单位,而不是时间seconds。

Interscan interval 也就是TR,设定为7s。

Data and design又存在很多子选项需要设置:

Scans选择在上面预处理生成的平滑后的,配准后的,头动校正过的96个功能像的后84个图像。

Condition   也存在子选项需要设置:

Name:active;

Onsets:设置为 6:12:84

Duration:设置为6

这里的设置需要解释一下,这样设置之后,我们其实可以算出来,就是这84个scans中,是onsets的scans分别为:

如果是从零开始计数,就是

6 7 8 9 10 11 为on

18 19 20 21 22 23 为on

30 31 32 33 34 35 为on

42 43 44 45 46 47 为on

54 55 56 57 58 59 为on

66 67 68 69 70 71 为on

78 79 80 81 82 83 为on

其余的都为off。

(3)这里参数都设置好之后,点击保存为”specify.m”批处理文件。然后,点击RUN运行。会在输出目录中得到一个SPM.mat文件。

这里,为了确保模型参数设置的正确性,推荐使用在spm总的按钮窗口中的Review按钮来检查。点击Review按钮之后,会弹出一个窗口。在窗口中有一个小的菜单,菜单中有这样几个子项:

Design matrix会把设计矩阵进行图形化展示。

Explore -> session 1 –> active 会展示一个叫做”exploring design matrix”的窗格。总共会展示三幅图像:

一个叫做active的regressor,就是我们上面定义的active condition。但是这不同于condition方波化的展示,在这里将方波和hrf做了卷积。

以及这个active regressor的谱密度图。

还包括一个hrf图形。

Design orthogonality:

包含一个设计矩阵;

设计矩阵的下方是一个正交性矩阵,用以展示不同regressor之间的正交性。

在spm中,设计矩阵已经设计出来之后,其实整个glm已经完成一大办。下面所要做的就是估计和推断。估计就是通过逆矩阵运算,求解得到原始beta参数,beta参数指的是不同regressor对最后测量得到的信号,所产生的effect效应。这是glm统计学中的术语。然后,我们基于beta和残差构造t统计量,进行推断,当然需要先设置一个显著性水平才可以。

5.推断

在做完估计之后,就可以在spm总的按钮窗口中,选择results按钮, 会弹出批处理参数设置对话框。

在这里,把在4中生成的SPM.mat选进来就好了。这时,就会弹出contrast manager对话框。

这里需要对spm下的glm的contrast脑补一下:

首先,contrast是为了简化多变量分析,多变量假设检验的一种方法。Contrast其实是一个权重向量。其实,类似我们在求多元微分学中,当只考虑一个变量的变化趋势时,我们就使用偏导数这个工具来研究问题。这里,也是这个原因,通过contrast可以突出某个变量的效应effect,可以忽略某个变量的效应effect。

一般是多少个condition,就在contrast向量中对应多少个元素,这里对于设计矩阵中的常数covariante是不考虑的。

参考:PrinciplesStatistics - MRC CBU Imaging Wiki中的Introduction to SPM  statistics

在这里,由于只有一个condition,就是active。所以,contrast向量,只含一个元素。Active -> rest 用1来表示,rest -> active 用-1来表示。

5.1 contrast manager

(1)在contrast manager中选择定义新的contrast, “Define new contrast”。

(2)在Define new contrast中进行contrast的设置。设置后,重新返回到contrast manager对话框中。

(3)然后,在contrast manager中选择刚定义的contrast。点击DONE。那我们可以到下一步。

5.2 masking

在5.1点击DONE之后,会弹出新的窗口,在窗口中问你,

Mask with other contrast ? [Yes/No]. 还需不需要其他contrast来做模板,我们选择no就好了。

Mask分两种:inclusive 和exclusive。

Mask并不会影响最后p值得计算,只是包含或者排除一些满足要求的体素。

5.3 thresholds

      这里设置p值,其实是设置显著性水平(范统计学中一类错误的概率),这里的设置方法是:

Title for comparison  设置为 active > rest

p value adjustment to control: [FWE/none].  选择FWE.

p value(family-wise error) 具体的p值设置为默认值0.05。

在spm中,显著性水平,或者一类错误的概率,称为假阳性水平。

接下来,会让你设定最小cluster的大小:

Extent Threshold fvoxelsg [0] 这里保持默认值0就好了。如果这里输入某一个值v,就代表最终激活图中,各个cluster中至少包含v个体素。

>> 这一步,设置完之后,spm就真的给我们构造一个spms统计参数图了。

5.4 files

在上一步,threshold设置完之后,会在SPM.mat所在目录下得到一些文件:

两个加权参数文件:con 0002.hdr/img, con 0003.hdr/img;

两个t统计量文件:spmT 0002.hdr/img, spmT 0003.hdr/img。

5.5 maximum intensity projection

最大强度投影其实是医学血管造影中的技术,什么意思呢?就是仅仅对血管成像,而把什么骨头啊,组织什么的,全部都忽略掉。

其实,在spm中最大强度投影指的就是玻璃脑。

在上一步,设置完阈值之后,就会弹出一个玻璃脑graphics窗口,用以显示结果;还会弹出一个design交互式对话框。这个design交互式对话框非常强大,可以选择控制显示的内容,可以进行叠加、渲染。

在所弹出的玻璃脑graphics窗口中,左上方显示玻璃脑,右上方显示设计矩阵。设计矩阵是可交互的,右击设计矩阵会显示相应参数名,左击设计矩阵会显示相应beta向量中的元素。

说明:

(1)    定义对比 ,一般 0不用输,要看超过基线或 control 的部分, contrast 选 1,反之可以选 -1;

(2)    extent threshold :范围的阈值,定义多少个连在一起有意义的体素数目才不认为有可能是噪声。这个数值的选择一般要结合选定的P值和 smooth 中 FWHM 值来定。

(3)    Overlays中选择 slice 查看 2D 激活图 、选择 sectors 查看 3D 激活图,文件选择经标准化后的3D文件,以 wms 开头;也可选Render,在spm8工具箱中的render中的三个模板,用以查看在玻璃脑中的激活图。

    

  

  

参考:1.spm8官方mannual;

   2.北师大spm8简明教程;

    3.PrinciplesStatistics - MRC CBU Imaging Wiki中的Introduction to SPM  statistics

    4.百度文库:spm心得http://wenku.baidu.com/link?url=kj_9MMlpvY70zmI3oQqdemuiWgQNloHhsBwgSe5K2jClj8B8xHCgr7HDllxb_nc8s7ymrB6Y5-2gUaxRBaGxtFXJJCLUhxDMc-D9fzIfAvq

利用spm提供的MoAEpilot听觉数据学习预处理以及单被试glm分析与统计推断的更多相关文章

  1. 大数据学习day33----spark13-----1.两种方式管理偏移量并将偏移量写入redis 2. MySQL事务的测试 3.利用MySQL事务实现数据统计的ExactlyOnce(sql语句中出现相同key时如何进行累加(此处时出现相同的单词))4 将数据写入kafka

    1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作.如果想更加精确的控制偏移量,就使用这种方式 代 ...

  2. WebGIS中利用AGS JS+eChart实现一些数据展示的探索

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 eChart提供了迁徙图.热点图.夜视图等跟地图能够很好的结 ...

  3. WebGIS中利用AGS JS+eCharts实现一些数据展示的探索

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 eCharts提供了迁徙图.热点图.夜视图等跟地图能够很好的 ...

  4. 利用Tengine在树莓派上跑深度学习网络

    树莓派是国内比较流行的一款卡片式计算机,但是受限于其硬件配置,用树莓派玩深度学习似乎有些艰难.最近OPENAI为嵌入式设备推出了一款AI框架Tengine,其对于配置的要求相比传统框架降低了很多,我尝 ...

  5. C#利用SqlDataAdapte对DataTable进行批量数据操作

    C#利用SqlDataAdapte对DataTable进行批量数据操作,可以让我们大大简化操作数据的代码量,我们几乎不需要循环和不关心用户到底是新增还是修改,更不用编写新增和修改以及删除的SQL语句, ...

  6. 利用Java提供的Observer接口和Observable类实现观察者模式

    对于观察者模式,其实Java已经为我们提供了已有的接口和类.对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: package java.util; public ...

  7. 大数据学习系列之五 ----- Hive整合HBase图文详解

    引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...

  8. 大数据学习系列之九---- Hive整合Spark和HBase以及相关测试

    前言 在之前的大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 中介绍了集群的环境搭建,但是在使用hive进行数据查询的时候会非常的慢,因为h ...

  9. 写给需要的Javaer-大数据学习路线篇

    已经更新100+篇~ 关注公众号,BAT大神带你飞~ 听说你还在写Java,看Spring,看Dubbo,今天SpringCloud, 明天Dubbo3.X新版本... 10个开发9个半在写Java后 ...

随机推荐

  1. cocoaPods的安装和使用之详细介绍

    一,在Mac OS X上安装Ruby运行环境 步骤1------安装RVM $ curl -L https://get.rvm.io | bash -s stable 然后载入RVM环境 $ sour ...

  2. NSArray 常用的一些方法

    - (NSUInteger) count; 返回数组中元素个数 - (id)objectAtIndex:(NSUInteger)index; 返回一个id类型的数组指定位置元素 - (id)lastO ...

  3. iOS-事务相关

    事务管理 事务(Transaction):1.构成单一逻辑工作单元的操作集合DBMS中的用户程序DBMS外的可执行程序对数据库的读/写操作序列2.读从数据库中读取数据,首先从磁盘中读到内存(Buffe ...

  4. 初识Angular2

    Angular2是面向未来的科技,要求浏览器支持ES6+,我们现在要尝试的话,需要加一些 垫片来抹平当前浏览器与ES6的差异: angular2-polyfills - 为ES5浏览器提供ES6特性支 ...

  5. 05_天气查询_JAX-WS方式_客户端

    [客户端特点] 支持面向对象开发. 客户端功能调用webService,首先得知道WebService的地址. 一般情况下,只要知道了wsdl的地址,就可以知道WebService的地址. 我们上一篇 ...

  6. UVA 11584 Paritioning by Palindromes(动态规划 回文)

    题目大意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串.比如racecar本身就是回文串:fastcar只能分成7个单字母的回文串:aaadbccb最少可分成3个回文串:aaa. ...

  7. (hdu)5652 India and China Origins 二分+dfs

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5652 Problem Description A long time ago there ...

  8. fedora 20 install skype

    http://www.if-not-true-then-false.com/2012/install-skype-on-fedora-centos-red-hat-rhel-scientific-li ...

  9. wpf采用Xps实现文档显示、套打功能(原创)

    近期的一个项目需对数据进行套打,用户要求现场不允许安装office.页面预览显示必须要与文档完全一致,xps文档来对数据进行处理.Wpf的DocumentView 控件可以直接将数据进行显示,xps也 ...

  10. js函数与变量同名

    console.log(a); var a = 3; function a(){} 输出的结果是:[Function: a] 注意一下几点就能知道原因了! 1)函数声明会置顶2)变量声明也会置顶3)函 ...