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.xBioc 3.12 – 3.13已停止更新,不推荐新项目
R 4.1.xBioc 3.14 – 3.15可用但部分包已冻结
R 4.2.xBioc 3.16 – 3.17当前主流,稳定
R 4.3.xBioc 3.18最新,建议使用
注意: 别用R 3.6或更早版本做DE分析。我曾在老版本上跑edgeR,结果edgeR 3.40需要R ≥ 4.0,只能手动降级包,非常折腾。

2.2 R安装——三步走

我在Windows、Linux、Mac上都搭过环境。说几个要点:

  1. Windows: 去CRAN下载安装包,选“安装时把R加入PATH”。否则后面用命令行调用R会找不到。
  2. 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
  1. macOS: 官方pkg安装包最省事。记得安装Xcode Command Line Tools,因为很多包需要编译C/C++代码。
小技巧: 装完R后,先运行 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装,通常装的是老版本或者根本找不到。

核心原则: 所有Bioconductor包一律用 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 语言核心 R 安装(Win/Lin/Mac) Bioconductor 镜像配置 系统编译工具 + 依赖 BiocManager CRAN 镜像 / BioC_mirror DESeq2 + 依赖包 edgeR + 依赖包 环境准备完成 → 进入差异表达分析流程

从这张图可以看到,整个准备工作是树状结构:先搞定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创建独立环境,避免污染全局。
总结: 环境准备是后面所有分析的基础。花10分钟照我上面步骤走一遍,后面省下10小时排错时间。