FreeSurfer汉化教程

article/2025/11/5 6:35:42

介绍FsFAST的预处理

根据官网的英文进行翻译,并在使用过程中所犯的错误进行解决的过程

介绍Tutorial Data 下载以及安装

安装

安装Tutorial Datasets 从教程数据,创建文件tutorial_data在自己的工作路径中。

curl https://surfer.nmr.mgh.harvard.edu/pub/data/tutorial_data.tar.gz -o tutorial_data.tar.gz
tar -xzvf tutorial_data.tar.gz
rm tutorial_data.tar.gz

配置

为了能够运行tutuorials用于需要设置环境变量TUTORIAL_DATA设置为 tutorial_data的根目录,文件夹中必须包含提取出来的数据(目录有’buckner_data’,‘long-tutorial’,'fsfast-functional’等),由于教程中频繁使用环境变量TUTORIAL_DATA,需要对他进行适当的设置才能正常运行

export TUTORIAL_DATA=/path/to/your/tutorial/dir
ls $TUTORIAL_DATAbuckner_data                    fsfast-functional
diffusion_recons                fsfast-tutorial.subjects
diffusion_tutorial              long-tutorial

如果出现类似上面的输出,则可以进行教程的学习了

FSFAST 预处理介绍

一旦数据存放在适当的目录结构和命名约定中,可以对数据执行预处理步骤,预处理包括:
a) Template Creation
b) Brain Mask Creation
c) Registration with FreeSurfer Anatomical
d) Motion Correction
e) Slice Timing Correction
f) Spatial Normalization
g) Masking
h) Spatial Smoothing
在FSFAST中,假设每个数据集将在三个归一化空间中进行分析:

  1. Left cortical Hemisphere 左半球大脑皮层
  2. Right cortical Hemisphere 右半球大脑皮层
  3. Subcortical Structures 皮层下结构(Volumed-based)
    判断多大的平滑和是否需要进行Slice Timing Correction。在这个分析中使用FWHM=5mm对数据进行平滑处理,然后需要进行Slice Timing Correction。 Slice Timing对于特殊的数据集是升序的(“Ascending”),即first slice是最先得到的,second slice是第二个得到的。
    执行一下命令,对数据执行预处理部分,首先切换到目标目录中.
export SUBJECTS_DIR=$TUTORIAL_DATA/fsfast-tutorial.subjects
cd $TUTORIAL_DATA/fsfast-functional

然后执行preproc-sess具体命令如下

preproc-sess -s sess01 -fsd bold -stc up -surface fsaverage lhrh -mni305 -fwhm 5 -per-run

这条命令有几个参数:

  • -s sess01:进行预处理的session是哪个
  • -fsd bold:表示functional subdirectory(FSD)
  • -stc up:执行slice-timing correction的顺序是 ascending(‘up’)
  • -surface fsaverage lhrh:数据应该被采样到 "fsaverage"受试者的左右半球
  • -mni305:将数据采样到 mni305 volume(2 mm 各向同性体素大小)
  • -fwhm 5:在重采样之后使用 5mm FWHM进行平滑处理
  • -per-run:分别配准每个run

上面的了命令做的步骤比较多,如果是包含多个被试时,将花费比较长的时间执行。
产看其中一个运行目录的内容

ls $TUTORIAL_DATA/fsfast-functional/sess01/bold/001

你将看到呈现出很多的文件,但是有三个比较重要的文件:

  • fmcpr.up.sm5.fsaverage.lh.nii.gz -左半球的 fsaverage
  • fmcpr.up.sm5.fsaverage.rh.nii.gz -右半球的 fsaverage
  • fmcpr.sm5.mni305.2mm.nii.gz - volume的fsaverage - 用于皮层下分析

这些是时间序列的数据,并且他们的名称表明他们执行的过程

  • fmcpr - 每个run的头动校正
  • up - 使用升序的时间层校正(slice-timing correction)
  • sm5 - 使用 5mm FWHM进行平滑处理。
  • fsaverage.lh - 左侧半球的表面进行采样
  • fsaverage.rh - 右侧半球的表面进行采样
  • mni305.2mm - 在2mm各向同性的 fsaverage (MNI305)volume中采样
    在这里插入图片描述
    想要了解更多,看Preprocessing Details

Quality Assurance 质量保证

Functional-Anatomical Cross-modal Registration

功能-结构交叉模态配准
通过以下命令获得配准质量的总结

tkregister-sess -s sess01 -s sess02 -s sess03 -fsd bold -per-run -bbr-sum

输出为每一个session的每一个run的值

