一、Visium 技术简介与发展历程
说实话,我第一次接触 Visium 还是 2019 年。
那时候公司刚拿到 10x Genomics 的 Visium 平台,我站在那台仪器前,脑子里冒出的第一个念头是——这东西真能把基因表达“拍”成照片?
后来做了一年多的项目,我发现它不仅做到了,而且做得比我想象中好太多。今天我们就聊聊 Visium 是什么,它怎么一步步走到今天的,以及为什么我们需要为它做容器化部署。
1.1 什么是 Visium?
Visium 是 10x Genomics 推出的空间转录组学解决方案。说白了,它能在组织切片上同时测出基因表达和空间位置。
传统 RNA-seq 把组织碾碎了测,你只知道里面有什么细胞,不知道它们在哪儿。Visium 不一样,它在玻片上铺了一层带空间条形码的捕获点阵,每个点对应组织切片上的一个位置。测序后,每个 mRNA 分子都能被“贴”上位置标签。
核心能力: 在组织切片上实现全转录组表达谱的空间定位,分辨率达到 55 μm(每个捕获点直径)。
我在项目中遇到过很多用户,他们最常问的一句话是:“Visium 和单细胞测序有什么区别?”
嗯,这是个好问题。我们看下面的对比:
| 维度 | Visium | scRNA-seq |
|---|---|---|
| 空间信息 | 有,每个捕获点带有空间坐标 | 无,细胞被解离后丢失原位置 |
| 分辨率 | 55 μm 点阵,一个点可能包含 1-10 个细胞 | 单细胞级别 |
| 基因捕获量 | 每个点 ~500-2000 基因 | 每个细胞 ~1000-3000 基因 |
| 样本要求 | 新鲜冷冻或 FFPE 组织切片 | 解离后的细胞悬液 |
| 核心输出 | 空间表达热图 + HE 染色图像 | 基因表达矩阵(无空间信息) |
你想想看,如果只做单细胞测序,你永远不知道肿瘤微环境里那些 T 细胞是怎么“站”在肿瘤细胞周围的。Visium 补上了这个缺口。
1.2 Visium 技术发展简史
Visium 不是突然冒出来的技术。它的前身是 10x Genomics 在 2016 年收购的 Spatial Transcriptomics 公司——那家公司在 2018 年就发了 Science 论文。
- 2018 年:概念验证阶段
Spatial Transcriptomics 团队在 Science 上发表了第一代空间转录组技术,使用微阵列玻片捕获组织切片的 mRNA。分辨率较低,但证明了“空间基因表达”是可行的。
- 2019 年:Visium 商用平台推出
10x Genomics 正式发布 Visium 平台,推出了标准化的试剂盒和配套分析软件 Space Ranger。我记得那时候我们实验室花了一个月才跑通第一版分析流程——没有容器化部署,环境依赖冲突让人头疼。
- 2020-2021 年:FFPE 兼容与扩展
Visium 推出了 FFPE 样本兼容方案,拓宽了临床样本的适用范围。同时,分析流程也加入了细胞类型反卷积算法,比如 RCTD 和 SPOTlight。
- 2022 年:Visium HD 亮相
高分辨率的 Visium HD 发布,捕获点直径从 55 μm 缩小到 2 μm,接近单细胞分辨率。我有个朋友在 AGBT 上看到这个数据时,直呼“这玩意儿要改变游戏规则了”。
- 2023 年至今:生态成熟期
社区工具爆发式增长:Squidpy、Giotto、BayesSpace 等第三方分析包大量涌现。容器化部署成为标准化生产环境的必然需求——这也是我们这门课要解决的问题。
1.3 Visium 的核心工作流程
一个典型的 Visium 实验流程是这样的:
- 组织切片与贴片 — 将冷冻或 FFPE 组织切片贴在 Visium 玻片上
- 组织染色与成像 — 进行 H&E 或免疫荧光染色,获取组织形态学图像
- 组织透化与 mRNA 捕获 — 组织透化后,mRNA 扩散到玻片表面的捕获点阵
- 文库构建与测序 — 对捕获的 mRNA 进行反转录、扩增和测序
- 数据分析 — 使用 Space Ranger 进行初步处理,再用第三方工具做深入分析
然而,数据分析这一步往往是最折磨人的。为什么?环境配置太复杂了。
Space Ranger 依赖特定版本的 Python、R、Cell Ranger 和参考基因组索引。我以前在服务器上徒手搭建环境时,光解决依赖冲突就花了两天。这也是我为什么后来坚定不移地走容器化路线的根本原因。
1.4 Visium 数据分析的生态现状
目前 Visium 的数据分析工具链已经相当丰富。我个人习惯把它们分为三类:
| 工具类别 | 代表工具 | 主要用途 |
|---|---|---|
| 官方流程 | Space Ranger | 原始数据预处理、基因表达矩阵生成、组织图像配准 |
| 空间分析 | Squidpy, Scanpy | 空间可变基因检测、邻域分析、聚类 |
| 细胞反卷积 | cell2location, RCTD, SPOTlight | 从斑点数据推断细胞类型比例 |
实际上,我见过不少团队在分析时会把 Space Ranger 的结果用 Squidpy 继续处理。这个组合在生物信息学圈子里已经算是“标配”了。
# 一个简单的 Squidpy 加载 Visium 数据示例(伪代码)
import squidpy as sq
adata = sq.read.visium('spaceranger_output_path', library_id='sample1')
sq.pl.spatial_scatter(adata, color='total_counts')
这么几行代码就能生成一张漂亮的 UMI 计数值空间分布图。你想想看,如果没有容器化部署,光把 Space Ranger 的输出路径、Python 版本、R 依赖这些理顺,可能就要多花一两个小时。
1.5 为什么我们需要容器化部署
嗯,这个问题其实我在前面已经暗示过了。总结下来有这么几点:
- 环境一致性: Space Ranger、Squidpy、cell2location 等工具对 Python、R、Conda 版本都有精确要求。容器化能保证“一次构建,到处运行”。
- 可重复性: 我在项目中遇到过最头疼的事情,是三个月后重新跑同一个分析的版本依赖变了,结果有微小差异。Docker 镜像锁死环境,杜绝这种问题。
- 团队协作: 去年帮一个 biotech 团队搭建部署方案,他们有三个人用 Mac,两个人用 Windows,还有一个人在远程 Linux 服务器上跑。没有容器化,这简直就是噩梦。
- GPU 加速: 空间聚类分析中,一些深度学习方法(如 SpaGCN、STAGATE)依赖 GPU。容器化能更方便地挂载算力资源。
一句话总结: Visium 技术本身已经在快速发展,但如果数据分析环境不能稳定、快速地部署,技术应用的天花板就会被拉低。容器化是让 Visium 分析真正落地的关键一环。
好,接下来我们用一张图来梳理本章的知识体系,方便你从全局把握 Visium 技术的脉络。
这张图把 Visium 的核心技术、发展历程和数据分析生态串联起来了。你也能看到,三个分支最终都指向我们的核心主题——容器化部署。后面的章节,我们会一步一步把它手把手变成实操。