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后,每次跑完自动生成报告和结果目录,任何时候回放都一模一样。
本章的核心知识体系,我画了一张图,帮你从宏观上理清脉络。
Warning:格式选择需谨慎
我曾经从某平台直接拿原始输出,没确认HDF5中的数据版本,结果下游代码全部崩了。不同版本的空间条形码编码方式可能不同,强烈建议先检查文档或运行平台的demo脚本。
好了,本章的核心就是这些。把基础概念理清楚,后续我们才能好好讨论怎么用Snakemake把这些步骤组织起来、自动化运行,并生成可复用的工作流。