sess01     001 0.5740
sess01     002 0.5776
sess01     003 0.5813
sess01     004 0.5740
sess02     001 0.5159
sess03     001 0.6021
  • 第一列表示Session的ID
  • 第二列表示每个Session中的每次Run
  • 第三列表示quality assurance (QA)值。他是从0到1的值,0表示完美,1表示糟糕。

实际值取决于您如何获取数据。一般来说,任何超过0.8的值都表示可能出了问题,比如:

  • 功能和结构像的个体不匹配
  • 功能像的左右颠倒
  • 初始化失败(部分FOV(Field-of-View)时有发生)

使用以下命令查看registrations的图像

tkregister-sess -s sess02 -fsd bold -per-run

在这里插入图片描述
在这里插入图片描述

  • 这将在Freeview中每次Run中显示registration。
  • 现在只需要看一下配准的结果并确定他看起来结果不错
  • 退出Freeview

如果你想知道更多的关于registration使用tkregister和Freeview,看多模态教程

Preprocessing Details

您不需要执行下面的步骤来理解本教程的剩余部分。这部分可以使你深入理解FS-FAST预处理的内部工作原理.
回到其中一个运行的目录,看看preprocess产生了什么

cd $TUTORIAL_DATA/fsfast-functional/sess01/bold/001
ls

在进行预处理之前,目录中只有 f.nii.gz, workmem.par和wmfir.par。现在里面有许多文件,每个文件都表示不同的预处理阶段,现在输入:

ls -ltr

这个命令将最早创建的文件放在最上面,最晚创建的文件放在最下面

Template

这个阶段创建 template.nii.gz 。这是原始功能数据的中间的时间点(f.nii.gz)。这是一个参考用于头动校准和配准到运行的结构图像。也被用作创建大脑的mask。

使用 mri_info验证Template与原始数据具有相同的维数和分辨率:

mri_info template.nii.gz
mri_info f.nii.gz

注意:本条命令的意思是通过mri_info之后对模板文件(template.nii.gz)与原始数据文件(f.nii.gz)进行比较,以下分别是template与f的纬度和分辨率的信息
template.nii.gz

f.nii.gz

Masking

运行期间产生的Mask存放于masks目录之下。运行ls -ltr masks(注意: ls -ltr masks 表明罗列出masks文件夹中的文件按照创建时间进行排列)您能够发现一个名称为brain.nii.gz的文件。他是通过使用FSL BET程序产生的二进制mask,还有一个由三个体素嵌入的mask名称为brain.e3.nii.gz的文件。这个eroded mask只能通过从脑组织中计算得到(减少边缘效应)。这些文件和template文件有着相同的维度。查看masks命令:

freeview -v template.nii.gz masks/brain.nii.gz:colormap=heat:opacity=0.75 -viewport cornonal

brain.nii.gz

freeview -v template.nii.gz mask/.brain.e3.nii.gz:colormap=heat:opacity=0.75 -viewport coronal

brain.e3.nii.gz
您可以通过移动不透明的滑块或者输入一个新的值来调整mask的不透明度。现在,mask的不透明度设置的是0.75(这是通过在freeview的命令行中设置 opacity=0.75),这样您就能看到哪里与template的volume重叠。brain.nii.gz是用于约束体素的操作步骤。利用eroded mask计算强度归一化和全局平均时间过程的平均功能值。其他的masks之后会讲到。

Intensity Normalization and Global Mean Time Course.

默认情况下,FS-FAST将按比例改变所有voxel的强度和时间点,以确保他们在不同的run,session,subject有相同的值。通过除以大脑中所有voxel和时间点的平均值,然后乘100,确保不同run, session, subject有相同的值。这些数据存储在globl.meanval.dat。 您可以看到这是一个简单的text文件,将值存储起来稍后再用。每个时间点的平均值也能构成waveform(text文件是 global.waveform.dat)。这个可以作为一个nuisance回归

  • runs 1,2,3,4的整体意义是什么?

Functional-Anatomical Cross-modal Registration

将之后的六个文件(init.register.dof6.dat, register.dof6.lta, register.dof6.dat.sum, register.dof6.dat.param, register.dof6.dat.mincost, register.dof6.dat.log)进行配准从功能像到相同被试FreeSurfer的结构像之上。这里只有两个文件是真正重要的:register.dof6.ltaheregister.dof6.dat.mincost

  • register.dof6.lta - 包含配准矩阵的text文件
  • register.dof6.mincost - is a text file that contains a measure of the quality of the registration

Motion Correction

motion correction阶段产生了这些文件: fmcpr.aff12.1D, fmcpr.nii.gz, mcprextreg, mcdat2extreg.log, fmmcpr.nii.gz.mclog, fmcpr.mcdat。其中只有三个比较最重要的文件:

  • fmcpr.nii.gz – 这是motion correction的功能数据。他和原始的功能数据有着相同的维度和大小。
  • fmcpr.mcdat – 每个时间点的全部头动数据的text文件
  • mcprextreg – 文本文件的运动校正参数组成一个正交矩阵,可以作为 nuisance回归
  • 通过命令 mri_info 确认 fmcpr.nii.gz 和f.nii.gz有相同的维度

