第 2 章:RUVseq 包的安装与加载
好,咱们直接上手。这一章我带着你把 RUVseq 装进 R 环境里。
别小看这一步——我见过不少人在安装上栽跟头,折腾半天发现不是版本冲突就是依赖没装齐。我自己最开始也是被 edgeR 和 EDASeq 的版本搞到头大。所以咱们一步一步来,稳一点。
2.1 安装前的准备工作
首先确认你的 R 版本 ≥ 4.0。RUVseq 是 Bioconductor 生态里的包,对底层依赖要求不低。你可以在 R 里先跑一下:
R.version$version.string
嗯,如果版本太老,先去 CRAN 升级一下。我个人习惯用最新稳定版,省得后面踩坑。
devtools 和 BiocManager,后面两种安装方式都用得到。
2.2 三种安装方式
根据你的网络环境和 R 配置,可以选择下面任意一种。我按推荐度排序。
| 方式 | 命令 | 适用场景 |
|---|---|---|
| BiocManager | BiocManager::install("RUVseq") |
最推荐,自动处理依赖 |
| devtools(GitHub) | devtools::install_github("drisso/RUVseq") |
想用最新开发版 |
| 手动安装 | 下载源码 tar.gz 后 R CMD INSTALL |
离线环境或特殊需求 |
2.2.1 BiocManager 安装(推荐)
这是最常见的套路。打开 R 终端,直接写:
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("RUVseq")
这一步会自动拉取所有依赖,比如 edgeR、EDASeq、Biobase 等。我第一次装的时候网络不太好,卡在了 EDASeq 上——后来发现是镜像源设置问题。建议你选一个离你近的 CRAN 镜像,例如:
chooseCRANmirror() # 选
BiocManager::install(version = "3.18") # 指定 Bioc 版本
update.packages(ask = FALSE, checkBuilt = TRUE)
2.2.2 devtools(GitHub 开发版)
如果你想试试还在更新的功能(虽然 RUVseq 已经比较稳定了),可以从 GitHub 装:
devtools::install_github("drisso/RUVseq", dependencies = TRUE)
dependencies = TRUE 这个参数很重要。我曾经漏掉它,结果装完一加载就报缺失依赖,还得一个个补安装,特别麻烦。你想想看,一步到位比折腾强。对吧?
2.2.3 手动安装(离线环境)
如果你在集群或内网环境,没有外网访问权限,可以找一台有网的电脑先下载好源码包:
# 在可联网的机器上
download.packages("RUVseq", destdir = "./", type = "source")
然后传到目标机器,用系统终端命令安装:
R CMD INSTALL RUVseq_1.36.0.tar.gz
注意:依赖包也必须手动下载安装。建议走 BiocManager 方式直接装好依赖,再把 RUVseq 源码搬过去。具体做法可以看我后续的 离线安装专题(第 28 章)。
2.3 验证安装是否成功
装完之后别急着走。我习惯用三步检查法:
- 加载包,看是否有报错。
- 列出版本,确认版本号。
- 跑一个示例数据,确保核心函数正常。
第一步:加载
library(RUVseq)
如果不报错,说明最核心的依赖没问题。但别大意,继续往下。
第二步:版本确认
packageVersion("RUVseq")
正常会输出类似 1.36.0 的版本号。我在项目里用过 1.30 到 1.36 几个版本,接口基本一致,但如果你的版本低于 1.30,建议升级。
第三步:跑一个迷你测试
library(RUVseq)
# 用内置的模拟数据
data(exampleRUVseq)
# 尝试运行 RUVg 函数(下一章细讲)
result <- RUVg(exampleRUVseq, rownames(exampleRUVseq)[1:100], k = 1)
head(result$W)
如果输出了一个 W 矩阵,那就稳了。我当年第一次跑成功时,看见那列数字心里就踏实了——工具链通了,后面的事就好办。
2.4 常见安装问题与排查
这部分全是实战经验。我把踩过的坑列出来,你碰上了直接对号入座。
2.4.1 “无法加载共享对象”
出现类似 无法加载共享对象 /usr/lib/R/lib/libR.so 的错,通常是 R 的编译环境不完整。我曾经在 CentOS 上遇到过,解决方案是:
# Ubuntu/Debian 系
sudo apt install build-essential libcurl4-openssl-dev libssl-dev libxml2-dev
# CentOS/RHEL 系
sudo yum groupinstall "Development Tools"
2.4.2 依赖版本冲突
有时候 BiocManager::install() 会提示 “cannot remove prior installation”。这是 R 包锁文件的问题。别慌,手动删掉老版本再装:
remove.packages("edgeR")
BiocManager::install("edgeR")
BiocManager::install("RUVseq")
2.4.3 GitHub 版本装不上
如果用 devtools::install_github() 报错 “Failed to install”,先检查 Git 和 Rtools 是否在 PATH 中。Windows 用户尤其注意:
# 安装 Rtools
install.packages("installr")
installr::install.rtools()
然后重启 R 终端再试。我个人建议 Windows 用户优先用 BiocManager,省心。
2.5 加载与初始化设置
装好之后,每次用之前自然要 library(RUVseq)。但如果你想一条命令搞定加载常用包,可以写到 .Rprofile 里:
# 在 ~/.Rprofile 中添加
library(RUVseq)
library(edgeR)
library(EDASeq)
这样每次启动 R 就自动加载了。不过注意,如果环境里有多个项目,我不建议这么做,容易污染命名空间。更好的做法是在每个分析脚本开头显式 library()。
setup.R,里面写加载包的代码,再 source("setup.R") 调用。既清晰又可控。