第 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 版本
注意: 如果报错 "package ‘RUVseq’ is not available",很可能是 BiocManager 版本太旧。先更新:
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 验证安装是否成功

装完之后别急着走。我习惯用三步检查法:

  1. 加载包,看是否有报错。
  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 矩阵,那就稳了。我当年第一次跑成功时,看见那列数字心里就踏实了——工具链通了,后面的事就好办。

核心逻辑图: 下面这张图把安装到验证的流程串起来,你可以跟着走一遍。
RUVseq 安装与验证流程 1. 检查 R 版本 2. 安装 BiocManager 3. 选择安装方式 BiocManager devtools(GitHub) 手动安装 4. 安装依赖包 5. 加载 & 测试 依赖列表 edgeR / EDASeq Biobase / SummarizedExperiment

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") 调用。既清晰又可控。

2.6 本章小结