Slice-Timing Correction

Slice-Timing Correction对在2s内获得30张slice进行时间层校正。通过在时间点之间进行插入来使每个Slice与TR中间层的时间进行对齐来进行Slice-Timing Correction。通过 fmcpr.up.nii.gz进行生成.

  • 使用命令mri_info确认 fmcpr.nii.gz与f.nii.gz有着相同的维度

Resampling to Common Spaces and Spatial Smoothing

功能数据保留在native functional space。现在将其采样到公共空间。公共空间是一个geometry,即所有被试要进行体素与体素之间的配准。在FS-FAST有这样的三个空间:

  • fsaverage的左半球(fmcpr.up.sm5.fsaverage.lh.nii.gz)
  • fsaverage的右半球(fmcpr.up.sm5.fsaverage.rh.nii.gz)
  • fsaverage的volume(MNI305 space) - 用于皮层下分析(fmcpr.sm5.mni305.2mm.nii.gz)

每一个都是将整个4D功能数据集重采样到公共空间中。进行重采样之后要进行空间平滑处理,基于2D表面的平滑处理用于表面,3D的用于Volume。查看MNI305空间volume的维度:

mri_info --dim fmcpr.up.sm5.mni305.2mm.nii.gz # 查看数据的维度和slice数量
mri_info --res fmcpr.up.sm5.mni305.2mm.nii.gz # 查看数据的分辨率

数据维度
76 列76行 93slice的数量 142时间点的数量
查看数据分辨率
2.000 2.000 2.000表示voxel的三个坐标轴上的大小 2000.000=TR。

这个空间的转换是基于 FreeSurfer重建过程中创建的12 DOF talairach.xfm。产看左侧大脑半球的Volume

mri_info --dim fmcpr.up.sm5.fsaverage.lh.nii.gz
mri_info --res fmcpr.up.sm5.fsaverage.lh.nii.gz
1.00 1.00 1.00 2000.000

前三个没有什么意义,因为在surface中没有行,列以及slice。最后一个2000.000表示2s。这个空间的转换时基于FreeSurfer重建过程中产生的基于表面的被试之间的配准。

First Level分析

First Level (Time Series) Analysis

这个教程描述通过 configuring 分析(设计矩阵)和对照如何分析时间序列数据。有两个不同的阶段:

  1. Configuring analyses and contrasts
  2. 通过拟合时间序列到模型上以及计算contrast的p值分析数据。

在Project的母目录下进行教程

export SUBJECTS_DIR=$TUTORIAL_DATA/fsfast-tutorial.subjects
cd $TUTORIAL_DATA/fsfast-functional

Configure an Analysis


http://chatgpt.dhexx.cn/article/BtjkU9FN.shtml

相关文章

Freesurfer教程(ubuntu)

Freesurfer教程(ubuntu) 参考链接:http://www.wjhsh.net/zhhfan-p-13405572.html 1.安装 freesurfer的安装教程各个网站上都用详细的过程,这里不再叙述 这个命令是在处理tutorial_data中的dcm数据时使用的:recon-al…

freeSurfer颅骨剥离

命令参考 https://surfer.nmr.mgh.harvard.edu/fswiki/recon-all recon-all -i 输入文件路径.nii -s 创建用于保存文件夹名称 -sd 保存文件夹所在的目录 -命令 -autorecon2-cp 输入输出参考 https://surfer.nmr.mgh.harvard.edu/fswiki/ReconAllDevTable orig/001.mgz 将…

freesurfer使用

一.做灰白质分割 我的目的是得到某被试的脑白质mask。 1.首先找了freesurfer教程,直接打开了freeview; 2.可视界面中没有直接的wmseg功能; 3.去使用freeview的手册查询wmseg(开始怀疑这种操作不叫该名词..)&#x…

【freesurfer学习1】freesurfer结构像批处理

freesurfer结构像批处理 最近0基础新入脑科学的坑,在等待申请数据集的时候,顺便学习一下freesurfer。 软件的安装稍后在评论区补上。 recon-all 分割重建 在我自定义的重建文件夹recon下有test文件夹,有两个文件夹demo1dcmnii,…

FreeSurfer和FSL的安装和使用(脑部图像去除头骨+对图像和label同时进行仿射对齐)教程

FreeSurfer当前只支持Linux系统和Mac OS。我所使用的系统是Ubuntu 16 .0.4,FreeSurfer的安装耗时较小,但是在处理时耗时较长,可能需要数个小时,甚至一天,这个取决于机器性能,但是和GPU好像没太大关系。下面…

