在Ubuntu 22.04上安装FreeSurfer 7.4.1

一、下载FreeSurfer安装包

在FreeSurfer官方网站下载最新的安装包,目前最新版本是7.4.1,发行时间是2023年6月。FreeSurfer提供两种形式的安装包,一种是deb格式(.deb),一种是压缩包的形式(.tar.gz),官方推荐采用deb包,因为可以很好的处理环境依赖问题。但是deb包默认安装位置是在/usr/local,所以需要root权限才能安装。如果没有root权限,可以考虑使用压缩包的形式进行安装。

对于Ubuntu系统,FreeSurfer声明只在Ubuntu18、Ubuntu20、Ubuntu22上做过测试,所以其他版本的Ubuntu是否能顺利运行是不确定的。我这里使用的是22.04 LTS,所以下载对应版本的FreeSurfer(文件名为freesurfer_ubuntu22-7.4.1_amd64.deb)。

二、安装FreeSurfer

  1. 使用如下命令进行安装:
  sudo dpkg -i freesurfer_ubuntu22-7.4.1_amd64.deb
  1. 安装过程中,提示有很多依赖软件没有安装,因此使用如下命令安装依赖环境:
  sudo apt-get update (不是必须)
  sudo apt-get -f install
  1. 解决了环境依赖问题以后,再重新安装FreeSurfer:
  sudo dpkg -i freesurfer_ubuntu22-7.4.1_amd64.deb
  1. 也可以通过apt来安装deb包,就可以一步到位。我之所以没有这样做,是因为不知道,后面查了资料才看到,不过并没有测试过。
  sudo apt install ./freesurfer_ubuntu22-7.4.1_amd64.deb

三、设置环境变量和运行配置文件

如果仅为个人使用,可以将下面两行代码加入主目录下的.bashrc文件中:

export FREESURFER_HOME=/usr/local/freesurfer/7.4.1
source $FREESURFER_HOME/SetUpFreeSurfer.sh

第一行代码设置了FREESURFER_HOME这个环境变量,它指示了FreeSurfer安装的位置;第二行代码运行了SetUpFreeSurfer.sh这个脚本。将这两行代码加入.bashrc的作用是每次打开终端,就会自动去执行这两行代码。只有执行了这两行代码后,FreeSurfer才能正常使用。

如果需要进行全局设置(即电脑上所有用户都能使用FreeSurfer),可以在/etc/profile.d目录下新建一个Bash脚本,并将这两行代码加入脚本中。

四、申请license

虽然FreeSurfer是免费使用,但是需要申请一个license,有两个需要注意的地方:一是不要使用qq.com或者163.com域名的邮箱,很有可能接收不到邮件;二是申请界面最后有一个Google的验证码,需要科学上网才能看到。申请之后,在邮箱中会收到一个license.txt的文件,将该文件下载后放到FreeSurfer的安装目录(即FREESURFER_HOME所指向的位置)。至此,FreeSurfer算是安装完毕。

五、简单测试

由于FreeSurfer官方没有提供用以检验安装是否成功的代码或者数据,因此我跑了一个被试数据的recon-all流程:

recon-all -sd ${OUTDIR} -i ${INDIR}/S01.nii.gz -s S01 -all

这里${OUTDIR}表示输出结果存放的路径,${INDIR}表示原始数据存放的路径,S01.nii.gz表示一个被试的NIFTI格式的T1数据,S01表示输出目录下被试文件夹的名字,也就是说最后的结果存放在${OUTDIR}/S01

recon-all能顺利跑完,再用freeview查看一下结果,没有什么报错就说明安装基本没什么问题。

对于FreeSurfer的某些分析,可能还需要进行一些额外的安装和配置,等以后遇到了再解决。

六、FreeSurfer和FSL环境变量冲突问题

在上面第三步中,如果FreeSurfer检测到环境中安装了FSL,会设置一些FSL相关的环境变量,其中就包括将${FSL_DIR}/bin加入PATH中。但是在FSL 6.0.6以后,FSL
推荐是将${FSLDIR}/share/fsl/bin加入到PATH(来源),因为${FSLDIR}/bin中包含一些非FSL的软件,比如python和conda,将这个路径加入PATH,可能会导致与系统中的
其他软件冲突。为了解决这个问题,可以在$FREESURFER_HOME/FreeSurferEnv.sh中(大约在第400行)将

export FSL_BIN=$FSL_DIR/bin

修改为

export FSL_BIN=${FSLDIR}/share/fsl/bin

正好之前为了新功能装过freesurfer的开发版本,主要就是页面有点难找。需要的也可以参考一下:Freesurfer WMH-SynthSeg使用过程记录 — Neuroimaging Notes of LXG v1.0 文档

1 个赞

非常有用的资料! :+1: @Lxg