宣传片

3D Slicer 中的扩散 MRI 分析工作流。 源码 下载视频

原生扩散空间

SlicerDSpace 的输出结果。

展示各分析路线的代表性参数图、皮层表面、纤维通路和连接网络,所有结果均位于原生扩散空间。

各分析路线的参数图、皮层表面、纤维束与连接组结果。 查看完整矢量图

选择分析路线

工作流概览。

工作流概览:dMRI 准备、解剖先验、微结构、纤维追踪、纤维束和连接组。
从 dMRI 准备到解剖先验与下游分析。

开始使用

从安装到获得第一份结果。

让 Agent 协助安装、分析与结果检查。 (推荐)

  1. 查看 Skill

    我们为 SlicerDSpace 提供安装与使用 Skill。将 SKILL.md 交给本地 Agent,即可按照指南准备环境、执行分析并检查结果。

    下方指令以 SKILL.md 为入口。如需安装 Skill,请一并保留 slicerdspace 文件夹中的参考资料、脚本和模板。

  2. 安装并启用

    Agent 安装指令
    参考 https://github.com/NeuroDMRI/SlicerDSpace/blob/main/.agents/skills/slicerdspace/SKILL.md
    帮我将 SlicerDSpace 安装并启用到本机的 3D Slicer 中,
    配置需要的依赖环境,并下载相应的模型权重。

    Agent 会检查存储空间和已有资源,在你选定存放位置后保存路径,并按所选分析准备环境。遇到许可或重启提示时请确认。

  3. 使用已安装的插件

    替换输入与输出路径,并选择研究所需的方法。以下示例运行 DDParcel、CSD/ACT 纤维追踪和结构连接组分析。

    Agent 分析指令
    参考 https://github.com/NeuroDMRI/SlicerDSpace/blob/main/.agents/skills/slicerdspace/SKILL.md
    使用 SlicerDSpace 对 /path/to/subject 运行 DDParcel 脑区分区、CSD/ACT 纤维追踪和结构连接组分析,结果保存到 /path/to/results。
    先展示计划,等我确认后再运行;完成后汇总输出与 QC 结果。

也可以手动配置

  1. 安装插件

    先安装 3D Slicer,本方案参考版本为 5.10。克隆源码并创建独立的插件安装目录:

    bash
    git clone https://github.com/NeuroDMRI/SlicerDSpace.git
    cd SlicerDSpace
    python3 scripts/stage_slicer_extension.py \
      --install-root ~/SlicerDSpace-extension --slicer-version 5.10 \
      --link-mode copy

    将 5.10 替换为 Slicer“关于”窗口中显示的主次版本号。脚本会部署模块并报告安装目录。

  2. 添加模块路径

    打开 Edit › Application Settings › Modules › Additional module paths,添加以下目录展开后的绝对路径: ~/SlicerDSpace-extension/SlicerDSpace/lib/Slicer-5.10/qt-scripted-modules,并与部署时选择的版本号保持一致。

    通过 Slicer 的扩展管理器安装 SlicerDMRI 和 PyTorch。如需使用 UKF,还要安装独立的 UKFTractography 扩展。重启 Slicer 后打开 Modules › Diffusion › SlicerDSpace。

  3. 准备被试输入

    填写 Subject ID 和 Subject root。已准备好的输入采用以下目录结构;输出目录留空时使用被试目录下的 outputs/ 文件夹。

    sub-01/
      input/
        data.nii.gz
        bvals
        bvecs
        nodif_brain_mask.nii.gz   # optional; supply or generate

    DWI 与脑掩膜必须使用相同体素网格。梯度数量应匹配 DWI 的体积数,运动校正后的影像需要配套旋转后的梯度。

    对于 DICOM 或 NRRD/NHDR,在 Advanced settings › Regions & input import › Input import / conversion 中预览导入,再准备标准化输入。

  4. 选择方法并准备环境

    首次试运行可只选择 Microstructure,取消其他产品,并在其“...”选择器中保留 DTI。需要更多分析时,可在各产品旁选择一种或多种算法;模型和追踪参数位于 Advanced settings。

    打开 Environment and installation › Prepare selected analysis environment,确认所需工具、模型和资源许可。下载资源会校验并缓存;如提示重启,重启后再次选择 Prepare 继续。

    离线模型导入、修复和手动路径设置位于 More options。只运行 DTI 时,提供已复核的脑掩膜即可省去掩膜生成后端。

  5. 运行并检查

    点击 Run SlicerDSpace。未填写的必需项会高亮,日志显示进度或具体修正提示。成功生成的关键结果自动加载到场景;DTI 提供 FA 和 MD 供检查。

    在 Results and QC 中选择运行记录,查看检查结果并重新加载或替换输出,避免重复场景节点。接受结果前应复核掩膜覆盖、对齐及方法对应的 QC。

