人体肝脏CEST磁共振图像后处理MATLAB代码包,支持fasting/meal两类CEST数据的洛伦兹拟合、ROI分析、多层批量处理,适配0.7uTneg/0.7uTpos/2uT三种数据类型。
- 支持空腹(fasting)/餐后(meal)两类数据处理
- 适配0.7uTneg/0.7uTpos/2uT三种频率维度数据
- 支持单切片手动ROI勾画 + 多层批量自动处理
- 提供洛伦兹拟合(LD)的约束/无约束两种模式
- 输出定量图谱(MTRrex)、统计结果、掩膜文件等多类结果
- MATLAB R2020b 及以上版本
- 需安装MATLAB工具箱:
- 图像处理工具箱 (Image Processing Toolbox)
- 曲线拟合工具箱 (Curve Fitting Toolbox)
- 统计和机器学习工具箱 (Statistics and Machine Learning Toolbox)
代码包需严格遵循以下目录结构(仅根路径可自定义):
LiverCEST_MRI_PostProcessing/
├── 数据/ # 原始扫描数据
│ ├── fasting/ # 空腹数据
│ └── meal/ # 餐后数据
├── 结果/ # 分析结果输出
│ ├── fasting/ # 空腹结果
│ └── meal/ # 餐后结果
└── Process_LiverMainFunction0301.m # 主执行代码
将代码包整个文件夹添加到MATLAB路径:
% MATLAB命令行执行
addpath(genpath('你的代码包根路径'));在主代码中修改核心路径和数据类型:
% 数据类型选择:0=0.7utpos/1=0.7utneg/2=2uT
NegOrPos = 1;
% 数据根路径(根据实际修改)
datapath = 'C:\LiverCEST\数据\fasting';
% 结果输出路径(根据实际修改)
resultpath = 'C:\LiverCEST\结果\fasting';% 单切片配置
N_slice = 21; % 分析中间切片(示例:21层)
use_exist_ROI = 0; % 首次运行重新勾画ROI
multi_slice = 0; % 单切片模式运行代码后,按提示完成:
- 绘制三角形去噪 → 2. 勾画肝脏轮廓 → 3. 勾画ROI区域
| 参数名 | 取值范围 | 说明 |
|---|---|---|
NegOrPos |
0/1/2 | 0=0.7utpos,1=0.7utneg,2=2uT |
mode |
0/1 | 0=LD无约束(推荐测试),1=LD加约束 |
datapath |
字符串 | 原始数据根路径 |
resultpath |
字符串 | 结果输出根路径 |
DataFormat |
0/1 | 0=bruker格式,1=dicom格式(默认) |
nROI |
1~4 | 需分析的ROI数量(最多4个) |
| 参数名 | 取值 | 说明 |
|---|---|---|
N_slice |
数值/0 | 单切片填具体层数,多层批量填0 |
multi_slice |
0/1 | 0=单切片,1=多层批量 |
use_exist_ROI |
0/1 | 0=重新勾画ROI,1=使用已有ROI(多层必选) |
Thmask_datapath |
字符串 | 多层模式下,指向单切片生成的mask路径 |
| 参数名 | 默认值 | 说明 |
|---|---|---|
register |
0 | 配准模式:0=不配准,1=刚体配准,2=RPC |
correct |
2 | 校正模式:1=B0校正,2=自校正,3=2-Pools LD校正 |
snr |
15 | 信噪比阈值 |
- 配置单切片参数(
multi_slice=0、use_exist_ROI=0) - 运行代码,完成交互式ROI勾画
- 确认
resultpath下生成mask文件(如Thmask.mat)
- 复制单切片mask路径(示例):
Thmask_datapath = 'C:\LiverCEST\结果\fasting\no_lb_neg_interp_0227\slice21';
- 修改批量参数:
N_slice = 0; % 多层模式 multi_slice = 1; % 启用多层批量 use_exist_ROI = 1; % 使用已有ROI total_slice_num = 41; % 数据总层数
- 运行代码,自动处理所有切片
运行完成后,resultpath对应目录下生成以下核心文件:
| 文件类型 | 说明 |
|---|---|
liverMask.mat/fig |
肝脏掩膜文件/可视化图 |
Thmask.mat |
ROI掩膜文件 |
Lorentzian fits.mat |
洛伦兹拟合结果 |
MTRrex_map.mat |
MTRrex定量图谱 |
sliceXX_mean_neg3p5.mat |
切片统计结果 |
sliceXX LD NOE-3.5.fig |
NOE可视化图 |
- ROI勾画不可过小,否则会触发程序报错
- 2uT数据需重新计算背景频率索引(默认适配0.7ut):
% 2uT数据需修改此处索引值 background_frequency = 101; % 示例值,需按实际计算
- 多层分析前必须完成单切片分析,确保
Thmask_datapath路径正确 - 数据/结果文件夹的子目录结构必须完全一致
- 作者:Li Kaixiang
- 版本更新时间:20260302