2. Seurat环境搭建:R语言与RStudio安装、Seurat包安装、依赖包管理
做空间转录组分析,第一步就是把环境搭稳。我见过太多人花半天在报错上,结果发现是R版本不对或者某个依赖没装。说白了,环境搭建就像是打地基——地基歪了,后面再漂亮的代码也跑不起来。
这一章我会带你走一遍完整的安装流程,包括R语言、RStudio、Seurat以及几个关键依赖包。每一步我都会标注避坑点,你跟着敲就行。
2.1 R语言与RStudio的安装
先装R,再装RStudio。顺序别搞反了——RStudio只是一个IDE,它依赖底层的R解释器。如果你先装了RStudio再装R,可能会遇到RStudio找不到R的尴尬。嗯,我之前就犯过这个错。
2.1.1 下载R
打开CRAN官网,选择对应你操作系统的版本:
- Windows:点击 "Download R for Windows",然后选 "base",下载安装包。
- macOS:点击 "Download R for macOS",根据你的芯片(Intel / Apple Silicon)选对应的 .pkg 文件。
- Linux (Ubuntu/Debian):我建议用终端命令添加 CRAN 源后安装,比手动下载更不容易出错。
我个人习惯用 R >= 4.2,因为 Seurat v5 官方推荐这个版本。你安装时留意一下版本号,别装太老的。
提示: macOS 用户装完 R 后,记得在终端运行 xcode-select --install,否则编译某些包时会报错。
2.1.2 安装RStudio
去Posit官网下载免费的RStudio Desktop版本。安装过程很简单——下一步下一步就行。
我遇到过一个问题:装完RStudio后打开,R版本识别错了(比如它用了系统自带的旧版R)。解决办法是在RStudio里手动指定R路径:Tools → Global Options → General → R version,选你刚装的那个。macOS用户尤其要注意这个。
2.2 Seurat包安装
Seurat是空间转录组整合的核心包。它依赖很多底层C++和Fortran库,安装过程可能会有点波折。
2.2.1 通过CRAN安装(推荐)
打开RStudio,在Console里直接运行:
install.packages("Seurat")
这会自动拉取最新稳定版。第一次安装时,R会提示你是否编译一些包,选"Yes"或按回车接受默认。
但!如果你网速慢,或者网络不稳定,可能会下载到一半断掉。这时候可以换国内镜像:
install.packages("Seurat", repos = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/")
我习惯在安装前先配好镜像,省得每次手动写参数:
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
2.2.2 如果CRAN安装失败怎么办?
遇到缺少系统依赖的情况(比如 libgfortran 或 xml2 相关报错),分两步走:
- macOS: 确保装了
gfortran,从 CRAN的工具页面 下载安装。 - Ubuntu: 运行这条命令安装系统依赖:
sudo apt install libhdf5-dev libcurl4-openssl-dev libxml2-dev libssl-dev libgmp-dev libmpfr-dev
然后重新安装Seurat:
install.packages("Seurat")
警告: 千万不要直接 sudo apt install r-cran-seurat。系统源的版本往往严重滞后,而且依赖不全,后面整合分析时会频繁报错。我踩过这个坑,后来全重装了。
2.2.3 从GitHub安装开发版(可选)
如果你想尝鲜Seurat的开发功能,可以用 devtools:
install.packages("remotes")
remotes::install_github("satijalab/seurat", ref = "develop")
不过我个人建议初学者先用CRAN稳定版,等走上正轨了再考虑升级。
2.3 依赖包管理
Seurat本身会自带大部分依赖,但有些你写分析脚本时一定会用到的包需要手动装:
| 包名 | 用途 | 安装命令 |
|---|---|---|
| dplyr | 数据操作与管道处理 | install.packages("dplyr") |
| ggplot2 | 高级可视化 | install.packages("ggplot2") |
| patchwork | 将多个ggplot图形拼合到一张图 | install.packages("patchwork") |
| tidyr | 数据清洗与长宽转换 | install.packages("tidyr") |
| Matrix | 高维稀疏矩阵支持 | install.packages("Matrix") |
| SeuratData | 示例数据集(非必须,但练手方便) | install.packages("SeuratData") |
我建议一次性安装全部:
install.packages(c("dplyr", "ggplot2", "patchwork", "tidyr", "Matrix"))
如果想验证某个包是否可用,用 library() 加载即可:
library(dplyr)
library(ggplot2)
library(patchwork)
如果没有报错,说明装好了。你想想看,这一步其实比想象中快,只要网络流畅,五分钟就能搞定。
核心经验: 依赖包之间的版本冲突是最常见的安装失败原因。我建议每次装完一批包后,用 sessionInfo() 检查一下加载的版本。如果出现类似 namespace ‘rlang’ is imported by ‘Seurat’ but not exported 的警告,就重启R会话,再 install.packages("rlang") 更新一下。
2.4 检查安装成功
最后一步,写一段简单的测试代码。我正好可以用它来确认整个环境没毛病。
library(Seurat)
library(ggplot2)
library(patchwork)
# 创建一个假的Seurat对象来测试
pbmc_test <- CreateSeuratObject(counts = matrix(rpois(2000, lambda = 3), nrow = 100, ncol = 20))
pbmc_test <- NormalizeData(pbmc_test)
pbmc_test <- FindVariableFeatures(pbmc_test)
pbmc_test <- ScaleData(pbmc_test)
pbmc_test <- RunPCA(pbmc_test)
# 用 patchwork 拼几个基础图
p1 <- DimPlot(pbmc_test, reduction = "pca", group.by = "orig.ident")
p2 <- FeatureScatter(pbmc_test, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
p1 + p2 + plot_layout(ncol = 2)
# 打印对象信息
pbmc_test
如果最后能看到控制台输出 An object of class Seurat 以及 100 features across 20 samples 之类的信息,且弹出了图形窗口(或绘图),那就大功告成了。
我见过有人运行这段代码后报错 FindVariableFeatures 找不到,那是因为之前安装的Seurat版本太老。解决办法就是重新安装最新版。还有一种情况是 ggplot2 版本太低导致 DimPlot 报错,升级一下就行。
下面这张图总结了从零到运行环境的完整流程:
看到这里,你的环境应该已经跑起来了。记住:如果某个包报错提示「不存在」,别慌,大概率是没安装或者包名打错了。用 installed.packages() 查看已安装列表,一一核对。嗯,这一步很笨但最靠谱。
好了,环境搭好,后面就可以开始真正的空间转录组分析了。