生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

318

主题
发表于 2022-8-9 21:43:31 | 查看: 2542| 回复: 0
背景
       R 语言的一大优势就是有各种各样的扩展包,所谓 R 扩展包,就是将数据处理的算法通过 R函数来实现,在加上测试数据,说明文档整合在一起,就是 R 的扩展包。在使用 R 的过程中,肯定需要使用到 R 的包,因此,需要掌握 R 包的管理,包括包的查找,安装,加载,升级,取消加载,删除,查看帮助文档等等操作。

一、如何选择合适的 R 包
1.1通过 R TaskView 查找需要的软件包,根据大类查找。
       网址:https://cran.rstudio.com/web/views/

1.2阅读文献,参考里面使用的 R 包。

1.3bioconductor 项目
       Bioconductor 是建立在 R 语言环境上的,用于生物信息数据的注释、处理、分析及可视化工具包的总集,由一系列 R 扩展包组成。很多生物数据都是使用 bioconductor 包来分析的。
       Bioconductor 官网:http://www.bioconductor.org/


二、R 包的管理
       由于不用 R 包之间存在相互依赖的关系,因此,强烈推荐采用在线安装的方式,这样软件可以自动解决依赖关系问题,节约大量时间。R 默认的服务器在国外,为了加快下载速度,需要将 R 镜像站点修改为国内镜像站点。
2.1 R 包默认安装到以下目录
       R 包的默认安装路径与登录账号是否为管理员有关,如果登录的为管理员账号,则默认安装到 R 安装目录下。如果登录的为普通账户,则在每个账号下的我的文档中。

  1. #windows 系统:
  2. C:\Program Files\R\R-4.0.3\library
  3. C:\Users\xxxx\Documents\R\win-library\4.0
  4. #macos 系统:
  5. /Library/Frameworks/R.framework/Versions/4.0/Resources/library
  6. #Linux 系统:
  7. /usr/local/lib64/R/library/
  8. ~/R/x86_64-pc-linux-gnu-library/4.0/
  9. #查看 R 包安装目录
  10. .libPaths()
  11. .Library
  12. .Library.site
复制代码


2.2 设置镜像
       通过网络安装 R 包,网络速度影响比较大,因此要选择合适的镜像,一般选择距离较近的镜像。

  1. chooseCRANmirror()
  2. chooseBioCmirror()
  3. setRepositories()
复制代码
常用 R 镜像站点
CRAN 站点:
       https://mirrors.tuna.tsinghua.edu.cn/CRAN/
       https://mirrors.ustc.edu.cn/CRAN/
Bioconductor 镜像:
       https://mirrors.ustc.edu.cn/bioc/
       https://mirrors.tuna.tsinghua.edu.cn/bioconductor/
github:
       https://github.com/


2.3 R 包管理
       可以将每个 R 包看成一个手机 App,R 包的管理类似于手机应用的管理,包括搜索,下载,安装,打开,卸载等操作。

  1. #安装 vcd 包
  2. install.packages("vcd")
  3. #一次安装多个包
  4. install.packages(c("ggplot2","pheatmap"))
  5. #查看已安装的包
  6. installed.packages()
  7. #加载 R 包
  8. library(vcd)
  9. require(vcd)
  10. #升级软件包
  11. update.packages()
  12. #删除扩展包,从磁盘中移除
  13. remove.packages("vcd")
  14. #取消加载,从内存中移除
  15. detach("package:vcd")
  16. #其余函数
  17. #列出 R 包中的函数
  18. ls(package:base)
  19. #加载包中的数据集
  20. data(package="vcd")
  21. #查看当前环境哪些包加载
  22. find.package()
  23. path.package()
  24. #查看当前环境哪些包加载
  25. find.package()
  26. path.package()
  27. search()
  28. #列出当前包
  29. (.packages())
  30. #列出有效包
  31. (.packages(all.available=TRUE))
  32. path.package() #列出加载包的路径
复制代码


2.4 安装 github 网站的 R 包
  1. # 安装 devtools
  2. install.packages("devtools")
  3. library(devtools)
  4. #github 在线安装
  5. install_github("github_user_name/package_name")
  6. #下载到本地安装
  7. devtools::install_local("path_to_package_file.zip")
复制代码


三、利用 bioconda 管理 R
       bioconda 中包含了大量 R 包,可以通过 bioconda 管理 R 包。相比于 R 内置的函数,bioconda提供了更加方便的环境管理,安装R包更加方便。如果使用bioconda版本的R,使用bioconda安装 R 包更加方便。
       在使用 bioconda 管理 R 包之前,首先需要知道 R 包在 bioconda 中名字为名字为 r-base,一些 Bioconductor 包的名字为 bioconductor-前缀。这样就可以使用 conda 命令安装和管理R 包了。bioconda 安装的 R 包,安装路径在下面目录下。

  1. miniconda3/lib/R/library"
