基于cat12和SPM12进行VBMSBM数据分析笔记1——数据预处理

article/2025/10/16 3:16:21

前言

今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用来记录我的研究生三年学习过程。文章编写尽量保证简洁明了,通俗易懂,本就是小白,也能体会小白的痛。不过这也要谢谢一个人手动@小白(网名),他总是不断提醒我要把自己所学的写下来,讲出来才能真正的做到输入和输出,查漏补缺,因此他给我推荐了CSDN这个平台来记录笔记。而用cat12软件学习VBM数据分析是我即将面临的第一个数据分析的训练,整个笔记都是一边操作一遍记录,如有错误之处,还望各位专业人士指出改正,有任何疑问皆可留言。

一、cat12简介

Matlab的CAT12工具箱和SPM工具箱目前广泛用于各种脑部疾病的VBM分析,可以处理多种的structural MRI数据。

二、环境配置

系统:Windows 10专业版
软件运行平台:Matlab2018a
所需工具包:

  1. SPM12(下载安装教程)
  2. cat12(下载安装教程)
  3. MRIcro——用于查看xxx.nii格式文件(下载安装教程)

三、数据预处理过程

结构像数据预处理流程图如下:
在这里插入图片描述

1.数据准备

被试测试图像均为大脑结构像中的T1像,文件格式为sub-xxx.nii,其文件内容一定是可用MRIcron软件进行查看,否则将会导致程序运行错误。并将所有被试图像(sub-xxx.nii)全部放置在同一个文件夹下。
注意:一定要保证文件格式为.nii格式,否则cat12无法读取数据。文件格式的转换小编就不在此赘述了,如有需要小编会更另一篇笔记。

2.组织分割(segment)

步骤:运行Matlab2018a,在命令框中输入:spm敲回车,调用spm工具包
命令框中会出现以下内容:
回车之后命令框显示
命令执行之后会弹出以下三个窗口,主要以SPM12为主:
在这里插入图片描述
在SPM for functional MRI部分找到Toolbox,下拉找到cat12,点击打开cat12工具包,之后便会出现工具包cat12的操作界面,如下图:
在这里插入图片描述
在这里插入图片描述点击segment,进入如下界面:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

双击Volumes,进入如下界面,按照图中所示操作,选择测试数据的T1像,选中数据之后再点击done,回到segment界面,选择好volumes之后下面根据自己的实验需要更改下方参数或者对应功能选项,而且每个参数或者功能选项界面上都有详细介绍,此处由于小编只是为了测试训练,故全部选择默认选项。
在这里插入图片描述
注意:模板(Affine Regularisation)要看数据样本来源选择对应欧洲模板(European brains)或者亚洲(East Asian brains),这是根据人种不同,大脑内部结构也会有所差异。
在这里插入图片描述
选定完数据和参数功能,即可点击三角形run,紧接着Matlab命令框中会有一系列运行之后的详细过程,以及会有另外几个Command Window框(运行数据的核,进行多组数据分析时可以通过核来分组并行计算,缩短数据运行时间,至于开几个核可以在上一步选择,这里选用默认四个核,这个框不能关闭,否则可能会导致程序中断)弹出记载着运行过程和时间,不需要做任何处理,等待即可
在这里插入图片描述
最后在存储原始T1数据文件夹中会出现三个文件夹——mri(分割之后的图像)report(数据分割过程及结果存)、label。此时分割并没有完成哦!!!(这是小编犯的第一个错误,所以不能着急哦)
在这里插入图片描述
PS:至于小编此处问什么会多出现一个surf文件夹,是由于小编的Surface默认选项选了yes,某位小伙伴跑数据时就只有三个,是他告诉我在这里默认是yes,他的是no,多谢提醒。不过多了也不用在意,只是多分割了一种surface皮层数据,这个是当你做皮层统计分析SBM时需要提取surface皮层指标时会用到,这个在小编的后续教程SBM统计分析中会讲到哦。

在这里插入图片描述

分割完成的标志是在mri文件夹中只剩下四种命名的.nii文件——mwp1xxx.nii(标准化灰质体积图像)、mwp2xxx.nii(标准化白质体积图像)、p0xxx.nii(原始图像)、wmxxx.nii(剥脑&标准化T1图),如下图所示:
在这里插入图片描述
注意:由于磁共振图像数据信息量比较大,用cat12做分割处理当数据量比较大时要花费大量时间,所以不要急于去关闭所有操作界面 ,等待完成标志出现。分割完成之后就可以去查看分割图像了,可以直接用MRIcro查看。下图是同一个被试的灰质和白质分割结果:
在这里插入图片描述

