Freesurfer 安装及简单使用教程

2,512 阅读6分钟

FreeSurfer‌ 是一个功能强大的神经影像学分析软件包,广泛用于处理和可视化大脑的横断面和纵向研究数据。本文详细记录了 Freesurfer 软件安装的全过程以及部分使用教程。

一. Ubuntu 20.04 LTS Download

  1. 前往 releases.ubuntu.com/20.04.6/ 以下载 ubuntu-20.04.6-desktop-amd64.iso

  2. 换源以确保后续软件安装顺利:

  • 备份软件源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
  • 编辑软件源文件:
sudo nano /etc/apt/sources.txt
# 或
sudo vim /etc/apt/sources.txt

注:仅为文本编辑器差别。

  • 删除该文件里的全部内容,复制以下内容之一直接替换:

阿里云源

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse 

清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

中科大源

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
  • 保存并退出文本编辑器后,在命令行中输入以下命令:
sudo apt-get update -y		# 访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑
sudo apt-get upgrade -y		# 与源列表网址中软件版本进行对比,检查是否需要更新

二. Freesurfer 7.4.1 Download

  1. 前往 surfer.nmr.mgh.harvard.edu/fswiki/rel7… 选择 Linux 下适用于 Ubuntu20 amd64 的安装包 (本文以freesurfer_ubuntu20-7.4.1_amd64.deb为例)
  2. 在你的下载目录 (通常为 /home/user_name/下载 ) 输入以下命令安装,安装后软件目录为/usr/local/freesurfer
sudo dpkg -i freesurfer_ubuntu20-7.4.1_amd64.deb	# 安装 freesurfer

注:此处可能出现软件环境缺失的问题,请自行下载对应环境。

3.在 surfer.nmr.mgh.harvard.edu/fswiki/Down… 下的 License 栏单击 Follow this link to obtain a license key 以获取软件许可证;

image.png 发送至邮箱或在网页下载后,将 license.txt 移动到 /usr/local/freesurfer 下;

sudo mv ~/下载/license.txt /usr/local/freesurfer/licenses/
  1. 配置 Freesurfer 环境:
# 设置环境变量指向 freesurfer
export FREESURFER_HOME=/usr/local/freesurfer/7.4.1
echo "export FREESURFER_HOME=/usr/local/freesurfer/7.4.1" >> $HOME/.bashrc

# 设置环境变量指向 license.txt
echo "export FS_LICENSE=$HOME/license.txt" >> $HOME/.bashrc

# 设置显示的环境变量
echo "export XDG_RUNTIME_DIR=$HOME/.xdg" >> $HOME/.bashrc
echo "export DISPLAY=:0" >> $HOME/.bashrc

# 设置当每次打开linux命令窗口时配置freesurfer
echo "source $FREESURFER_HOME/SetUpFreeSurfer.sh" >> $HOME/.bashrc
  1. 重启 Linux 命令窗口,查看是否自动显示刚刚配置的环境变量;
  2. 选择一个你喜欢的路径(多为 /home/user_name 下)设置环境变量 SUBJECTS_DIR 以处理以后所有的 freesurfer 项目文件。
echo "export SUBJECTS_DIR=$HOME/freesurfer_subject" >> $HOME/.bashrc

注:此处 $HOME 即为 /home/user_name

  1. 输入 freeview 以打开图形界面。

三. 处理文件(以 IA-HC01-mprage.nii.gz 为例)

注:如果个人没有相应文件,可使用 Freesurfer 自带的 test 数据文件进行测试,此处仅作为简单使用教程。

  1. 打开命令行输入以下命令:
recon-all -s IA-HC01 -i IA-HC01-mprage.nii.gz -all -openmp 16
  • -s IA-HC01 :设置项目名称为 IA-HC01 ,处理结果将保存在 $SUBJECTS_DIR/IA-HC01 目录中;
  • -i IA-HC01-mprage.nii.gz :输入原始T1加权MRI图像(即 NIfTI 格式);
  • -all :执行完整的 Freesurfer 处理流程;
  • -openmp 16 :尝试使用16个 CPU 线程加速计算(可省略该命令或修改具体数值)。

执行速度可能为1h~2h不等(以 联想 LEGION R7000P 2021 R7-5800H 为例)。

如果认为耗时较长,可分开执行以下指令:

# 完成头骨剥离、强度标准化和初始配准
recon-all -s IA-HC01 -i IA-HC01-mprage.nii.gz -autorecon1 -openmp 16
# 检查脑组织是否提取完整,是否残留头皮或眼眶
freeview -v IA-HC01/mri/T1.mgz IA-HC01/mri/brainmask.mgz