复制代码
      conda 几乎可以安装大量的 R 包,这里推荐使用 bioconda 管理 R 包。
  1. #搜索 deseq2 包
  2. $ conda search deseq2
  3. Loading channels: done
  4. No match found for: deseq2. Search: *deseq2*
  5. # Name Version Build Channel
  6. bioconductor-deseq2 1.8.2 r3.2.2_0 bioconda
  7. bioconductor-deseq2 1.10.0 r3.2.2_0 bioconda
  8. bioconductor-deseq2 1.10.0 r3.2.2_1 bioconda
  9. bioconductor-deseq2 1.10.1 r3.2.2_0 bioconda
  10. #安装 deseq2 包
  11. $ conda install -y bioconductor-deseq2
复制代码


四、查看帮助文档
       学习 R 语言需要经常查看帮助文档,包括 R 包的帮助文档,查看帮助文档可以快速了解一些函数的用法。不过由于开发者不同,因此帮助文档的水平也参差不齐。查看帮助文档,可以使用 help()函数,一般的 R 函数都会自带案例代码,可以直接使用 example()函数运行这些代码。此外,一些 R 包还提供一种 vignette 格式的文档。

  1. #打开帮助页
  2. help()
  3. #查看函数帮助
  4. ?ggplot2
  5. #查看扩展包里函数
  6. ??heatmap
  7. #查看包帮助文档
  8. help(package="ggplot2" )
  9. #运行函数案例代码
  10. example("heatmap")
  11. #查看 vignettes 格式文档
  12. browseVignettes()
  13. #R 网站搜索
  14. RSiteSearch("heatmap")
复制代码


五、安装常用 R 包
  1. install.packages("vcd")
  2. install.packages("plotrix")
  3. install.packages("vioplot")
  4. install.packages("venn")
  5. install.packages("RColorBrewer")
  6. install.packages("ggplot2")
  7. install.packages("ggExtra")
  8. install.packages("gcookbook")
  9. install.packages(c("carData","gridExtra"))
  10. install.packages("ggsci")
  11. install.packages("ggpubr")
  12. install.packages("ggthemes")
  13. install.packages(c("Rwordseg","wordcloud2"))
  14. install.packages("pheatmap")
  15. install.packages("qqman")
  16. install.packages("maps")
  17. install.packages("factoextra")
  18. install.packages("circlize")
  19. install.packages(c("FactoMineR", "ggfortify"))
复制代码


六、R 包迁移
6.1 直接拷贝 R 包
       R 包一般都是一个完整文件,只需要将 R 包整个文件夹迁移走,一般就可以运行。对 R 包进行迁移时,尽量保证 R 版本一致。直接将整个 R 包目录拷贝到新的目录下即可。首先找到 R包的安装目录,然后将整个目录打包,拷贝到另外一个目录解压缩。

  1. .libPaths()
  2. # [1] "/share/Software/miniconda3/envs/r4-base/lib/R/library"
  3. # [2] "/home/xhs/R/x86_64-conda-linux-gnu-library/4.1"
复制代码
      该方法只是一种方案,绝大部分包是可以的。但是注意不能将 windows 系统安装的迁移到Linux 下。该方法也不是万无一失,比如 R 包需要系统一些配置,缺少了还是无法运行。

6.2 获取名字重新安装
       获取要迁移的 R 包名字列表,在一台设备上使用循环逐个安装。但是该方法无法处理Bioconductor 或者 github 上安装的包。

  1. #保存 A 设备上的 R 包名字列表;
  2. oldip <- installed.packages()[,1]
  3. save(oldip,file = "installedPacckages.Rdata")
  4. #在 B 设备上进行安装;
  5. load("installedPacckages.Rdata")
  6. newip <- installed.packages()[,1]
  7. for (i in setdiff(oldip,newip)) {
  8. install.packages(i)
  9. }
复制代码


6.3 通过 libPaths()函数

  1. (base) xiehs 10:24:06 ~
  2. #使用自己安装的 R
  3. $ /ifs1/Software/biosoft/R-4.1.1/bin/R
  4. #列出当前 R 包目录,有两个
  5. > .libPaths()
  6. [1] "/home/xiehs/R/x86_64-pc-linux-gnu-library/4.1"
  7. [2] "/ifs1/Software/biosoft/R-4.1.1/library"
  8. #通过 new 选项增加新的目录
  9. > .libPaths(new="/ifs1/Software/miniconda3/lib/R/library")
  10. #新的目录增加进来了,这样一下子就多了很多包可以使用
  11. > .libPaths()
  12. [1] "/ifs1/Software/miniconda3/lib/R/library"
  13. [2] "/ifs1/Software/biosoft/R-4.1.1/library"
复制代码
      new 选项会去掉之前默认的,可以通过在函数中增加一个向量增加多个目录。
  1. > .libPaths()
  2. [1] "/home/xiehs/R/x86_64-pc-linux-gnu-library/4.1"
  3. [2] "/ifs1/Software/biosoft/R-4.1.1/library"
  4. > .libPaths(c(.libPaths(),"/ifs1/Software/miniconda3/lib/R/library"))
  5. > .libPaths()
  6. [1] "/home/xiehs/R/x86_64-pc-linux-gnu-library/4.1"
  7. [2] "/ifs1/Software/biosoft/R-4.1.1/library"
  8. [3] "/ifs1/Software/miniconda3/lib/R/library"
复制代码


您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-11-23 16:05 , Processed in 0.097148 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表