3.数据预处理——质量检测QC(data quality check)

分割结束之后,我们需要对数据进行质量检测,为下一步统计分析做准备。关闭分割界面,回到cat12操作界面,下拉 Data Quality,选择Slice Display
在这里插入图片描述
进入界面可以选择四个测试样本的灰质mwp1-或白质mwp2-的.nii文件,点击proportional scaling选择yes在这里插入图片描述
点击运行之后就可以在Matlab自动弹出的figure窗中查看分割结果,如下图所示(灰质分割结果):
在这里插入图片描述
也可以看生成的report文件夹中的pdf文件,如下图例所示:
在这里插入图片描述

4.体积数据文件获取

回到cat12操作主界面,在statistical analysis部分,点击Get TIV,如图所示:
在这里插入图片描述

双击XML files进入选择.xml格式的数据(数据储存在report文件夹中)
在这里插入图片描述
接下来在Save values处选择你要获取的数据——仅需全脑体积或者全脑及各组织体积,Output file是体积保存的文件名称,可以通过点击Specify修改,选定之后点击run就可以了,在Matlab命令框中会显示数据结果,同时也会保存成文件。
在这里插入图片描述
至此,VBM的预处理工作基本完成,最重要的步骤就是分割,分割是一定要处理好,否则接下来所有的数据处理过程都可能出现问题。计算结果如下图所示:
在这里插入图片描述
最后,接下来就是做组间相关分析,请看下一篇。

参考文献

