第2章 安装与配置BayesSpace环境

各位同学,咱们直接进入正题。做空间转录组分析,环境配置是绕不开的第一道坎。BayesSpace这个工具,说白了是个R包,但背后的依赖链可不简单。我见过太多人卡在安装这一步,原因无非是忽略了一些细节。

这一章,咱们就把环境搞定。你跟着我的步骤走,基本不会出问题。

2.1 环境概览与版本要求

先看看BayesSpace需要什么。我把它整理成一个表格,方便你对照检查。

依赖项 推荐版本 说明
R ≥ 4.1.0 建议用4.2.x或4.3.x,更稳定
Bioconductor ≥ 3.16 空间转录组数据底层的依赖
rstan ≥ 2.21.0 MCMC采样引擎,核心计算依赖
SpatialExperiment ≥ 1.10.0 空间表达数据的标准容器
ggplot2 ≥ 3.4.0 可视化用,可选但强烈建议

嗯,这里要注意:rstan 是BayesSpace的“心脏”。它负责跑MCMC采样,如果装不好,后面所有聚类步骤都跑不起来。我早期做项目时,就因为rstan版本问题折腾了两天,后来发现是C++工具链没配好。

2.2 安装步骤详解

2.2.1 安装R与RStudio

这一步没什么好说的。去CRAN官网下R,装RStudio。我个人习惯是先把R装到默认路径,再装RStudio,这样后续包管理最省心。

验证安装是否成功,打开RStudio,在控制台里输入:

version

看到类似 R version 4.3.2 (2023-10-31) -- "Eye Holes" 的输出,就对了。

2.2.2 配置Bioconductor环境

我建议先装BiocManager,它是Bioconductor的包管理入口。命令如下:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(version = "3.18")

装完之后,检查一下:

BiocManager::valid()

如果返回 TRUE,说明环境干净,没冲突。如果返回包版本不一致的警告,那就得先更新。我遇到过这种情况,说白了就是系统里已经装了一些旧包,跟BiocManager不兼容。解决方案是执行 BiocManager::valid()$out_of_date 看哪些包需要更新,然后一个个来。

2.2.3 安装rstan及其依赖

这是最容易翻车的一步。rstan是R语言对接Stan(概率编程语言)的接口,底层依赖C++编译器和一些系统库。

第一步:检查C++工具链

运行下面命令,看你是不是装了编译器:

Sys.which("make")
Sys.which("g++")

如果返回空路径,那就是没装。Windows用户得装Rtools,macOS用户需要Xcode Command Line Tools。别偷懒,必须装。

第二步:安装rstan

我推荐的安装方式:先安装预编译的包,再把MCMC编译优化打开。

install.packages("rstan", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))

然后配置编译选项。在 ~/.R/Makevars 文件(Windows是 ~/.R/Makevars.win)里加上:

CXX14 = g++ -std=c++14 -O3 -march=native
CXX14FLAGS = -O3 -march=native
CXX14STD = -std=c++14

为什么加 -march=native?说白了就是让编译器针对你的CPU做指令优化,MCMC跑起来能快不少。我在服务器上配这个,采样速度提升了将近30%。

2.2.4 安装BayesSpace本体

终于到了主角登场。BayesSpace托管在Bioconductor上,直接用它来装:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("BayesSpace")

装完之后,加载包试试:

library(BayesSpace)
# 应该没有任何错误或警告
packageVersion("BayesSpace")

看到版本号输出,比如 [1] '1.14.0',说明安装成功。

⚠ 我遇到过的坑: 如果安装过程中报错“package ‘BayesSpace’ is not available for this version of R”,八成是你的R版本太老。别挣扎,升级R到4.2以上再试。

2.3 环境验证与测试

装完了不代表能用。我习惯跑一个迷你测试,确保核心功能都正常。

library(BayesSpace)
library(SpatialExperiment)

# 加载示例数据
data(visium_example)
se <- visium_example

# 看看数据结构
dim(se)
# 预期输出: [1]  50 100
# 50个基因,100个点

# 运行聚类测试(跑几个iteration就行)
set.seed(2024)
se <- spatialPreprocess(se, n.PCs = 10)
se <- spatialCluster(se, q = 5, nrep = 100, save.chain = FALSE)

# 检查聚类结果
table(colData(se)$spatial.cluster)
# 应该有5个簇,每个簇的spot数量大致均衡

如果这个测试跑通了,恭喜你,环境完全OK。如果跑的时候卡死或者报错,那基本上是rstan的问题,看看rstan的安装日志。

2.4 本章知识体系

我把整个环境配制的逻辑画成一张图,方便你理解每一步的依赖关系。

BayesSpace 环境配置流程 系统基础 R & RStudio C++ 工具链 Rtools / Xcode CLI 系统依赖 libcurl / openssl R 包管理基础 install.packages / BiocManager rstan MCMC 采样引擎 SpatialExperiment 数据容器 ggplot2 / Matrix 可视化 / 矩阵运算 BayesSpace 包 spatialPreprocess → spatialCluster → 空间聚类 环境验证(测试脚本)

这张图从底层系统开始,一步步到顶层应用。你如果能把这个链条上的每一环都理通,以后装别的空间转录组工具也会轻松很多。

2.5 避坑指南与常见问题

最后,我把最常见的几个问题列出来。你们如果遇到类似的,直接对照着排查。

💡 经验: 我个人建议先创建一个干净的R环境专门给BayesSpace用,尤其是如果你同时做别的项目。方法是用 renv 包:renv::init() 初始化项目环境,后面所有包都装在这个隔离环境里,互不干扰。
🔑 Key Point: 装包时如果遇到网络超时,可以在 install.packages() 里加 repos = getOption("repos")["BioC"],或者手动设置镜像:options(BioC_mirror = "https://mirrors.tuna.tsinghua.edu.cn/bioconductor")。国内的话,用清华镜像通常快很多。

2.6 现在你的环境准备好了

到这一步,你的机器上已经装好了R、Bioconductor、rstan、BayesSpace以及所有核心依赖。你可以放心地进入下一阶段,用真实的空间转录组数据做空间聚类分析。记住,环境越干净,后面跑模型就越省心。