2. 环境准备:R和Bioconductor安装
说白了,做差异表达分析之前,你得先把“厨房”搭好。
我第一次用DESeq2的时候,直接在旧版R上硬跑,结果装一个包报一串错。后来学乖了——先把R、Bioconductor、依赖包整利索,后面省下大把时间。
2.1 R语言核心版本选择
我个人习惯用R 4.2之后的版本。为什么?Bioconductor 3.16以上都基于R 4.2构建,底层C++编译器和BLAS库都有优化。你想想看,如果你还抱着R 3.6,连DESeq2的依赖BiocGenerics都更新不了。
| R版本 | 对应Bioconductor版本 | 说明 |
|---|---|---|
| R 4.0.x | Bioc 3.12 – 3.13 | 已停止更新,不推荐新项目 |
| R 4.1.x | Bioc 3.14 – 3.15 | 可用但部分包已冻结 |
| R 4.2.x | Bioc 3.16 – 3.17 | 当前主流,稳定 |
| R 4.3.x | Bioc 3.18 | 最新,建议使用 |
2.2 R安装——三步走
我在Windows、Linux、Mac上都搭过环境。说几个要点:
- Windows: 去CRAN下载安装包,选“安装时把R加入PATH”。否则后面用命令行调用R会找不到。
- Linux (Ubuntu/Debian): 建议用官方源,不要用系统源的老版本。我习惯加CRAN的APT仓库:
sudo apt update
sudo apt install -y r-base r-base-dev
# 如果你要最新版,先添加CRAN仓库:
sudo echo "deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/" >> /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo apt update
sudo apt install r-base r-base-dev
- macOS: 官方pkg安装包最省事。记得安装Xcode Command Line Tools,因为很多包需要编译C/C++代码。
R --version 确认版本。再设置 R_LIBS_USER 环境变量到个人目录,避免每次重装系统丢失包。
2.3 Bioconductor安装
Bioconductor就像一个基因数据分析的“应用商店”。我建议用官方推荐的 BiocManager 来安装。
# 先安装BiocManager
install.packages("BiocManager")
# 通过BiocManager安装任意Bioconductor包
BiocManager::install("DESeq2")
BiocManager::install("edgeR")
BiocManager::install() 会自动检查你的R版本,匹配对应的Bioconductor版本,并解决依赖。嗯,这里要注意一点:别手贱用 install.packages("DESeq2"),那是从CRAN装,通常装的是老版本或者根本找不到。
BiocManager::install() 来装。
2.4 国内镜像加速
在国外用CRAN官方源很快。但在国内,下载Bioconductor包经常卡在几百KB/s。我建议设置CRAN和Bioconductor镜像:
# 设置CRAN镜像(以清华源为例)
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
# 设置Bioconductor镜像
options(BioC_mirror = "https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
# 之后安装包
install.packages("BiocManager")
BiocManager::install("DESeq2")
你也可以在Rprofile中永久写入,不用每次启动都设一次。
install 跑了半小时,最后网络超时报错。设好镜像后,一分钟搞定。
2.5 依赖包与编译工具
DESeq2和edgeR用到的核心依赖如下。我列个表,方便你核对:
| 包名 | 作用 | 安装方式 |
|---|---|---|
| S4Vectors | 基础数据结构 | BiocManager::install("S4Vectors") |
| IRanges | 区间操作 | BiocManager::install("IRanges") |
| SummarizedExperiment | 表达矩阵+元数据 | BiocManager::install("SummarizedExperiment") |
| GenomicRanges | 基因组坐标操作 | BiocManager::install("GenomicRanges") |
| ggplot2 | 画图 | install.packages("ggplot2") |
| RColorBrewer | 配色 | install.packages("RColorBrewer") |
| pheatmap | 热图 | install.packages("pheatmap") |
Linux系统需要提前装好编译工具和系统依赖库,否则编译 S4Vectors 时会报 configure: error: zlib library not found 这类错。
sudo apt install -y build-essential libcurl4-openssl-dev libssl-dev libxml2-dev zlib1g-dev
我在CentOS上也踩过类似的坑——缺 libcurl-devel。直接跑 yum install 补上就好。
2.6 验证环境
装完之后,跑一个简单的验证脚本。如果没报错,说明环境就绪了:
library(DESeq2)
library(edgeR)
# 查看版本
packageVersion("DESeq2")
packageVersion("edgeR")
# 跑一个最小的测试
counts <- matrix(round(rnbinom(100, mu=10, size=0.5)), nrow=10, ncol=10)
coldata <- data.frame(condition=factor(c(rep("A",5), rep("B",5))))
dds <- DESeqDataSetFromMatrix(countData=counts, colData=coldata, design=~condition)
dds <- DESeq(dds)
res <- results(dds)
head(res)
你看到结果表格里 log2FoldChange 和 pvalue 都出来了,说明环境跑通了。
edgeR,以为只装DESeq2就够。但实际可视化时经常要两套结果对比,所以建议两个都装好。
2.7 环境结构总览
我把整个环境准备的逻辑画成一张SVG图,方便你一眼看清:
从这张图可以看到,整个准备工作是树状结构:先搞定R本身,再装Bioconductor和镜像,接着装DESeq2/edgeR以及它们所需的依赖。每一步都卡住环境完整性。
2.8 常见问题排雷
- 装包时报“non-zero exit status”:通常是系统缺编译工具。Ubuntu用
apt install r-base-dev,CentOS用yum install R-devel。macOS要确保Xcode Command Line Tools已装。 - BiocManager::install 卡在“downloading”:检查镜像设置。我之前遇到过,用国外源下载2GB的S4Vectors,等了半小时。切换成清华源秒下。
- library(DESeq2) 报“there is no package called 'DESeq2'”:一个原因是没装,另一个原因是装在了不同库路径。用
.libPaths()查看当前库路径,确认包在哪个路径下。 - R版本不一致导致包不兼容:我建议直接用R 4.3 + Bioc 3.18,兼容性最好。如果项目必须用旧版,那就用
renv创建独立环境,避免污染全局。