Ubuntu22.10安装和配置R/FSL/Freesurfer

6052c1032a7b05f26e7d3314e344ca58.png

2018年购入的台式机,一直处于吃灰状态,决定安装Ubuntu方便学习和使用一些基于Linux系统的软件。本文记录相关软件的安装和配置。

>安装Ubuntu22.10<

  1. 到官网下载ISO文件。

  2. 将一个闲置U盘通过Rufus制作为安装盘。

  3. 重启按F11设置引导盘,选择U盘进入后,出现几个选项:

430ab3ea28b25a091824ff792c364608.png

如果电脑带有英伟达的显卡,大概率第一选项是要卡在安装界面的。各种搜索后了解到大概的原因是:Ubuntu自带的显卡驱动nouveau和电脑中的N卡会有冲突,在此界面中按'e',然添加某个参数可以继续安装。具体可以百度。

这里有safe graphics的选项,用该选项可以安装成功。

4.后续选项不赘述。

如果要删除已有系统,要备份重要文件。在安装选项中有一个「其它选项」,选择后可以在其中创建分区表和逻辑驱动器。

扫描二维码关注公众号,回复: 14852835 查看本文章

>Ubuntu必备软件<

1.搜狗输入法

官网有安装步骤不赘述。有个地方要注意的是如果当前系统是英文的话,需要把对号取消才能搜索和添加搜狗输入法。添加将其后移至第一位即可使用。

c0528894b5f47180fb1fcba88a8bd464.png

2.安装NVIDIA显卡驱动

刚安装完的 Ubuntu 系统会使用默认的 nouveau 驱动来使用 Nvidia 显卡,要更换驱动。网上教程很多但是良莠不齐,还有可能只适用于特定版本的Ubuntu。有的教程要禁用nouveau,又要停用gnome非常麻烦,估计是针对较早版本的系统。

最简单的方式是通过界面安装,参考CSDN的博客:

https://blog.csdn.net/zataji/article/details/123104569

打开系统设App: Software & Updates

e55a9a0775f8310d4bfdf2e8322fc7d3.png

选择 Additional Drivers 标签,下面会列出当前显卡可用的驱动版本。点击Apply Changes即可安装。

使用命令 $ nvidia-smi 会显示显卡当前使用信息如果显示没有找到显卡,重新启动即可。若重新启动也无有效输出则为显卡驱动安装失败。

18e28c1a814b0abbd81270ebb44196a6.png

可以在这里顺便为Ubuntu选择一下较快的镜像。

c2e18e1b7cc551934787196cb79594cb.png

3截图+设置快捷键

本文的截图工具。

由于使用的是最小化安装,连系统自带的截图软件都有没有。使用apt-get安装即可,软件名是gnome-screenshot

sudo apt-get install gnome-screenshot

装好后可以看见该APP,点击使用即可。另外它还允许使用命令

36675eb5a43a453d1b61f7182d7963b3.png

通过 -a 和 -c 可以对选区截图并保存到剪切板,因此可以在系统设置中自定义一个快捷键Alt+A作为截图工具。

f915b160615289c0d9747ecd60291cb3.png

4. VLC及解码库

没有解码的话mp4只有声音没有画面

sudo apt-get install h264enc
sudo apt-get  install  vlc

5. 梯子

花一个多小时尝试配置,随后客服告知这里的Linux他们不支持,没有梯子,fsl都可能需要下载几天。不过大部分软件的安装都可以使用国内镜像,速度还不错。

6. 剪切板管理xsel

使用apt-get安装,xsel -bc清除剪切板内容,适用于剪切板不好使的时候。

其他软件比如VScode等还暂未使用到,暂时略过。 

>科研相关软件R<

方式一 推荐

通过Ubuntu的apt-get安装,由于设置了Ubuntu安装镜像,速度也是极快的,大概5分钟就下载和安装好了大概1.5G的内容,比方式二方便太多。

sudo apt-get install r-base-core
sudo apt-get install r-cran-devtools
sudo apt-get install r-cran-tidyverse

方式二

根据官网指示安装,一切顺利。装好后设置CRAN国内镜像(比如tsinghua的)。

9e80098bcaf2cd8d1b3323bb2b752e74.png

options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")))

