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

news2024/11/16 8:22:37

6052c1032a7b05f26e7d3314e344ca58.png

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

>安装Ubuntu22.10<

  1. 到官网下载ISO文件。

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

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

430ab3ea28b25a091824ff792c364608.png

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

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

4.后续选项不赘述。

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

>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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国家实用新型发明专利:一种机器视觉的流水线智能检测报警系统

国家实用新型发明专利&#xff1a;一种机器视觉的流水线智能检测报警系统 【系统装置设计图】 文章目录国家实用新型发明专利&#xff1a;一种机器视觉的流水线智能检测报警系统【说明书摘要】【权利要求书】【说明书】***技术领域******背景技术******发明内容******有益效果…

C++类和对象(上): 封装与this指针

目录 一.前言 二. 类的引入和定义 1.C和C结构体的区别 2.C类的定义 3.类的成员方法的声明和定义是可分离的 三.面向对象之封装特性 1.封装思想的介绍 2.类封装编程模式的优点 四. 类实例(对象)的内存模型 五.this指针 章节导图&#xff1a; 一.前言 面向过程和面向对…

分享167个PHP源码,总有一款适合您

PHP源码 分享167个PHP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 167个PHP源码下载链接&#xff1a;https://pan.baidu.com/s/1fzoQ4_4VXc1e1ZHOUKuhbQ?pwdsb6s 提取码&#x…

数学表达式的处理

概述 在OJ上 会遇到一些这样的题目&#xff1a; 小明同学写数学四则运算&#xff0c;有把括号写多、写少、写错的情况&#xff0c;比如&#xff08;AB)*(C-D &#xff0c;请你输入一个表达式&#xff0c;判断此表达式的括号是否正确(不考虑运算的结果正确性)。 每次我看到 &q…

【操作系统】—— Windows压缩工具 “ Bandizip与7-zip ”(带你快速了解)

&#x1f4dc; “作者 久绊A” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴。 &#x1f341; 操作系统【带你快速了解】对于电脑来说&#xff0c;如果说…

Python OpenCV 图片滑块验证码 滑块图片验证码 自动识别方案 模板匹配识别 识别成功率调试 源码分析 通用解决方案

前言 通过本专栏前面两篇文章大家已对图片滑块验证码有了初步的了解,对于滑块验证的实现和校验原理有了一定的了解,通过由浅入深的实战案例可直接应用于实战,对于滑块如何在前端实现滑动或接口调用可自行查阅相关资料实现,本文主要讲解 滑块验证码 模板匹配 识别的通用解决…

史上最详细的AVL树的实现(万字+动图讲解旋转)

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️小林爱敲代码       &#x1f6f0;️文章专栏&#xff1a;✈️小林的C之路       &#x1f6f0;️欢迎关注&#xff1a;&#x1f44d…

[Python从零到壹] 六十三.图像识别及经典案例篇之图像漫水填充分割应用

祝大家新年快乐&#xff0c;阖家幸福&#xff0c;健康快乐&#xff01; 欢迎大家来到“Python从零到壹”&#xff0c;在这里我将分享约200篇Python系列文章&#xff0c;带大家一起去学习和玩耍&#xff0c;看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲…

创建者模式-原型模式

1.概述 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象 2.结构 原型模式包含如下角色&#xff1a; 抽象原型类&#xff1a;规定了具体原型对象必须实现的的 clone() 方法。具体原型类&#xff1a;实现抽象原型类的 clone() …

Spring AOP与Spring 事务

一、AOP讲解 创建普通对象UserService Component public class UserService{Autowiredprivate OrderService orderService;public void test(){System.out.println(orderService);}}创建代理对象UserServiceProxy&#xff0c;对test&#xff08;&#xff09;方法进行切面编程…

SSM项目 - 博客系统

1.SSM 版本的博客系统相较于 Servlet 版本的升级1. 框架升级 : SSM (SpringBoot Spring MVC MyBatis) MySQL Redis jQuery.2. 密码升级: 明文存储/md5存储 -> 加盐处理.3. 用户登录状态持久化升级: session 持久化到内存 - > session 持久化到 Redis. (后期有空实现…

cmake 03 一个可用的 cmake 工程应当是什么样的

cmake 学习笔记 代码地址: https://gitcode.net/u014254963/cmake-study/-/tree/master/hello_cmake_project https://gitcode.net/u014254963/cmake-study/-/tree/master/hello_cmake_project_vs 本文目标 多目录构建引用自己写的动态库关于单元测试的一些实践使用 python 脚…

Pandas-DataFrame基础知识点总结

1、DataFrame的创建 DataFrame是一种表格型数据结构&#xff0c;它含有一组有序的列&#xff0c;每列可以是不同的值。DataFrame既有行索引&#xff0c;也有列索引&#xff0c;它可以看作是由Series组成的字典&#xff0c;不过这些Series公用一个索引。 DataFrame的创建有多种…

JavaEE-多线程初阶4

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录多线程案例阻塞队列阻塞队列是什么生产者消费者模型标准库中的阻塞队列阻塞队列实现定时器定时器是什么标准库中的定时器实现定…

(第107篇)C规范编辑笔记(十三)

往期文章&#xff1a; C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) C规范编辑笔记(八) C规范编辑笔记(九) C规则编辑笔记(十) C规范编辑笔记(十一) C规范编辑笔记(十二) 正文&#xff…

行人属性识别研究综述(二)

文章目录6 PAR&#xff08;行人属性识别&#xff09;算法综述6.1全局基于图像的模型6.1.1 ACN (iccvw-2015)6.1.2 DeepSAR and DeepMAR (ACPR-2015) [6]6.1.3 MTCNN (TMM-2015) [7]6.2 基于部件的模型6.2.1 Poselets (ICCV-2011)6.2.2 rad (iccv-2013)6.2.3 PANDA (cvp -2014) …

Java-IO知识详解(一)

分类分类&#xff08;传输&#xff0c;操作&#xff09;IO理解分类 - 从传输方式上字节流字符流字节流和字符流的区别IO理解分类 - 从数据操作上文件(file)数组([])管道操作基本数据类型缓冲操作打印对象序列化反序列化转换装饰者模式分类&#xff08;传输&#xff0c;操作&…

迈百瑞冲刺创业板上市:关联收入占比较高,房健民为加拿大籍

撰稿|汤汤 来源|贝多财经 近日&#xff0c;烟台迈百瑞国际生物医药股份有限公司&#xff08;下称”迈百瑞“&#xff09;在深圳证券交易所提交更新后的招股书&#xff08;申报稿&#xff09;。据贝多财经了解&#xff0c;迈百瑞于2022年9月在递交IPO申请材料&#xff0c;准备…

指定不同版本的pcl

18.04里面安装了两个版本的pcl&#xff0c;一个是安装ros的时候安装的pcl1.8&#xff0c;另一个是安装的源码pcl1.12版本。一直相安无事&#xff0c;今天在我编译lego-loam的时候&#xff0c;突然就冲突了。卡了我两个小时&#xff0c;到处找原因&#xff0c;网上基本上没有相似…

RSD高分卫星数据处理能力提升——日正射处理数千景高分数据集

李国春 通常认为&#xff0c;能够单日处理几百景高分辨率对地观测卫星数据的系统就已经是非常优秀的卫星数据处理系统了。RSD此次优化将其处理能力提升超过了一个数量级&#xff0c;达到了单日正射处理数千景高分辨率卫星数据集的水平。 不仅如此&#xff0c;RSD达到如此高的…