# 完成白质分割和灰质/白质边界
recon-all -s IA-HC01 -autorecon2 -openmp 16
# 检查白质表面是否贴合解剖结构
freeview -v IA-HC01/mri/T1.mgz \
         IA-HC01/mri/wm.mgz \
         -f IA-HC01/surf/lh.white:edgecolor=blue
         
# 完成皮层表面、配准到标准空间、体积分割和统计
recon-all -s IA-HC01 -autorecon3 -openmp 16
# 检查皮层表面是否平滑,分割结果是否合理
freeview -v IA-HC01/mri/T1.mgz \
         IA-HC01/mri/aseg.mgz:colormap=lut:opacity=0.2 \
         -f IA-HC01/surf/lh.pial:edgecolor=red

生成文件及其功能列表如下:

  • 结构影像

    • mri/brainmask.mgz:大脑掩膜文件,去除头骨和非脑组织后的二值掩膜;
    • mri/T1.mgz:经过预处理的高分辨率 T1 加权结构图像(已配准),可用于后续分割或表面重建;
    • mri/wm.mgz:白质概率图,表示白质组织的空间分布,用于皮层表面重建的初始分割依据;
  • 皮层表面文件

    • surf/lh.whitesurf/rh.white:左右半脑白质表面的三角网格模型,标记灰质/白质边界;
    • surf/lh.pialsurf/rh.pial:左右半脑软脑膜表面的三角网格模型,标记灰质与脑脊液边界;
  • 分割、统计文件

    • mri/aseg.mgz:自动亚结构分割结果,标记所有解剖结构体素;
    • stats/aseg.stats:亚结构分割的统计报告,包括体积、表面积等量化指标。
  1. 提取所需数据:
  • 灰质体积:从 aseg.stats 中提取并相加:
# 提取为 csv 格式的表格
asegstats2table --subjects IA-HC01 --meas volume --tablefile aseg_volumes.csv

注:csv 格式可导入 Excel。

  • 颅内总体积:从 aseg.stats 中查找 EstimatedTotalIntraCranialVol 片段:
grep EstimatedTotalIntraCranialVol aseg.stats
  • 皮层厚度与表面积:使用 aparc.stats 文件(基于Desikan-Killiany图谱):
    • 平均厚度:各 ROI 的平均值;
    • 表面积:各 ROI 的总和。
# 左右脑分开计算
# 皮层厚度
aparcstats2table --subjects IA-HC01 --hemi lh --meas thickness --tablefile lh_thickness.csv
aparcstats2table --subjects IA-HC01 --hemi rh --meas thickness --tablefile rh_thickness.csv
# 总面积
aparcstats2table --subjects IA-HC01 --hemi lh --meas area --tablefile lh_area.csv
aparcstats2table --subjects IA-HC01 --hemi rh --meas area --tablefile rh_area.csv

注:由于 aparcstats2table 命令不支持合并计算,所以需要计算后自行合并全脑数据。

  • 灰质:使用 Freesurfer 掩膜提取原始结构像中的灰质:
# 提取所有灰质结构:
mri_binarize --i aseg.mgz --match 3 42 8 47 11 12 13 17 18 10 49 50 51 52 53 54 \
             --o gray_mask.mgz

灰质标签:

  • 海马(17,53)、杏仁核(18,54)
  • 基底节(壳核12,51、苍白球13,52、尾状核11,50)
  • 丘脑(10,49)、小脑皮质(8,47)
# 将生成的灰质掩膜转换为 NIfTI 格式
mri_convert $SUBJECTS_DIR/IA-HC01/mri/gray_mask.mgz \
            $SUBJECTS_DIR/IA-HC01/mri/gray_mask.nii.gz
            
# 可使用 freeview -v 检查掩膜是否正确
freeview -v $SUBJECTS_DIR/IA-HC01/mri/orig.mgz \
         -v gray_mask.nii.gz:colormap=jet:opacity=0.5
         
# 将 Freesurfer 输出的分割文件转换为 NIfTI 格式(以灰质为例)
mri_convert $SUBJECTS_DIR/IA-HC01/mri/aparc+aseg.mgz gm_mask.nii.gz

使用 PythonNibabel 提取灰质:

import nibabel as nib

img = nib.load("T1.nii.gz")
mask = nib.load("gm_mask.nii.gz")

gm_data = img.get_fdata() * mask.get_fdata()

nib.save(nib.Nifti1Image(gm_data, img.affine), "gm_image.nii.gz")  # 输出 .nii.gz
# nib.save(nib.Nifti1Image(gm_data, img.affine), "gm_image.nii")   # 输出 .nii