命令行运行与队列批处理

在代码目录中使用 Slicer 的 Python 检查 DTI 路线,先替换以下两个绝对路径:

bash
export SLICER_LAUNCHER="/path/to/Slicer"
export SUBJECT_ROOT="/path/to/sub-01"
"$SLICER_LAUNCHER" --launch PythonSlicer run_subject_pipeline.py \
  --subject-root "$SUBJECT_ROOT" --subject-id sub-01 --no-user-config \
  --targets microstructure --microstructure-stages dti --doctor

将上述选项换为 --plan 可查看处理计划,再使用 --execute 执行。三条命令的算法选项应保持一致。

例如, --microstructure-stages dti,noddi 选择两个微结构模型; --tractography-backend csd_act,ukf 选择两种追踪方法; --bundle-backend wmql,wma 选择两种纤维束方法。运行前仍会检查各方法的输入与依赖。

对于独立被试,可使用 scripts/run_batch_pipeline.py --batch-root /path/to/study --jobs 2 并添加所选分析参数。GUI 处理当前被试,批处理命令为各被试维护独立输出和日志。

运行时间

各模块实测运行时间。

每行对应一种算法,圆点为 CPU,空心菱形为 CUDA,共用对数时间轴。对齐列展示两种设备的计时,标题标明硬件配置。
共享 Linux 主机上的阶段计时,每行一种算法;七条路线同时记录 CPU 和 CUDA 时间,横杠表示该设备未测量。各方法线程预算不同且设备共享,不能将其视为受控的设备加速比或直接求和。SAF 对已有 100,000 条流线重新筛选;TractCloud 使用 50,000 条流线。

性能优化

运行效率优化。

各项操作的实测性能对比,附测量范围与实现细节。

目录更新于 2026 年 10 月 30 日

下载测量数据(JSON)
不同模型与测量范围不作横向排名。比值为原始实现耗时除以优化实现耗时。
计算内容 / 范围优化类型原始实现优化实现实测比值
全脑 / 记录 2026-10-29同方法实现优化15.64 分钟11.89 分钟1.32x耗时减少 23.99%
完整模块 / 记录 2026-10-20同方法实现优化102.10 分钟74.22 分钟1.38x耗时减少 27.31%
全脑 / 记录 2026-10-20原生多线程29.15 分钟5.19 分钟5.61x耗时减少 82.19%
64 体素数值计算块 / 记录 2026-10-22Python 移植版计算1.73 秒1.09 秒1.58x耗时减少 36.70%
64 体素计算块 / QR 后续增量优化 / 记录 2026-10-29Python 移植版计算1.19 秒1.06 秒1.13x耗时减少 11.26%
原生网格 24³ ROI / 记录 2026-10-22上游已有能力37.11 秒11.47 秒3.24x耗时减少 69.09%
原生网格 24³ ROI / 记录 2026-10-20工作流调度43.95 秒24.63 秒1.78x耗时减少 43.96%
单个子步骤 / 记录 2026-10-20同方法实现优化134.29 秒2.48 秒54.06x耗时减少 98.15%
1728 体素 ROI / 记录 2026-10-21同方法实现优化12.47 秒5.17 秒2.41x耗时减少 58.50%
1000 条流线 × 15 个点 / 记录 2026-10-21同方法实现优化24.6 毫秒0.322 毫秒76.31x耗时减少 98.69%
20000 条流线 × 15 个点 / 记录 2026-10-21同方法实现优化0.59 秒12.8 毫秒45.84x耗时减少 97.82%
三次准备调用 / 记录 2026-10-20同方法实现优化8.90 分钟3.01 分钟2.96x耗时减少 66.17%
左半球四个叠加图 / 记录 2026-10-20继承的上游优化13.38 秒3.52 秒3.80x耗时减少 73.70%
三个数据分块 / 记录 2026-10-20压缩数据 I/O37.25 秒17.08 秒2.18x耗时减少 54.15%

阅读完整优化报告

方法与资源

已集成的方法

在各产品旁选择一种或多种方法。工作流会检查采集适用性、处理依赖并复用共同准备步骤。

