FreeSurfer 核磁共振重建

FreeSurfer MRI reconstruction --- MNE 1.12.1 documentation 学习笔记

这段文字是教程的开篇综述,主要介绍了 FreeSurfer 和 MNE-Python 的关系以及 FreeSurfer 的核心功能。

FreeSurfer 核磁共振重建

本教程将介绍如何结合使用 FreeSurfer 与 MNE-Python,来处理结构核磁共振数据。这些数据是我们构建个性化解剖模型的基础,包括头皮、内/外颅骨以及皮层表面。

FreeSurfer 是一个开源的核磁共振数据分析工具箱,你可以从 https://surfer.nmr.mgh.harvard.edu/ 获取。它主要提供以下功能:

  • 可视化界面:用于查看核磁共振数据。
  • 解剖分区:提供多种解剖图谱,方便我们定义感兴趣区域。
  • 标准脑模板:例如 fsaverage。
  • 命令行工具:用于执行各种任务,比如寻找组织边界,或者将不同受试者的大脑进行形变对齐,以匹配对应的解剖区域。

MNE-Python 正是依赖 FreeSurfer 的这些能力,来计算前向模型 并建立相应的源空间(也就是位于皮层表面或脑容积内的一组偶极子网格)。

First steps

装好 FreeSurfer 之后,还得先配置一下环境才能用。主要就两步:先定义一个叫 FREESURFER_HOME 的环境变量,然后运行它的设置脚本:

复制代码
export FREESURFER_HOME=/path/to/FreeSurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh

另一个重要的步骤是告诉 FreeSurfer 把受试者的解剖重建数据存放在哪里。这是通过设置一个名为 SUBJECTS_DIR 的环境变量来完成的。以后,每个受试者的独立重建数据都会作为单独的子文件夹,存放在这个目录里。

复制代码
export SUBJECTS_DIR=/path/to/your/subjects_dir

Anatomical reconstruction

第一个处理阶段是创建各种表面重建模型。通常,我们可以通过运行以下命令来完成完整的 FreeSurfer 重建:

复制代码
my_subject=sample
my_NIfTI=/path/to/NIfTI.nii.gz
recon-all -i $my_NIfTI -s $my_subject -all

其中 i 代表"输入",s 代表"受试者"。执行该命令后,系统会创建 $SUBJECTS_DIR/sample 文件夹,并在其中生成若干子文件夹(如 bem、label、mri 等)。

解剖重建可能需要花费数小时,哪怕是用配置很高的电脑也一样。

FreeSurfer 会执行半球分离 操作,因此大多数生成的文件都有独立的左、右半球版本,并分别用前缀 lhrh 来标识。MNE-Python 也保留了这种半球分离的结构(例如,mne.SourceEstimate 对象会分别存储两个半球的空间位置(即顶点);可参考"SourceEstimate 数据结构")。

下面展示了 Sample 数据集受试者左侧半球的 FreeSurfer 重建结果示例,其中还叠加显示了解剖分区图。

复制代码
# Authors: The MNE-Python contributors.
# License: BSD-3-Clause
# Copyright the MNE-Python contributors.

import mne

sample_data_folder = mne.datasets.sample.data_path()
subjects_dir = sample_data_folder / "subjects"
Brain = mne.viz.get_brain_class()
brain = Brain(
    "sample", hemi="lh", surf="pial", subjects_dir=subjects_dir, size=(800, 600)
)
brain.add_annotation("aparc.a2009s", borders=False)

Use with MNE-Python

为了让源定位分析能够正常运行,必须事先完成 FreeSurfer 的重建工作。此外,对于许多与逆问题成像相关的 MNE-Python 函数(例如 mne.setup_source_space),必须在全局范围内定义 SUBJECTS_DIR(将其设为环境变量,或者调用 mne.set_config 进行设置);或者,也可以在每次调用函数时,通过传递关键字参数 subjects_dir='/path/to/your/subjects_dir' 来单独指定路径。

可以查阅"设置源空间"章节,了解该参数在特定函数中是如何工作的;也可以查阅"MNE 如何使用 FreeSurfer 的输出"章节,获取更多关于 MNE-Python 与 FreeSurfer 如何集成的详细信息。

'fsaverage'

在安装过程中,FreeSurfer 会将一个名为 fsaverage 的受试者文件夹复制到 $FREESURFER_HOME/subjects/fsaverage 目录下。fsaverage 是一个基于 40 个真实大脑的核磁共振扫描图像组合而成的模板大脑

fsaverage 受试者文件夹包含了正常受试者经重建后所能生成的所有文件。关于它的概览,请查阅 FreeSurfer 维基上的 FsAverage 页面;关于用于创建 fsaverage 的受试者详情,请查阅 Buckner40Notes 页面。此外,Sample 数据集中也附带了一份 fsaverage 的副本,它同时也作为独立的数据集进行分发。

fsaverage 最常见的用途之一是作为皮层形态变换源估计变换 的目标空间。换句话说,通常的做法是将每个个体受试者估算出的大脑活动**映射(morph)**到 fsaverage 大脑上,以便进行组级别的统计比较。

相关推荐
杨充39 分钟前
1.3 浮点型数据设计灵魂
开发语言·python·算法
meilindehuzi_a1 小时前
深入浅出数据结构:Python 字典(Dict)与集合(Set)的哈希表底层全链路追踪
数据结构·python·散列表
Lucas凉皮1 小时前
20243408 2025-2026-2 《Python程序设计》综合实践报告
python·实验报告
键盘上的猫头鹰2 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
薛定谔的猫-菜鸟程序员2 小时前
2小时智能体开发一个智能体?我用CodeArts Agent 和 AtomCode 开发了一个适老化智能体。
人工智能·python·agent
bigfootyazi3 小时前
python爬虫-基本库-urllib库(常用速查)
开发语言·爬虫·python
瑶总迷弟3 小时前
使用 mis-tei 在昇腾310P上部署 bge-m3模型
pytorch·python·华为·语言模型·自然语言处理·cnn·unix
belong_my_offer4 小时前
认识到精通函数
开发语言·python
卡次卡次15 小时前
vibecoding起步注意点:插件、Skills、MCP、Hooks
服务器·数据库·python·oracle
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列24--如何用Pytest去设计接口测试用例并执行
python·学习·测试工具·pytest