1. 空间转录组学简介:技术原理、应用场景、数据格式与挑战

各位同学,今天咱们聊聊空间转录组学。我最早接触这个领域时,心里想的是:这不就是把RNA测序和显微镜结合起来吗?后来真正上手才发现,事情远没那么简单。

空间转录组学,说白了就是在保留组织原始空间位置信息的情况下,测量每一个位置的基因表达情况。传统RNA-seq把组织磨碎了,测的是“一锅粥”里的平均表达。空间转录组学不同,它告诉你的不只是哪个基因在表达,它还告诉你:这个基因在组织的哪个区域表达,旁边又是哪些细胞。

一句话核心:空间转录组学 = 基因表达 + 空间坐标

1.1 技术原理:从想法到数据

目前主流的技术路线有好几条。我个人习惯把它们分成两大类:一类是基于原位捕获的,另一类是基于原位成像的。

原位捕获技术,代表是10x Visium。它在一块载玻片上铺满带有空间条形码的捕获探针。你把组织切片贴上去,透化,让mRNA释放出来,被最近的探针捕获。测序之后,每个转录本都能通过条形码找到它的物理位置。说白了,就像给每间房子都编了号,信送到哪一目了然。

原位成像技术,代表是MERFISH、seqFISH+。它用荧光探针逐个标记目标RNA,通过多次成像来实现单分子级别的空间定位。这种方法分辨率极高,能达到单细胞甚至亚细胞水平,但通量相对有限。

我在项目中处理过不少10x Visium的数据,坦白讲,它最大的优势是操作相对标准化,商业试剂盒成熟,样本量可以做很大。但是它也有「坑」—— spot的大小是55μm,一个点里可能包含几个到几十个细胞。你想想,这算什么单细胞分析?

下面这张表,我整理了主流技术的关键参数对比,方便你快速有个概念。

技术平台 分辨率 基因通量 是否单细胞 成本
10x Visium 55μm (spot) 全长转录组 否 (多细胞/spot) 较高
Slide-seq V2 10μm (bead) 全长转录组 接近单细胞 中等
MERFISH ~100nm ~100-1000基因 是 高
seqFISH+ ~100nm ~10000基因 是 高
Stereo-seq 500nm 全长转录组 是 (亚细胞) 中等

1.2 应用场景:它在解决什么问题

有了空间数据,我们能做什么?我个人觉得,最有价值的应用集中在以下几个方向。

  • 肿瘤微环境解析:肿瘤不是一堆均质的癌细胞。里面有基质细胞、免疫细胞、血管。空间转录组告诉你,T细胞到底是在肿瘤核心浸润,还是被拦在边缘。我在分析一个肺癌样本时就发现,某些免疫检查点分子只在肿瘤-基质交界处高表达,这个信息用常规测序是看不出来的。

  • 组织发育图谱构建:从胚胎发育到器官成熟,细胞的位置关系决定了它们的命运。空间转录组可以重建「细胞在哪里、什么时候、表达什么基因」的时空序列。

  • 神经科学中的脑区定位:大脑的区域功能划分非常精细。空间转录组帮你精确地给每个细胞群打上「邮政编码」,然后分析不同脑区的分子特征差异。

  • 疾病标志物发现与药物靶点验证:当你知道某个基因只在病灶特定区域表达时,这个基因作为药物靶点的可行性就会高很多。

你想想看,这些分析如果全靠手动操作,重复性强,步骤繁琐,很容易出错。这就是我们需要Snakemake来构建自动化工作流的原因。

1.3 数据格式:你会面对什么

搞空间转录组,逃不开跟几种数据格式打交道。刚开始接触时,最让我头疼的就是不同平台输出格式的差异。

最常见的格式有这么几种:

  • HDF5 (.h5):10x Visium 的标准输出格式。一个文件里塞进了几乎所有东西:gene-by-spot的计数矩阵、基因信息、条形码序列、空间坐标。用Python的 h5py 或 R的 rhdf5 都可以读。
  • MEX (Market Exchange Format):其实就是三个文件:matrix.mtx、features.tsv、barcodes.tsv。稀疏矩阵格式,比较通用。
  • TIF / TIFF:组织切片的H&E染色图或免疫荧光图。用于配准和对齐。
  • JSON:有时用于保存空间坐标和图像参数,比如组织检测结果的轮廓坐标。
  • AnnData:目前在Python生态(尤其是Scanpy)里非常流行,是一个带注释的数据框。包含X(计数矩阵)、obs(细胞/spot元数据)、var(基因元数据)、obsm(细胞坐标等)和uns(非结构化数据)。

我这里用一个真实的文件结构示例,帮你看清10x Visium输出的样子。

sample_visium/
├── filtered_feature_bc_matrix.h5
├── spatial/
│   ├── tissue_positions_list.csv
│   ├── scalefactors_json.json
│   ├── tissue_hires_image.png
│   └── tissue_lowres_image.png
├── raw_feature_bc_matrix.h5
└── analysis/
    ├── clustering/
    └── differential_expression/

一个小技巧:拿到新数据后,我建议先用 h5ls 或者 Python 的 pandas 快速检查一下 tissue_positions_list.csv 里的 coordinates 列,看看组织切片的实际覆盖范围,做到心里有数。

1.4 核心挑战:为什么需要自动化

空间转录组数据虽然信息丰富,但处理起来满是坑。我踩过的,不少。

挑战一:数据量大,混合模态
一个样本可能就几十GB。处理流程包括图像配准、质量控制、降维聚类、差异表达、空间模式识别,还有下游的细胞通信分析。每一步可能调用不同的工具,环境依赖经常打架。

挑战二:步骤繁琐,容易遗漏
我记得有一次处理一批样本,忘了执行某个QC步骤,结果下游聚类效果奇差,返工花了一整天。手动操作,你很难保证每次都对。

挑战三:可重复性差
你三个月前跑的结果,现在能复现吗?我习惯了用Snakemake后,每次跑完自动生成报告和结果目录,任何时候回放都一模一样。

本章的核心知识体系,我画了一张图,帮你从宏观上理清脉络。

空间转录组:从技术到自动化工作流 原位捕获技术 10x Visium / Slide-seq 原位成像技术 MERFISH / seqFISH+ 数据输出格式 HDF5 / MEX / TIF 核心挑战:大体积 · 多步骤 · 混合模态 · 可重复性 Snakemake 自动化工作流 模块化可配置 一条命令跑全流程 并行与资源调度 集群、多核、GPU 全流程可重复 自动报告 + 版本控制

Warning:格式选择需谨慎

我曾经从某平台直接拿原始输出,没确认HDF5中的数据版本,结果下游代码全部崩了。不同版本的空间条形码编码方式可能不同,强烈建议先检查文档或运行平台的demo脚本。

好了,本章的核心就是这些。把基础概念理清楚,后续我们才能好好讨论怎么用Snakemake把这些步骤组织起来、自动化运行,并生成可复用的工作流。