基于医学图像配准软件 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

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件