之后就是基于R的install.packages()安装软件。过程中解决各种无法安装的问题,基本就是缺什么装什么(难道说的是缺钱装有钱?2c5a1463fb284bf13faa4754a6fd807c.png),比如缺少zlib报错:

8451dee23b7bc07b0f403e06eb3970d8.png

sudo apt-get install zlib1g-dev

这里stringr报错非常tricky

stringr的一个依赖包stringi会尝试到raw.githubusercontent.com去下载所需数据icu4c,可惜是无法访问,解决方法可以使用国内镜像替代,或者可以尝试修改hosts文件访问到该地址(位于etc/目录下)。第二种方法似乎可以从根本上解决,但从实际效果看,仅有一次成功下载到了30多k的数据,随后宣告失败。

ef22f9cd173796ca4ecefb11d96d28c3.png

最后发现,最简单的解决方案是安装libicu-dev。

sudo apt-get install libicu-dev

一套流程走下来,需要提前安装以下内容,tidyverse和devtools能正常安装。

sudo apt-get install build-essential
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libxml2-dev
sudo apt-get install libssl-dev
sudo apt-get install libfontconfig1-dev
sudo apt-get install libgit2-dev #gert->usethis
# 可能是安装了精简版的系统,下面的lib也要单独安装
sudo apt-get install libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev

devtools有教程推荐使用sudo安装

sudo -i R
install.packages("devtools")

Rtools是针对Windows的编译工具,Ubuntu无需安装。

方式三

还可以通过conda安装和配置R,在HPC上使用过conda,解决了我各种安装不上的问题。在conda界面找到所需安装的工具,使用conda安装即可,例如:

conda install -c conda-forge r-stringi

>科研相关软件FSL<

1.下载

官网目前给出的是通过python下载和安装。这里由于Ubuntu没有梯子,就选择了先到下载再配置的方式。

去到下载页

https://fsl.fmrib.ox.ac.uk/fsldownloads/

注册后得到的只是一个python文件,也很难看出fsl到底是从哪里下载的,也看不到到底有哪些版本的安装包可用。所有oldversions都可以在这里找到,就是不知到新版本的folder是什么。

https://fsl.fmrib.ox.ac.uk/fsldownloads/oldversions/

也许完整的目录藏在某个链接处,不过应该可以使用web目录扫描工具对fsldownloads目录进行扫描,暂时略过。

根据别人的分享,手动找到几个可用文件,但最新的fsl-6.0.6的文件名是什么不得而知。

https://fsl.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.3-centos6_64.tar.gz

https://fsl.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.4-centos6_64.tar.gz

https://fsl.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.5-centos7_64.tar.gz

选用了第一个文件,文件居然是没有压缩过的整整11G,梯子+浏览器下载大概只花30分钟。某个CSDN博客上有fsl6.0.3百度云盘的共享(目前找不到链接了),那个文件大概有3-4G似乎是经过压缩的。另外一个CSDN博客说可以用百度云离线+会员可以快速下载,也是不错的方案。

2.解压

解压至/usr/local文件夹内

sudo tar xvf fsl-6.0.3-centos6_64.tar.gz -C /usr/local

1dcb7708758725ba3fcd47b0962487aa.png

这里有个小坑,我下载到的文件(11G)并没有压缩,所以tar不需要-z,否则会报错。

8389fcfe7c68d5cd6c0be50eeedc1f4f.png

查看是否为压缩文件可以用file命令,如果显示tar archive说明没有压缩过,不带-z解压。

3.配置

参考官网指导,在.profile文件中添加FSL的设置信息,此版本为6.03(目前官网给的是6.06的设置,第二行bin的位置略有不同)。

# 效果类似
export FSLDIR=/usr/local/fsl
export PATH=$PATH:/usr/local/fsl/bin
source ${FSLDIR}/etc/fslconf/fsl.sh

cb033dea2f261894c1d23b3178d71a69.png

重新登录系统后.profile的设置即可生效。

086108e538ebdfa4e942bce3a0b6419c.png

根据使用shell的类型不同该配置文件名略有不同,但都在home文件夹内。如果需要为所有用户添加fsl的设置,可前往etc文件夹文件进行修改。

f1b35ce4fe1daa465e02c6fd8933f96b.png

4.安装fsleyes

该版本下,fsleyes需要单独安装,否则会出现fsleyes not found的情况。

