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 大脑上,以便进行组级别的统计比较。

相关推荐
2601_962078197 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
2601_962218617 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949657 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
2601_962885727 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
李高钢8 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
ocean21038 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
Warson_L8 小时前
Python的OrderedDict
python
隐擎fox8 小时前
高性能网络爬虫架构设计:基于 Python 的长连接复用与分布式会话池调度实践
分布式·python·网络协议·tcp/ip·高并发·网络爬虫、
Warson_L9 小时前
Python的TypedDict
python·langchain·llm
晓窗科技9 小时前
口碑好的AI基座服务商
大数据·人工智能·python