1、Giotto简介与安装

1.1 Giotto是什么?——一个空间转录组分析“工具箱”

空间转录组这个领域,说白了就是既要看基因表达,又要看细胞在组织里的位置。Giotto就是为这个场景量身打造的R包。

我最早接触它是在一个肿瘤微环境项目里。当时手头有10x Visium数据,想看看免疫细胞和肿瘤细胞在空间上怎么“扎堆”。试了几个工具,最后还是Giotto最顺手。它的核心思路很简单:把每个捕获点(spot)当作一个独立“样本”,但保留它们的邻居关系。这样一来,空间聚类、差异表达、配体-受体分析就都能在空间上下文里做了。

嗯,这里要注意:Giotto不只是个可视化工具。它支持从原始数据到高级分析的完整流程。我个人习惯把它叫作“空间组学的瑞士军刀”。

一句话总结: Giotto = 空间表达数据 + 空间位置信息 + 一套模块化分析管线。它能帮你回答“哪些细胞挨得近”“它们在合作干什么”这类问题。

1.2 Giotto的安装流程

安装Giotto不算复杂,但有几个关键点容易踩坑。我在两个项目里都遇到过依赖包缺失导致的报错,所以这里把步骤拆细一点。

  1. 确认R版本——建议用R ≥ 4.2,太低版本很多依赖包装不上。用 R.version.string 查一下就行。
  2. 从GitHub安装主包——Giotto目前不在CRAN上,需要用devtools或remotes拉取。
  3. 安装核心依赖——有些依赖在CRAN,有些在Bioconductor。我会在下一节单独讲。
  4. 加载并检查版本——装完后用 library(Giotto) 确认无报错。

省流操作(我的常用命令)

# 先装devtools和remotes
install.packages(c("devtools", "remotes"))

# 正式安装Giotto
remotes::install_github("RubD/Giotto")

# 如果遇到超时,可以加参数
remotes::install_github("RubD/Giotto", upgrade = "never")

注意: 如果网络状况不好,安装过程可能卡在下载依赖。我建议关掉VPN再试,或者把 upgrade 设成 "never",只装必要的。另外,Windows用户需要提前装好Rtools,不然编译C++代码时会报错。

1.3 验证安装是否成功

装完之后,别急着开工。先跑两行代码确认环境是干净的。

library(Giotto)
packageVersion("Giotto")

如果返回版本号(比如 ‘2.0.1’),就说明安装成功了。如果报错“找不到Giotto”,多半是路径问题,检查一下 .libPaths() 里有没有包含安装目录。我有一回就是装到个人目录但R没加载到那,折腾了十分钟才反应过来。

1.4 依赖包配置与常见问题

这一节可能是整个安装过程里最容易出问题的地方。Giotto的依赖分三类:

依赖类型 常见包 安装来源
基础数据处理 data.table, Matrix, Rcpp CRAN
空间/视觉 ggplot2, ggrepel, spatstat CRAN
生物信息专用 BiocGenerics, S4Vectors, SummarizedExperiment Bioconductor

安装步骤如下:

# 安装CRAN依赖
install.packages(c("data.table", "Matrix", "Rcpp", "ggplot2", "ggrepel", "spatstat"))

# 安装Bioconductor依赖
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(c("BiocGenerics", "S4Vectors", "SummarizedExperiment"))

我曾经遇到过一个恼人的问题:spatstat 升级后改了部分函数名,导致Giotto某些内部调用报错。解决办法是锁定 spatstat 版本,或者直接从GitHub装Giotto的开发版——后者通常更新更快。

避坑: 如果安装过程中出现 ERROR: compilation failed for package ‘RcppArmadillo’,八成是系统缺少编译工具。Linux用户装 libgmp-dev,macOS用户装 gmp via Homebrew,Windows用户确认Rtools安装完整且路径已配置。

Giotto安装流程与关键节点 用户 R 环境 方式1:remotes安装主包 方式2:BiocManager安装依赖 验证版本+加载测试 常见问题:Rtools / 编译 / 网络 准备就绪 → 进入空间转录组分析 说明:完整安装需同时处理主包和依赖;虚线表示问题反馈与修正路径

1.5 推荐环境与性能建议

Giotto处理的数据量通常不小——一张Visium切片就有几千个spot,每个spot对应2万个基因的表达值。内存不足是常见瓶颈。我在一台16GB内存的笔记本上跑过,勉强能应付单样本,但处理多切片或高分辨率数据时明显吃力。

下面是我的建议配置:

场景 推荐内存 CPU核心数 备注
单样本Visium(~5000 spots) 16 GB 4 基础分析可用
多样本/高分辨率(ST、Slide-seq) 32+ GB 8+ 并行处理有明显优势
整合分析 + 空间交互网络 64+ GB 16+ 建议使用服务器或云实例

个人小贴士: 如果内存不够,可以先用 subset 截取感兴趣的区域分析,跑通了再扩展到全切片。另外,Giotto支持 doParallel 后台,记得先注册多核——

library(doParallel)
registerDoParallel(cores = 4)

这能节省大量时间,尤其是做置换检验的时候。

1.6 安装后的第一件事:跑一个内置示例

装完别急着读文档,直接动手试试。Giotto自带了一个微型数据集,用来验证安装是否全面可用。

library(Giotto)

# 创建一个小型的giotto对象
mini_gobject <- createGiottoObject(
  expression = matrix(runif(1000), nrow = 100, ncol = 10),
  spatial_locs = data.frame(sdimx = runif(10), sdimy = runif(10))
)

# 运行基础预处理
mini_gobject <- normalizeGiotto(mini_gobject)
mini_gobject <- calculateHVG(mini_gobject)

print("安装验证通过!")

如果没有报错,恭喜你,环境已经搭好了。接下来就可以准备正式数据了。我个人习惯把这个测试输出保存下来,方便以后排查问题——比如版本升级后出bug,可以快速定位是环境问题还是代码问题。