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

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,