2. 开发环境搭建:R语言、Bioconductor与scran安装

说实话,很多人卡在第一步——环境装不上。我见过太多同学R装好了,Bioconductor怎么都调不通,最后灰溜溜换回pip。其实没那么玄乎,咱们一步步来。

2.1 安装R语言

先搞定最基础的R。我个人习惯用最新稳定版,别追太激进。目前推荐4.3.x系列。

2.1.1 在Linux上安装

# Ubuntu / Debian
sudo apt update
sudo apt install r-base r-base-dev

# CentOS / RHEL
sudo yum install R R-devel

# 检查版本
R --version

小技巧: 如果你在公司内网或者代理环境,记得先在终端设好http_proxy和https_proxy,否则安装包会卡住。我曾经在实验室配环境忘了这茬,折腾了俩小时……

2.1.2 在macOS上安装

推荐用Homebrew,干净利落。

brew install r

或者去CRAN官网下载.pkg。嗯,别通过Anaconda装R,版本容易滞后,后面跟Bioconductor的依赖容易打架。

2.1.3 在Windows上安装

下载R-4.3.x-win.exe,一路默认就行。注意勾选「将R添加到系统PATH」。你想想看,后面在终端里直接敲R就能进交互环境,多方便。

2.2 安装RStudio(可选但强烈推荐)

我个人觉得RStudio是单细胞分析的最佳IDE。去Posit官网下载对应平台的版本。装好后你会看到四个窗格:脚本、控制台、环境/历史、文件/绘图。后期跑scran的时候,这个布局能帮你省不少事。

2.3 安装Bioconductor

Bioconductor是单细胞分析的基础设施。scran就托管在Bioconductor上。为什么不用CRAN?因为单细胞数据结构复杂,Bioconductor提供了专门的容器类(比如SingleCellExperiment),CRAN的包没法直接处理。

启动R控制台,执行:

if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install(version = "3.18")   # 适配R 4.3.x

这个过程会自动安装一系列依赖包。我建议你在网络稳定的环境下跑,别中断。曾经我帮一个学员远程调试,他家里WiFi断了一次,结果包冲突,重装了三次才搞定……

避坑指南: 千万别手动去官网下载tar.gz然后R CMD INSTALL,Bioconductor的依赖树很深,手动处理会疯掉。老老实实用BiocManager。

验证安装:

library(BiocManager)
BiocManager::valid()

如果返回TRUE,说明所有包版本兼容,可以继续了。

2.4 安装scran包

核心步骤来了:

BiocManager::install("scran")

等等,还有几个必备的同胞包,建议一并装上:

BiocManager::install(c("scater", "SingleCellExperiment", "scuttle", "uwot", "igraph"))

各组件的作用看下表:

包名角色
scran质控参数调优、聚类、差异分析
scater可视化、质量控制计算
SingleCellExperiment数据容器,统一存储表达矩阵、元数据、降维结果
scuttle与SingleCellExperiment配合的工具函数
uwotUMAP降维,scater的UMAP依赖它
igraph社区检测,scran的聚类算法依赖它

注意: 如果安装过程中报错ERROR: dependencies ‘Rcpp’, ‘RcppEigen’ are not available,说明你的系统缺少C++工具链。回到终端装一下。

# Ubuntu
sudo apt install build-essential

# macOS
xcode-select --install

# Windows
# 安装Rtools,去 https://cran.r-project.org/bin/windows/Rtools/ 下载

2.5 验证安装

跑一个最小的测试脚本,确认一切就绪。

library(scran)
library(SingleCellExperiment)

# 模拟一个小型数据集
set.seed(42)
counts <- matrix(rpois(2000, lambda = 10), nrow = 200, ncol = 10)
rownames(counts) <- paste0("gene", 1:200)
colnames(counts) <- paste0("cell", 1:10)

sce <- SingleCellExperiment(list(counts = counts))

# 运行质控指标计算
qcstats <- perCellQCMetrics(sce)
head(qcstats)

如果控制台输出了10行×若干列的质控统计表,恭喜你——环境搭好了!

2.6 本章知识体系总览

用一张图理清安装流程中各组件的关系:

scran 开发环境搭建流程 操作系统 (Linux/macOS/Win) R 语言 (≥4.3.x) BiocManager RStudio (IDE) 系统依赖 (Rtools等) Bioconductor v3.18 scran · scater · SingleCellExperiment scuttle · uwot · igraph 环境就绪 ✓ 推荐安装顺序 OS → R → BiocManager → Bioconductor → scran

这张图总结了整个依赖链。简单说就是:操作系统打好地基 → R语言建好框架 → BiocManager当脚手架 → Bioconductor是中间层 → scran等包就是砌在上面的砖。哪一层出了问题,后面的都别想跑通。

2.7 常见问题与速查

Q: 安装时内存报错怎么办?
A: 有些包编译需要大量内存(比如RcppEigen)。在Linux上可以设置MAKEFLAGS限制并行任务数:

Sys.setenv(MAKEFLAGS = "-j2")
BiocManager::install("scran")

Q: 提示‘package ‘scran’ is not available (for R version 4.3.0)’
A: 先确认你的Bioconductor版本是否匹配。运行BiocManager::valid(),如果返回FALSE,执行BiocManager::install(ask=FALSE)升级所有包。我曾经因为R版本太旧,卡在这里一整天……后来发现是镜像源的问题,换成国内镜像就秒了。

# 设置清华大学镜像
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
BiocManager::install(version = "3.18")

好了,环境搭建就聊到这儿。记住,这一步看似琐碎,但往后30章所有的分析都跑在这个环境上。花半小时把地基打稳,后面才能心无旁骛地调参数、看结果。