4dc0f476de19cf21089163260719d1f3.png

同样参考官网

https://open.win.ox.ac.uk/pages/fsl/fsleyes/fsleyes/userdoc/install.html#linux-users

通过conda安装(官网推荐的方法),也可以通过pip安装。conda的好处是可以建立一个独立的环境,保证它不受各种软件升级的影响,python的版本想换就换。

下面是通过pip安装的方式:

4.1.安装必要的libs

sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev libgtk-3-dev libwebkitgtk-dev libwebkitgtk-3.0-dev
sudo apt-get install libjpeg-turbo8-dev libtiff5-dev libsdl1.2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libnotify-dev

4.2.安装fsleyes

pip换国内源安装,之后安装fsleyes,其依赖包(例如Numpy)也会一并安装。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install fsleyes

因为Ubuntu22.04使用了python3.10,使用默认的方式(pip)安装一个依赖包wxPython会出问题,原因是某些工具升级导致语法改变,因此这里需要安装对应Python3.10的wxPython4。(那么问题来了,是否可以删除python3.10安装对应版本的python呢?d645da57b6b74b1013017bb9fba82580.png)

bb7c6ee4fe1d1578e093e830e5345647.png

把链接复制下来安装对应版本的软件即可

pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/wxPython-4.2.0-cp310-cp310-linux_x86_64.whl

再次执行安装,应该不会报错了。

pip install fsleyes

4.3.配置fslyeyes

判断fsleyes和fsl一样使用./fsl的方式启动,因此该文件存在某个bin文件夹中。这里使用 

pip show -f fsleyes

查看fsleyes软件的安装位置。

d3d9a41ef2c582509871b1c0564a9aae.png

可以看到它安装到了此处,

/home/lms/.local/lib/python3.10/site-packages

所以可以去$HOME/.local/处寻找bin文件夹。

6a6104739e6c7dc2e67d5cb5f7891d90.png

看到了fsleyes,在当前路径使用

./fsleyes

或者任何路径下使用

python3 ~/.local/bin/fsleyes

都可以点亮。

84e548590c0cdbafec4c0fe436762fa1.png

剩下就是建立软链接和加入环境变量。

首先删掉一些残留(如果有)

rm $FSLDIR/bin/fsleyes
rm -r $FSLDIR/bin/FSLeyes

然后建立软链接

sudo ln -s ~/.local/bin/fsleyes /usr/local/fsl/bin/fsleyes

就可以通过fsl界面或者命令行的方式进入fsleyes了。同时也可以考虑将$HOME/.local/bin加入PATH中,就目前看似乎并不是必要的。

科研相关软件Freesufer

1.下载

各种版本一目了然,旧版本(比如5.3)也可以通过某个链接下载到。同样需要有梯子,否则会很慢。

https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/7.3.2/freesurfer-linux-ubuntu22_amd64-7.3.2.tar.gz

2cddf6f5c62b0016febb5092ee636f2d.png

2.解压

先用file查看文件类型,看到是gzip压缩的文件,所以tar要带-z

292bbc33aad1ad0853442df15066ccaf.png

tar xzvf freesurfer-linux-ubuntu22_amd64-7.3.2.tar.gz -C /usr/local

3.添加liscence

官网注册获取一个liscence文件

https://surfer.nmr.mgh.harvard.edu/registration.html

该页面有谷歌的真人识别,因此同样要有梯子。

5780200d4b93ccefa8e3c56fdb9a294a.png

下载后放入freesurfer的文件夹中即可。

4.配置

设置Freesurfer,每次使用Freesurfer都需要运行。

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

因此可以考虑将其加入个人的配置文件.profile中,或者.bashrc中。也可以加入/ect文件中为所有用户设置。这里为个人使用因此加入到了.profile中。

f122a16dbef8a2acf4897ffea17e86b9.png

.profile每次登录时生效,因此重新登录后就可验证是否成功。

0608c61899efc8aa01d0d070b6799be5.png

AFNI自己使用的频率其实并不高,需要再安装。目前FSL/Freesufer是装好了,和Ubuntu22.10的适配性如何,以及是否有什么后续问题有待进一步测试。兔年预祝大家钱兔无量,文章兔然接收。

2023/01/21

猜你喜欢

转载自blog.csdn.net/lazysnake666/article/details/128748000