空间转录组学概述与Visium平台介绍
大家好,欢迎来到这门实战课。
在正式敲命令之前,我觉得有必要先聊清楚一个问题:我们到底在复现什么?
空间转录组学,说白了,就是给传统的转录组数据加上一个“GPS坐标”。
传统单细胞RNA测序,你只能知道每个细胞里基因表达了多少,但不知道这个细胞原来长在组织里的哪个位置。空间转录组,正好补上了这一环。它能告诉你——某个基因的高表达区域,是不是刚好在肿瘤的边缘,或者某个神经元的亚型是不是只出现在大脑皮层第IV层。
一句话总结:空间转录组 = 组织切片图像 + 基因表达矩阵 + 空间坐标。
1.1 空间转录组技术到底是怎么工作的?
记得我刚接触这个领域时,看的第一张数据图,就是我眼前这个SVG框架所描绘的流程。从组织切片到热图产出,每一步都环环相扣。我把它画出来,你配合着看,会好理解很多。
这个图里展示的空间转录组核心流程,是很多下游分析的根本。
我个人习惯把上图的逻辑再精简一下:先把组织切薄片,放到带有条形码的玻片上,让 mRNA 被捕获并反转录;同时拍下组织切片的 H&E 图像;最后把测序得到的基因表达矩阵,映射回图像上的每一个点位(Spot)。
提示:10x Visium 每个捕获点 (spot) 的直径是 55μm,两个相邻 spot 的中心距是 100μm。一个 spot 内通常包含 1-10 个细胞。这个分辨率,叫做“近单细胞水平”。
1.2 Visium 平台到底是什么?
Visium 是 10x Genomics 公司在 2019 年左右推出的商业化空间转录组检测平台。它接替了早期的 Spatial Transcriptomics 技术(就是那个还在用玻璃片手工点样的版本)。
Visium 最大的改进是:把捕获流程封装成了标准化的试剂盒,加上一套自动化的数据分析软件(Space Ranger)。
好,那 Visium 产出的数据长什么样?
我直接列出三个核心文件,你在后续聚类分析中会反复跟它们打交道:
| 文件 | 格式 | 内容 |
|---|---|---|
| feature-barcode matrix | MTX / HDF5 | 基因表达计数矩阵(行=基因,列=spot) |
| tissue_positions_list.csv | CSV | 每个 spot 在组织图像上的像素 X/Y 坐标 |
| tissue_hires_image.png | PNG | 高分辨率 H&E 组织图像 |
这三个文件,缺一不可。你想想看,如果没有基因表达矩阵,你没法做聚类;没有坐标信息,你画不出空间热图;没有组织图像,你没法把聚类结果跟组织形态对应起来。
避坑指南: 我曾经在一个项目中,直接从公开数据库下载了 Visium 的数据,结果发现 tissue_positions_list.csv 里有一半的 spot 坐标标注的是“不在组织上”(即 fiducial 标记点)。如果不做过滤,这些背景点的表达量是极低的,会严重干扰后续的聚类结果。
1.3 为什么用 Docker 来复现聚类?
我刚开始做生物信息学分析时,最头疼的就是环境问题。
Python 2 还是 Python 3? R 包 Seurat 版本是 4.x 还是 5.x? SPATA 依赖的 S4 对象有没有更新?
每个实验室的服务器环境都不一样。你跑得好好的代码,换台机器就报错。具体到 Visium 数据处理,情况只会更复杂:
- 底层依赖多:Scanpy、squidpy、SpaGCN、Seurat、Giotto……这些库的版本号互相掐架。
- GPU 与 CUDA:如果你要跑 SpaGCN 或者 DeepST,还得配好 CUDA 和 cuDNN。
- 聚类算法参数:Leiden 算法的分辨率稍微调一下,聚类结果天差地别。
Docker 的出现,恰好解决了这个问题。你把整套环境——操作系统、Python、依赖库、代码、配置文件——全部打包成一个镜像。别人拉下来就能跑,结果完全可复现。
我个人的经验是,在发表论文或者开源代码时,如果没提供 Docker 镜像,审稿人或同行基本没法直接验证你的结果。提供一个 Dockerfile,比写十页“环境配置说明”都管用。
1.4 课程目标与前置知识
这门课,我会带着你从最原始的数据开始,一步一步搭建 Docker 环境,处理 Visium 的数据,用几种主流方法做聚类,最后把结果可视化出来。
你需要具备以下基础:
- Linux 命令行基本操作:
cd、ls、vim这些总得顺手。 - Python 基础:至少能看懂
pandas和numpy的用法。 - Docker 入门:知道
docker pull、docker run是什么意思。如果你还不太熟,没关系,我会在第 2 章带大家快速回顾。
嗯,该说的背景都说完了。我们这就进入正题,先从 Docker 环境说起。