VBM_DARTEL算法对灰质变化的计算

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

根据一些文献得知,VBM目前比较新的算法是DARTEL算法,这一算法被集成在SPM里,这里记录一下做法。
VBM是对T1像进行分割得到灰质等。所以要有结构T1加权像数据。
整个流程应该是这样:

1.手动调整前联合(AC)

首先就是需要我们自己手动调整一下结构像,打开SPM,spm首页有PET&VBM,还有一个fMRI,亲测选哪个都可以。总之选了之后就是下面这个页面,然后点Display。
在这里插入图片描述
然后就选择自己的数据里的T1结构像。
在这里插入图片描述
一个这样的页面,我们可以看到一个蓝色的十字线,这个线的交叉点就是我们要调整的地方,手动将交叉点放在大概下图这个位置(就是前联合的位置),前联合的位置怎么确定可以去查一下,网上有很多教程。我的理解就是大概在下图这个红色的圆里。点一下set origin之后就会出现坐标位置。然后一定要点击一下Reorient,才算是调整成功了。在这里插入图片描述在这里插入图片描述
还有就是如果发现自己的数据里的大脑比较歪的话,也可以通过下面的几个pitch roll yaw调一下。我调的时候发现必须0.1,0.2(正负多试几次就知道了)这样的微调,不然变化会很大。
注意:因为这里是手动输入每个被试的图像进行微调,我认为对精度的要求其实没有那么高。

2.调整完就可以进行第二步分割。
在这里插入图片描述
我一般习惯在batch里直接选,这一步很简单,找到segment后打开。Volumes就选择自己数据的所有T1像就ok。因为我们使用DARTEL来进行VBM分析,所以对Tissues里的前两个Native Tissue选择Native+Dartel Imported这个选项。其余的选项不用动。前两个分别表示灰质和白质。
在这里插入图片描述

经过segment后原来的结构像所在的文件夹里就会出现分割后的图。其中c开头的c1-c5分别表示五类脑组织的概率图像,五类脑组织指的是灰质,白质,脑脊液,头骨和软组织。
在这里插入图片描述
rc1xxx和rc2xxx指的是对齐后的灰质和白质概率图像。
在这里插入图片描述
还有一个**.mat**文件,存放的是组织分割过程中的参数和结果,可用于后面估计颅内体积。

3.得到分割的结果后,进行Dartel配准

选择Run Dartel(create templates)
在这里插入图片描述
打开之后,在Images选项里选择上一步得到的rc1xxx和rc2xxx,要把所有被试的都选中,我这里共有12个被试,所以有两个12 files的Images,其余的不用动。
在这里插入图片描述
运行完以后,会得到Template_0–Template_6,表示不同迭代过程中的 Dartel 模板,其中Template_6.nii 为最终的 Dartel 模板。
在这里插入图片描述
还有一个图像是下图这种形式,u_rc1XXX_Template,它表示的是每个被试配准到 Dartel 模板的变换场。
在这里插入图片描述
4.标准化到MNI空间和高斯平滑。

如下图,选择Normalise to MNI Space
在这里插入图片描述
首先Dartel Template选择上一步得到的Template_6.在Select according to 里选择Many subjects
然后Flow fields选择上一步得到的u_rc1XXX_Template,每一个被试的都要选中,我这里共有12个。
因为我要做的是对灰质图像进行分析,所以在Images选择第一步segment得到的c1xxx,共12个。
最后记得在Preserve里选择Preserve Amount。其余的都不用动。
在这里插入图片描述
最后我们可以得到Template_6_2mni.mat,它代表从Dartel模板到MNI空间的仿射变化矩阵。
最重要的就是smwc1xxxx这个图,它表示每个被试平滑和标准化后的灰质概率图像。 也就是我们最终想要的结果。

在这里插入图片描述在这里插入图片描述
5.最后我们可以来估计一下颅内体积。

因为在后面进行统计分析时一般要将颅内体积作为协变量,所以这一步估计一下颅脑体积。在Util里面找到Tissue Volumes
在这里插入图片描述
segmentation mat-files选择第一步得到的XXXXseg8.mat,要把每一个被试的都选中。我这里共12个。output file里确定输出文件的名字。
在这里插入图片描述
在这里插入图片描述
运行结束后,会得到一个.csv的文件,用excel就可以打开。里面包含了每个被试的灰质、白质和脑脊液的体积,在matlab命令行也会显示出来。
把三类组织的体积加到一起即得到颅内体积。后面统计分析可以作为协变量。
在这里插入图片描述

最后是进行统计分析,一般就是双样本t检验和配对t检验。我找了很多,个人认为写的都不是很清楚,像我没有基础的话其实有点跟不上,所以重新写一篇文章来总结。


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

相关文章

基于cat12搞定VBM的ROI分析——vertex水平和ROI水平的双样本T检验

前言 本来上周要更新此篇的,但由于本身有问题没有解决清楚,再加上导师给了数据处理的任务下来了,两下耽搁,就等到现在了。上回说到,做了VBM和SBM的指标提取及双样本T检验的统计分析,那接下来我们还可以做什…

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

前言 今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用…

基于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(即按照业务需要开发的…