课程导论:自监督学习与空间转录组概述
这门课我要带大家走一条不太寻常的路——把自监督学习塞进空间转录组分析里。你可能会问:“为啥要自监督?传统的监督学习不香吗?”嗯,这个问题我当年也问过自己。直到有一次我接手一个脑组织切片项目,几十万条空间spot数据,结果只有不到5%的标注能直接用……那感觉就像拿着菜谱进了没有食材的厨房。所以这节课,我们先聊聊背景、痛点,以及我们到底能用自监督解决什么实际问题。
空间转录组:从组织切片到基因表达地图
空间转录组技术,说白了就是给每个组织切片上的“像素点”附加上基因表达量。传统单细胞RNA-seq把细胞打散,空间位置信息就丢了;空间转录组把位置和表达同时保留下来——你可以想象成一张“基因表达热力图”叠在组织病理图上。
目前主流平台包括10x Visium、Slide-seq、MERFISH等。它们输出的数据长这样:每个点(spot)是一个微小组织区域(直径10-100 µm不等),每个点有数千个基因的表达计数。再加上空间坐标(x, y),有时还有HE染色图像。
关键数据维度
- 样本:一张组织切片 -> 数千到数万个spots
- 特征:每个spot -> 2万+基因的表达量(稀疏)
- 空间邻域:每个spot有6-8个邻居(网格或不规则分布)
- 标注:通常只有少量病理区域或细胞类型标签
我个人的习惯是,拿到数据先做三件事:检查空白区域(比如血管腔),看邻居表达相似度,再画一张空间分布图。你很快就能发现——空间转录组的难点不在“基因多”,而在“位置编码”。你想想看,同样的基因表达模式,放在不同的组织结构里,意义完全不同。这就是为什么我们需要表示学习去自动提取空间上下文特征。
自监督学习:无标签世界里的生存法则
自监督学习的核心思路很简单:从数据本身构造“伪任务”,通过解决伪任务来学到有用的表示。你在做图像任务时用过SimCLR或MAE吧?对,就是那个套路——不需要人工标注,自己跟自己玩。
在空间转录组场景下,自监督的优势就显出来了。标注数据有多贵?我记得有一年我们标注一个前列腺癌组织切片,请了两名病理专家,花了三周才拿到几百个spot的细胞类型标签。而自监督可以直接用数万个未标注的spot训练,学到的表示再迁移到下游任务(聚类、空间域识别、预测临床指标等)。
常见的自监督范式包括:
- 对比学习:拉近空间近邻spot的表示,推远非邻居。我在项目中踩过坑——如果不加空间距离权重,学出来的表示会把整个组织压成均匀一团。
- 掩码重建:遮住部分基因表达,让模型根据邻居信息恢复。这招对捕获空间相关性特别有效。
- 聚类一致性:对同一个spot做两次不同增广,让聚类结果保持一致。说白了就是让模型“对噪声不敏感”。
⚠️ 别踩坑
我曾经尝试直接套用图像领域的MoCo框架到空间转录组数据,结果收敛极慢。为什么?因为spot之间没有像素级的平滑性——邻居表达可能突变(比如肿瘤边界)。所以构建正负样本对的时候,一定要引入“自适应邻域半径”或者“组织结构先验”。这个坑后面我会专门讲。
两者结合:为什么我们需要自监督表示学习?
空间转录组分析的核心任务包括:空间区域识别(比如划分肿瘤区、基质区)、空间变量基因检测、细胞类型去卷积、组织结构重建。这些任务如果都依赖监督学习,你得给每个数据集单独标一遍——不现实。自监督表示学习的价值在于:它能在无标签条件下学到通用的空间-表达联合表示,下游只需要少量标签甚至零样本就能适配。
下面这张图展示了我认为最实用的课程知识体系:从原始数据出发,经过自监督预训练,得到每个spot的低维表示,再流向不同下游任务。
💡 我的体会
在这个框架里,最容易被低估的是“预处理”这一步。原始基因表达矩阵是高度稀疏且噪音大的。我建议至少在预训练之前做两件事:log归一化和选择高变基因(2000-3000个)。否则自监督模型会花大量容量去学习那些几乎不表达的基因——得不偿失。
课程架构与目标
这门课一共三十章,我按“基础-方法-实战”三层来组织。第一章就是现在这一章——让你知道我们在打什么仗。后面我会带你:
- 先啃空间转录组的数据格式与预处理规范
- 再讲自监督学习的基本原理(对比学习、掩码模型、聚类一致性)
- 接着聚焦空间转录组特有的增广策略和邻域构建
- 然后实战:用PyTorch搭建一个完整的自监督预训练+下游微调 pipeline
- 最后用两个真实病例数据集做完整演示——包括代码调试和结果可视化
课程目标很明确:学完以后,你拿到一个没标注的空间转录组数据集,能自己搭个自监督框架,训出可用的表示,并且能迁移到至少三个下游任务上。
为了让你更直观地理解传统监督学习与自监督学习的差异,我整理了一张对比表:
| 方面 | 传统监督学习 | 自监督学习 |
|---|---|---|
| 标注需求 | 每个spot都需要标签(昂贵) | 零标签,完全自驱动 |
| 泛化能力 | 强过拟合到特定组织/标注体系 | 学到的表示可迁移到同类型组织 |
| 对空间结构利用 | 需要手工定义空间特征 | 自动从邻域关系学习空间编码 |
| 训练数据量 | 通常需要上万标注spots | 十万级无标注spots也能训 |
| 模型输出 | 类别概率 | 低维向量表示(可复用) |
| 典型应用 | 已知细胞类型的分类 | 未知区域发现、跨平台对齐 |
看完这张表,你大概能理解为什么我这些年越来越倾向于自监督方案了吧?不是因为它花哨,而是因为它真的省钱省力——尤其对于空间转录组这种“数据量够大、标注极少”的场景。
小心得
我第一次在客户项目里用自监督表示学习替换传统PCA,下游聚类结果从ARI 0.23直接跳到0.51。他不是病理专家,只是看到一个更干净的组织空间分区。从那时起,我就觉得这条路值得系统性推广。这门课就是把我在生产环境里踩过的坑、总结的经验,一五一十摊给你看。
好,导论部分就到这里。接下来几章,我们会从数据开始——毕竟没有数据,再好的模型也是空中楼阁。你可以在本地准备一个10x Visium的示例数据集(比如人类乳腺癌),后面我们会用它做第一个完整的自监督预训练实战。