各分析路线的方法、实现及所需资源。
阶段方法集成内容运行环境与资源论文
输入DICOM / NIfTI / NRRD格式转换、梯度验证与空间检查。dcm2niix 或 Slicer DWIConvert;可使用已有脑掩膜。[36] [27] [28]
脑掩膜PNL CNN(默认)作者扩散 CNN 脑掩膜模型及配准。托管 PNL 环境、权重及 ANTs。[37] [38]
脑掩膜SynthStrip使用作者模型进行脑提取。隔离环境及模型权重。[32]
脑掩膜MRtrix3 dwi2mask原生扩散体积掩膜生成。MRtrix3[29]
预处理MP-PCA随机矩阵去噪及噪声估计。DIPY or MRtrix3 dwidenoise[39] [52] [53] [29] [30]
预处理Local PCA过完备局部 PCA 去噪。DIPY;可选去噪方法。[40] [30]
预处理Patch2Self自监督扩散体积去噪。DIPY;可选去噪方法。[41] [30]
预处理Gibbs 振铃去除局部亚体素位移振铃校正。DIPY or MRtrix3 mrdegibbs[42] [29] [30]
预处理体积间配准体积间运动校正及梯度旋转。DIPY;不执行 FSL eddy 校正。[30]
预处理FSL eddy涡流及运动校正。MRtrix3 dwifslpreproc 与 FSL。[43] [29]
预处理FSL topup磁敏感畸变估计与校正。FSL;需反向相位编码数据及采集元数据。[44] [29]
微结构DTI(默认)LS/WLS 张量拟合;输出 FA、MD、AD、RD、特征值和张量迹。SlicerDMRI[45] [27] [28]
微结构自由水自由水比例及组织校正 FA/MD;支持 WLS 或 NLS 拟合。DIPY;需适合的多壳层采样。[4] [5] [6] [30]
微结构NODDI / AMICO输出 NDI、ODI、IsoVF 及拟合残差。AMICO;需适合的多壳层采样。[7] [31]
微结构DKIWLS/OLS 拟合;输出 MK、AK、RK、KFA、MKT、RTK 和有效性掩膜。DIPY;检查壳层、方向数及设计矩阵秩。[8] [30]
微结构MK-Curve校正曲线、校正后的峰度图及各参数有效性。内置 Python 后端;检查 DKI 适用条件。[9]
解剖先验DDSeg使用转换后的 PyTorch 模型输出组织标签和概率。PyTorch;DDSeg 权重。[2]
解剖先验DDParcel使用源自作者的模型推断解剖脑区。PyTorch;权重及配准模板。[3]
解剖先验DDSurfer重建原生空间白质面和软脑膜面网格。PyTorch;DDSurfer 权重。[1]
解剖先验BRAINSFit 配准为适用的解剖路线执行模板配准。Slicer BRAINSFit / BRAINSResample[51] [27]
解剖先验表面后处理厚度、曲率、球面配准和 DK/Destrieux 图谱映射。有许可的原生组件运行包;完整软件套件可选。[33] [47] [48] [49]
纤维追踪响应函数估计Dhollander 三组织响应函数估计。MRtrix3[12] [13] [29]
纤维追踪CSD / MSMT-CSD单组织或多组织纤维方向分布。MRtrix3;取决于所选采集路线。[11] [46] [10] [29]
纤维追踪多组织归一化对数域信号强度和不均匀性归一化。MRtrix3 mtnormalise[17] [18] [29]
纤维追踪iFOD2 / ACT(默认)使用 DDSeg 组织约束的概率追踪。MRtrix3;需复核解剖先验。[14] [15] [29]
纤维追踪DTI 确定性追踪基于张量方向及终止条件的纤维追踪。SlicerDMRI 与 DIPY。[45] [28] [30]
纤维追踪UKF 双张量自动调用官方追踪命令行工具。UKFTractography 扩展及 SlicerDMRI。[19] [28]
纤维追踪SAF表面约束的短联络纤维追踪与几何筛选。MRtrix3;后处理后的原生表面。[20]
纤维束WMQL(默认)官方束查询;支持子集选择及可选小脑区域查询。作者 tract_querier;DDParcel 标签。[21]
纤维束WMAORG、East-West 或 NABA 图谱配准与聚类;自动衔接 UKF。WMA;所选图谱;UKF 参考路线[22] [23] [24] [26] [54] [55]
纤维束TractCloud调用作者学习型纤维分区模型并导出纤维束。PyTorch 后端、模型及质心。[25] [22]
连接组流线计数将流线端点分配到 DDParcel 节点。Python 或适用的 MRtrix3 后端。[50] [29]
连接组SIFT2 加权计数利用 FOD 计算权重,并使用匹配流线构建矩阵。MRtrix3;对应的流线文件及权重。[16] [29] [50]
连接组标量与长度统计FA、MD、ODI 等参数均值,以及流线平均长度和总长度。Python API;需匹配参数图、节点及流线。[50] [29] [30]
区域分析指定脑区分析复用参数图进行 ROI 统计、筛选流线并提取节点子矩阵。Advanced settings;基于已完成输出的工作流工具。[3] [30] [50]

默认使用 DTI、CSD/ACT 和 WMQL。详细参数位于 Advanced settings,所选依赖在 Environment and installation 中单独准备。外部工具和模型安装前会请求确认。

实现来源与验证记录 记录各后端版本及单项测试范围。