FreeSurfer的安装及使用(个人踩坑记录)

一、环境要求 目前只支持在Linux和MacOS系统,虽然可以用 -parallel 进行多线程处理,但基本消耗的是CPU内存。 二、FreeSurfer的下载与安装 1. 下载安装包 官网链接:rel7downloads - Free Surfer Wiki 根据自己系统型号下载对应安装包&am…

【数学建模】统计回归模型

一、 多元线性回归 matlab统计工具箱 [b,bint,rint,stats]regress(y,x,alpha) 输入 y~n维数据向量数据矩阵,第1列为全1向量alpha(置信水平,0.05) 输出 b~β的估计值bint~b的置信区间r~残差向量y-xbrint~r的置信区间(置信区间包含0则对y的影响不太显…

统计学习模型——决策树

决策树学习的三个步骤:特征选择、决策树的生成和决策树的修剪 一、决策树模型(分类与回归方法) 1.1 基本概念 决策树可为多叉树,是描述对实例进行分类的树形结构决策树由结点和有向边组成。其中结点又分为:内部结点…

机器学习的概率统计模型(附代码)(一)

目录 概率论 1.1 离散随机变量分布 1)伯努利分布 2)二项分布 3)泊松分布 1.2 连续随机变量分布 1)均匀分布 2)指数分布 3)正态分布 总结 系列文章目录 概率论 概率论,是研究随机现象数量规…

【统计模型】缺失数据处理方法

目录 一、缺失数据定义 二、缺失数据原因 三、缺失数据处理步骤 四、数据缺失机制 1.完全随机缺失(MCAR) 2.随机缺失(MAR) 3.非随机、不可忽略缺失(NMAR) 五、缺失数据处理方法 1.直接删除 2.缺失值…

数学统计建模

数据预处理 数据清洗 无量纲处理 检验数据来自哪个分布 正态分布检验 K-S检验的P值检验正态性 非正态数据处理 数据偏态处理 BOX-COX变换 成分数据处理 clr变换 ilr变换 logit变换 属性数据 相关性检验 假设检验方法使用时应首先判断数据是否为正态数据。如果是&#x…

【数学建模】统计分析方法

文章目录 1.回归分析2. 逻辑回归3. 聚类分析4. 判别分析5. 主成分分析6. 因子分析7. 对应分析 1.回归分析 数据量要多,样本总量n越大越好——>保证拟合效果更好,预测效果越好 一般n>40/45较好 方法 建立回归模型 yiβ0β1i……βkxkiεi 所估计的…

统计模型分类

传统统计模型->回归模型(可解决过去和预测未来) 数据挖掘模型->决策树、神经网络等(只能预测未来) 横截面模型:多元回归,逻辑回归,托宾回归(涉及到泊松分布) 向量…

(R语言)R的统计模型

1定义统计模型的公式 下面统计模型的模板是一个基于独立的方差齐性数据的线性模型 用矩阵术语表示,它可以写成 其中y是响应向量,X是模型矩阵(model matrix)或者设计矩阵(design ma- trix)。X的列 是决定变…

【统计学习方法】模型评估与模型选择

一、训练误差与测试误差 首先引入误差的概念,误差(error)是指:学习器的实际预测输出与样本的真实输出之间的差异。类似地,学习器在训练集上的误差被称之为训练误差(training error)或者经验误差…

statsmodels︱python常规统计模型库

之前看sklearn线性模型没有R方,F检验,回归系数T检验等指标,于是看到了statsmodels这个库,看着该库输出的结果真是够怀念的。。 文章目录 1 安装2 相关模型介绍2.1 线性模型2.2 离散选择模型(Discrete Choice Model, DCM)2.3 非参数…

数学建模——统计回归模型

前言:看完数学建模的统计回归模型,更是感到了数学建模的“细腻”之处,对比与机器学习,如果说机器学习像是“打一场仗”,那数学建模更是像“做一场手术”,一个简单的回归问题也可以从中感觉到他“细腻”的美…

统计模型 | 学习笔记

一.概述 任何统计模型都是对现实世界复杂联系的简化 根据目的分类 聚类方法(细分类模型):市场细分,协同推荐 预测方法:回归模型,时间序列模型 关联归纳方法:购物篮分析,序列分析…

七大统计模型

一、多元回归 1、概述: 在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可…

03 常用统计模型简述

逻辑回归模型(LR) 原理:分类模型,依据逻辑斯蒂分布,将线性模型转化为逻辑回归模型,使结果分布0~1之间。 前置条件: 自变量为连续变量,分类变量转为虚拟变量(哑变量)使用 自变量与因…