NODDI Matlab Toolbox教程

2 篇文章 1 订阅

NODDI Matlab Toolbox教程

相关链接

英文原址 http://mig.cs.ucl.ac.uk/index.php?n=Tutorial.NODDImatlab
下载:http://www.nitrc.org/docman/index.php?group_id=716&selected_doc_group_id=2830&language_id=1#folder
示例数据:https://www.nitrc.org/frs/download.php/11758/NODDI_example_dataset.zip
论坛:http://groups.google.com/group/noddi

软件依赖

2017年10月更新
1 带有Optimization工具箱的Matlab
2 NIFTI Matlab库:nifti_matlab https://github.com/NIFTI-Imaging/nifti_matlab

从0.9版本开始,将不再需要parallel computingMatlab工具箱,但建议使用。

安装

将NODDI 和nifti_matlab 工具包加载到matlab

addpath(genpath(‘/个人路径/NODDI_tool’))
addpath(genpath(‘/个人路径/nifti_matlab’))

如果之前加载了spm的路径,要先移除
rmpath(genpath(‘个人路径/spm8’))

准备

转格式

图像转格式

函数 CreatROI 可用于将原始格式转换工具包所需要的mat格式
进入到你的目标文件夹下,运行:

CreateROI('NODDI_DWI.hdr', 'roi_mask.hdr', 'NODDI_roi.mat');

如果是全脑分析,那么第二个参数可以填brian_mask。NODDI模型拟合涉及非线性优化,因此计算量很大,时间长。一定要建立一个良好的roi mask,排除不需要拟合的体素,以提高效率。 特别是调试的时候,可以只用一个slice或者一个小区域来试运行代码。文件可以接受NifTI 或Analyze格式,但不能是nii.gz 或img.gz。

运行之后得到NODDI_roi.mat文件

bval/bvec 转格式

函数FSL2Protocol可用于将原始格式转换工具包所需要的格式

protocol = FSL2Protocol('NODDI_protocol.bval', 'NODDI_protocol.bvec');

如果你用的是Camino工具,可以用以下命令:

protocol = SchemeToProtocol('NODDI_protocol.scheme'); 

运行之后得到一个protocol 变量
在这里插入图片描述

拟合NODDI模型

函数MakeModel可以生成NODDI模型所需要的参数

noddi = MakeModel('WatsonSHStickTortIsoV_B0');

WatsonSHStickTortIsoV_B0 "是NODDI模型的内部名称。
结构noddi保存了与后续拟合相关的NODDI模型的参数。对于大多数用户来说,默认设置应该足够了。

随后开始拟合模型
如果你有并行计算工具箱,就用函数 batch_fitting 运行 NODDI 拟合,如果没有,就用 batch_fitting_single。

batch_fitting('NODDI_roi.mat', protocol, noddi, 'FittedParams.mat', 8);

该函数的前三个参数已在前面的步骤中生成。第四个参数指定用于存储估计的NODDI参数的mat文件名。最后一个参数设置了用于并行运行拟合的核的数量。根据你的实际情况修改,如果不指定,Matlab将选择默认设置。

如果是一台8核的机器,拟合过程大约15分钟。

如果运行因意外的系统重启或崩溃而中断,或因必要的停顿而中断,只需再次重复同一命令即可。它将从保存了估计参数的最后一个体素开始恢复被中断的运行(自1.04版本)。

batch_fitting_single的用法类似。

batch_fitting_single('NODDI_roi.mat', protocol, noddi, 'FittedParams.mat') 

与batch_fitting类似,该函数支持恢复被中断的拟合运行。

完了会得到一个变量 FittedParams

输出拟合结果

SaveParamsAsNIfTI('FittedParams.mat', 'NODDI_roi.mat', 'brain_mask.hdr', 'example')

该函数将拟合参数(第1个参数)转换为NIfTI格式的体积,其空间维度与原始图像相同,由大脑mask(第3个参数)指定,还需要输入roi文件(第2个参数)。最后一个参数是指定输出文件名的前缀。(在0.9版本之前,你还需要输入模型,现在模型与拟合的参数文件存储在一起。)从1.04版开始,如果你用FittedParams.mat对一个中断的拟合运行进行操作,该函数将中止,并建议你重新运行中断的运行。

输出文件

在你的文件夹下,你会看到以下9个文件。

  1. 神经元密度(或细胞内体积分数): example_ficvf.nii
  2. 定向分散指数(ODI):example_odi.nii
  3. CSF体积分数:example_fiso.nii
  4. 纤维方向: example_fibredirs_{x,y,z}vec.nii (各1个)
  5. 拟合目标函数值:example_fmin.nii
  6. 用于计算ODI的Watson分布的浓度参数: example_kappa.nii
  7. 错误代码:example_error_code.nii 非零值表示拟合错误(0.9版本之后才有这个功能)。

在这里插入图片描述

放上对应英文:
Neurite density (or intra-cellular volume fraction): example_ficvf.nii
Orientation dispersion index (ODI): example_odi.nii
CSF volume fraction: example_fiso.nii
Fibre orientation: example_fibredirs_{x,y,z}vec.nii
Fitting objective function values: example_fmin.nii
Concentration parameter of Watson distribution used to compute ODI: example_kappa.nii
Error code: example_error_code.nii (NEW) Nonzero values indicate fitting errors.

ficvf.nii、odi.nii和fiso.nii可以像FA这些参数用TBSS进行统计分析,当然也可以用其他统计方法。

进行全脑运算的话,一台8核的电脑,这可能需要一夜的时间。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值