cat12-Manual(http://www.neuro.uni-jena.de/cat12/CAT12-Manual.pdf)


http://chatgpt.dhexx.cn/article/LumQ5w7d.shtml

相关文章

基于cat12和SPM12进行大脑VBM数据分析笔记2——统计分析

小白一顿操作猛如虎——拿下VBM的双样本t检验 前言 培训的deadline到了,小编需要交作业了,所以就在此先把笔记记下来。作业需要提交一个报告,but这个报告我应该如何写呢,培训总结?哎,现在还是不清楚&…

磁共振影像分析之: 基于FSL的VBM分析(1)

磁共振影像分析之: 基于FSL的VBM分析(1) 基本概念 在开始之前, 先给出几个基本概念: 磁共振成像 磁共振成像(Magnetic Resonance Imaging, MRI)是一种基于核磁共振原理和射频波探测组织结构和功能的医学影像技术. 值得一提的是, 磁共振成像技术没有辐射, 对人体没有影响. …

MRI图像处理:VBM原理和步骤

VBM是voxel-based morphometry的缩写, 是对被试之间灰质体素粒度统计分析。VBM可以得到人群中volume和gyrification的不同,对clinical score进行相关性分析,VBM不仅仅可以用于结构数据(T1),还可以用在fmri和…

MRI脑影像分析从哲学到技术:一文搞懂VBM预处理基本原理(全网最详细解析)

基于体素的形态学方法(voxel-based morphometry, VBM),是分析大脑解剖学(结构)差异最常用方法之一。 其通过给大脑volume逐体素打标签(分类)的方式来进行组织分割(segmentation&…

LabVIEW程序测试

LabVIEW程序测试 工程师经常不太关注测试,将更多时间用于其他开发。通过一定程度的测试,可以保证节省时间。 开发人员必须清楚地了解对测试的期望程度。此外,还必须标准化测试方法并跟踪测试结果。在开发需求和设计规范时,还要制…

史上最详细的小程序测试用例模板,以后再也不怕测试用例不会写了

目录 1. 文档介绍 1.1 文档目的 1.2 文档范围 1.3 读者对象 1.4 术语与缩写解释 2. 功能测试用例 2.1 被测试对象的介绍 2.2 测试范围与目的 2.3 测试环境与测试辅助工具的描述 2.4 功能测试用例 附录:评审意见 1. 文档介绍 1.1 文档目的 设计测试用例…

软件测试人员一定要会的微信小程序测试点

微信小程序: 不需要下载安装即可使用的应用, 实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。 体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。 应用将无处不在,随时可用&#…

小程序测试流程

流程分为两个方面,解包可以挖掘信息泄露问题、隐藏的接口,抓包可以测试一些逻辑漏洞、API安全问题。两者结合起来就可以边调试边进行测试,更方便于安全测试。 搜索目标小程序 目标搜索不能仅仅局限于主体单位,支撑单位、供应商、…

【软件测试】

系列文章目录 文章目录 系列文章目录前言第四章 单元测试4.1 软件测试过程概述4.2 什么是单元测试4.2.1 单元测试的定义4.2.2 单元测试的重要性4.2.3 单元测试原则 4.3 单元测试的目标和任务4.3.1 单元测试的目标:单元模块被正确编码4.3.2 单元测试的主要任务 4.4 单…

软件测试之测试程序开发

软件测试培训之测试程序开发 脚本维护,测试数据准备,测试监控准备; 测试程序开发 性能测试场景设计和性能测试脚本设计中需要注意以下几个问题: 场景真实性: 每个脚本的具体操作步骤,是和真实环境操作类似的,每个场景内的测试程序之间的逻辑关系,压力比重…

程序员的测试课

git项目地址:GitHub - dreamhead/geektime-todo: Geektime Todo is a demo todo project for Geektime column. 1、实现一个Todo应用 设计规范 1、对于输入参数的检测,由入口部分代码进行处理。如空字符串。 2、Repository 的问题以运行时异常 的形式抛…

软件测试重点知识

软件测试的定义: 利用人工或自动化的手段来运行或测定某个系统,其目的在于测它是否满足规定的需求或检测预期结果与实际结果之间的差异。 软件测试的目的: 发现软件中存在的问题或缺陷,检查软件系统是否满足要求。 软件测试的对象…

跑批利器--读取文件

在上篇文章中已经对示例的基本业务和流程进行了解,同时也知道了SpringBatch的三个接口ItemReader,ItemProcessor,ItemWriter.接下来我们主要是通过示例来具体处理一个文本文件,将里面的数据和内容通过SpringBatch的加工处理来存到新的数据库中. SpringBatch提供专门的类去读取文…

金融任务实例实时、离线跑批,Apache DolphinScheduler 在新网银行的三大应用场景与五大优化...

在新网银行,每天都有大量的任务实例产生,其中实时任务占据多数。为了更好地处理任务实例,新网银行在综合考虑之后,选择使用 Apache DolphinScheduler 来完成这项挑战。如今,新网银行多个项目已经完成了实时与准实时的跑…

线程并发处理跑批任务

定时任务类代码: package com.jzfq.rms.autoApprove.job;import com.alibaba.fastjson.JSONObject; import com.jzfq.rms.autoApprove.bean.InnerRuleProcess; import com.jzfq.rms.autoApprove.bean.InnerRuleProcessQueryBean; import com.jzfq.rms.autoApprove.s…

Oracle-job跑批变慢案例

前言: 近期处理了一起应用job跑批变慢的案例,在一天job执行时间突然增加了几十倍,后面通过分析是由于索引的设计不合理导致执行计划的异常,把当时的问题分析过程记录下来,分享给大家。 问题: 数据库job存储执行时间增加几十倍 原因…

架构师自诉:如何做到百万数据半小时跑批结束

业务背景 跑批通常指代的是我们应用程序针对某一批数据进行特定的处理 在金融业务中一般跑批的场景有分户日结、账务计提、欠款批扣、不良资产处理等等 具体举一个例子 🌰 客户在我司进行借款,并约定每月 10 号码还款,在客户自主授权银行…

基于Kettle跑批的案例说明

需求概述 通过动态配置表的方式完成在kettle里动态配置参数,并调用ktr,实现跑批的目的。 问题分析 定义一个ktr读取配置表的信息并将拷贝记录到结果定义一个ktr从结果里获取记录并设置变量定义业务ktr(即按照业务需要开发的…

学习笔记-如何设计离线跑批系统

一、基本概念 离线跑批:通常指批量加工数据、完成一系列流程的定时任务。 业务场景:在银行、金融、支付出现较多,其他行业也可能涉及。 1. 定时的数据状态更新(到期失效) 2. 数据计算(计算罚息、计提&…

跑批利器--示例

接下来我们将通过简单的一个在线商店的应用示例来展示如何使用SpringBatch.通过这个示例我们可以进一步去理解SpringBatch批量处理程序它是如何实现高效的读写数据,何时去使用内部组件,如何实现你自己的组件,以及如何配置一个批量任务在Spring容器中. 这里我们简单描述一下业务…