背景:在liunx服务器上安装生信分析所需要的各种R包
- 使用原始的装包命令install.packages("包名")
install.packages("包名")
- 对于生信软件包,常使用BioManager()
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/") #'更改生信包的镜像
#'还可以更改CRAN仓库的镜像
#'options(CRAN="https://mirrors.ustc.edu.cn/CRAN/") #'将CRAN包的下载镜像设置为清华镜像
library("BiocManager")
BiocManager::install('包名') #'一般情况下使用这个命令可以下载大多数生信R包
- 困难包的下载-本地安装01
常有一些顽固的包极难安装,使用简单方法装不上,那么可以先下载到本地,在本地进行安装
#方法一
install.packages("xx.gz", repos = NULL)
#方法二
library(devtools)
devtools::install_local("xx.zip")
在这里,xx.gz通常在包的官网上,举个例子,我准备装biomaRt这个常用的数据库包
首先使用简单的BiocManager方法,报错如下
那么就去浏览器直接搜索包名biomaRt,进入官网如下
从官网可以看见这个包所需要的R版本信息,它和我的R是不匹配的,因此传统方法版本不适配,所以本地化安装,将页面拉到底端
点击上图红框中的biomaRt_2.56.1.tar.gz进行下载,在网络没有防火墙的服务器上,可以先右键保存下载链接,直接使用
wget 网络链接
进行下载软件的压缩包下载完成后,将它上传到linux服务器的软件目录下,这个软件目录是自己创建的目录,用来保存除了conda管理包以外的别的软件,例如,我在我的home目录下创建了一个01.software,进入该目录是一些软件包
在这个路径下,
mkdir biomart_soft
创建一个目录保存与biomaRt有关的本地压缩包,进入该目录,可以看见我有两个压缩包这是因为biomaRt的包下载到服务器上后,我使用本地安装命令
install.packages("/home/***/01.software/biomart_soft/biomaRt_2.56.1.tar.gz/", repos = NULL)
#' 第一个参数就是服务器上保存biomaRt压缩包的完整路径
出现了这样的报错ERROR: dependency ‘BiocFileCache’ is not available for package ‘biomaRt’
而报错中的BiocFileCache包和我的bioconductor版本不适配,使用简单方法也无法下载,因此也需要到这个包的官网,将它的压缩包直接下载并上传到服务器上
至此,
biomaRt
被成功安装
- 困难包的下载-github安装02(待整理)
github包的安装有两种,一种是在线模式,一种是离线模式(离线模式和前面讲的困难包下载一很像,只是包压缩文件的来源不同,这里是在github网站中找)
#'方法一 在线模式
install.packages("githubinstall")
library(githubinstall)
githubinstall("包的github子路径名字")
library(devtools)
devtools::install_github("包的github子路径名字")
#'方法二 离线模式
install.packages("xx.gz", repos = NULL)
library(devtools)
devtools::install_local("xx.zip")
在线模式的关键是找到包的github子路径,通常情况下我们只知道包的名字,不知道它在github上的子路径是什么,在这里我找到两种方法,举个例子:我准备下载我的环境下简单方法下不了的差异分析包DESeq2
首先,可以进入github网站的首页面,搜索DESeq2
其次,可以使用命令githubinstall("DESeq2")
红框中就是提示我这个包在github中的子路径,于是可以继续使用命令
githubinstall("mikelove/DESeq2")
或者命令
library(devtools)
devtools::install_github("mikelove/DESeq2")
完成DESeq2的在线github安装
除此以外,github也能离线安装,例如安装DESeq2就是进入到这个包的github页面,下载离线文件夹*.zip,再使用本地安装
install.packages("xx.zip", repos = NULL)
或者
library(devtools)
devtools::install_local("xx.zip")
这里就小结一下devtools这个工具的两个功能,一是github在线安装功能devtools::install_github("")
另外一个是local本地安装功能```devtools::install_local("")
- 懒人版本:使用别人现成的包
如果组里有许多大佬,且大佬的包所在的路径是可以访问的,那么我们可以直接使用他们下载好的包
在R里,使用libPaths()
命令,可以查看当前使用的包的路径
比如我这里
第一个是我自己conda环境下的R的包路径,也就是我使用conda命令安装的R包会保存在这里,当然,由于在这里它处于第一位,因此我使用install.packages()
等命令安装的包也会在这里,如果第一位是别的路径,那么使用install.packages
等方法安装的包都会保存到别的路径。而除了我自己的包路径以外,我还使用了组里公共路径中的包,几乎涵盖了常规生信分析的所有包,当然也可以添加别人的conda R中的私人包路径,添加的方法有两种,第一种是临时的
.libPaths(c("自己的conda包路径","别人的路径1","别人的路径2"))
临时的方法只在当前打开的R终端起作用,也就是说当q()
退出R终端后,就没有使用别人的包路径,还有一种方法是永久的
cd ~ #'回到自己的home路径
vim .Rprofile #'编辑一个R的配置文档,其实这个文档的意思就是每次启动R时会自动执行的脚本
.libPaths(c("自己的conda包路径","别人的路径1","别人的路径2")) #'在配置文件中输入这句话
:wq! #'保存文件
这样就能偷懒地使用别人千辛万苦下载的包啦