基于医学图像配准软件 ANTs(Advanced Normalization Tools)提取脑图像数值并与临床量表计算相关

本文主要是介绍基于医学图像配准软件 ANTs(Advanced Normalization Tools)提取脑图像数值并与临床量表计算相关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

神经影像学与临床评估的结合正在革新我们对神经精神疾病的理解。本博客聚焦于如何利用先进的医学图像配准软件ANTs(Advanced Normalization Tools)提取脑图像数值,并将其与临床量表进行相关性分析。

目录

 

一、准备掩模(Mask)

二、准备T-value map

T-map 和 Z-map的转化

比较同一结果的T-map和Zmap

三、提取Mask内Z-value

批处理代码:

四、计算Cluster内均值

五、计算相关


一、准备掩模(Mask)

ThresholdImage 3 input.nii output.nii 0 1

使用方法:ThresholdImage   ImageDimension ImageIn.ext outImage.ext  threshlo threshhi <insideValue> <outsideValue>

如上所述,我们得到一个right IFG (右侧下额叶回)的二值化mask,right IFG是大脑的重要的区域,属于突显网络(Salience Network)的关键节点之一。接下来我们就将用这个mask去提取T值。

二、准备T-value map

fMRI研究中的T-value map(T值图)是一种统计图像,用于展示大脑活动的显著性。

  • T-value map是通过对fMRI数据进行统计分析后得到的结果。它显示了大脑不同区域的激活程度与预期模型之间的关系强度。
  • 高T值表示该区域的活动与任务或刺激高度相关;低T值表示相关性较弱或无相关性
  • T值可以是正值或负值,分别表示激活增加或减少。
  • 研究者通常会设定一个统计阈值(如p<0.05);只有超过这个阈值的体素才会被认为是"显著激活"的。

T-map 和 Z-map的转化

T值和Z值都是常用于统计分析的标准化分数,尤其在神经影像研究中广泛应用。

T值图的优点:

  • 直接反映了效应大小和样本大小的影响
  • 在小样本研究中更为准确
  • 可以直接用于推断统计显著性(如果知道自由度)
  • 在单个研究或实验中更常用

而如果特殊情况,如元分析,正负效应T值的自由度并不一样,那需要使用matlab写脚本运行SPM工具。(SPM官网)


input_dir = 'Path_to_tmap';
output_dir = 'Path_to_zmap';
if ~exist(output_dir, 'dir')mkdir(output_dir);
endnii_files = dir(fullfile(input_dir, '*.nii'));
for i = 1:length(nii_files)input_file = fullfile(input_dir, nii_files(i).name);   [~, name, ext] = fileparts(nii_files(i).name);if startsWith(name, 't_')output_name = ['z_' name(3:end) ext];elseoutput_name = ['z_' name ext];endoutput_file = fullfile(output_dir, output_name);V = spm_vol(input_file);T = spm_read_vols(V);Z = zeros(size(T));% 根据条件转换T值为Z值,其中32指postive effect的自由度,27指negative effect 的自由度Z(T > 0) = spm_t2z(T(T > 0), 32);Z(T < 0) = spm_t2z(T(T < 0), 27);Z(T == 0) = T(T == 0);  % 保持0值不变Vo = V;Vo.fname = output_file;Vo.descrip = 'Z score image converted from T-statistic';spm_write_vol(Vo, Z);

比较同一结果的T-map和Zmap

Z值统计:
  平均值: 1.4395
  中位数: 1.1453
  标准差: 0.9787
  最小值: 0.2918
  最大值: 4.5100

T值统计:
  平均值: 1.5192
  中位数: 1.1663
  标准差: 1.0999
  最小值: 0.2943
  最大值: 5.3848

我们可以看出来Z值的转化确实起到了一定标准化的作用,使得标准差更接近1,但并没有改变整体右偏侧分布的趋势。

三、提取Mask内Z-value

图像提取原理可以参考fMRI图像提取原理,我们可以使用shell文件和ANTs软件进行批处理。

批处理代码:

#!/bin/bashINPUT_DIR="Path_to_Zmap"
MASK="Path_to_mask"
OUTPUT_DIR=""mkdir -p "$OUTPUT_DIR"# 遍历输入目录中的所有.nii文件
for input_file in "$INPUT_DIR"/*.nii; dofilename=$(basename "$input_file")output_file="$OUTPUT_DIR/${filename%.nii}_masked.nii.gz"# 使用ANTs的ImageMath将结果与掩模相乘ImageMath 3 "$output_file" m "$input_file" "$MASK" echo "Processed: $filename"
doneecho "All files have been processed."

检查提取结果,如下:

四、计算Cluster内均值

  经过上面的步骤,我们已经得到了每个研究ROI(感兴趣区)内的Z值图像,接下来就是快速计算每个的均值。

可以使用计算:

AverageImages ImageDimension Outputfname.nii.gz Normalize <images> 

然后我们就可以得到每张图像的均值,NaN则指该图像在ROI没有数值。

五、计算相关

  具体方法可以参考这篇文章:相关计算

这篇关于基于医学图像配准软件 ANTs(Advanced Normalization Tools)提取脑图像数值并与临床量表计算相关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122614

相关文章

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二