1. 课程简介与学习目标:课程背景、目标受众、前置知识、学习路径概览
1.1 为什么你需要这门课?
Visium 空间转录组技术这几年火得不行。它能让你在组织切片上同时看到基因表达和空间位置。但现实往往比宣传片骨感——你手头可能有十几张甚至几十张 Visium 切片,每张来自不同患者、不同时间点、不同组织区域。直接把它们拼在一起分析?你会发现批次效应能把真正的生物学信号淹得渣都不剩。
我自己就踩过这个坑。2021 年做肝癌项目时,我拿了 6 张 Visium 切片,兴冲冲地跑完 Seurat 整合,结果 UMAP 图上每张切片各自成一团,根本看不出肿瘤 vs 正常的分界。后来才发现,批次效应没处理好,所有结论都没法发表。所以我专门梳理了这套 多批次 Visium 联合分析 的完整案例流程,从数据预处理到批次校正,再到跨样本比较,给你一条清晰的实操路径。
1.2 这门课能帮你解决什么问题?
- 批次效应检测:怎么判断你的数据有没有严重的批次效应?有哪些量化指标?
- 主流校正方法对比:Harmony、Seurat CCA、MNN 矫正、Scanorama……哪个适合 Visium 数据?我踩过的坑都告诉你。
- 空间一致性分析:校正后怎么验证空间结构有没有被破坏?
- 跨样本比较的坑:不同解剖区域、不同切片厚度、不同测序深度,怎么归一化?
说白了,学完这门课,你拿到一堆 Visium 切片数据,不会再手足无措。你能独立完成从读取、质控、校正到可视化的全流程。
1.3 目标受众:这门课为谁准备?
唔,简单说就是三类人:
| 角色 | 典型痛点 | 期望收获 |
|---|---|---|
| 生物信息学新手 | 只会跑标准流程,不懂批次效应原理 | 理解原理并动手实战 |
| 空间组学研究人员 | 手头有多批次数据但不知如何整合 | 可直接复用的案例代码 |
| 生信工程师/讲师 | 需要系统教学材料 | 完整的知识框架+可扩展的脚本 |
我觉得,只要你能用 Python 跑个简单的 pandas 脚本,懂得空间转录组的基本概念(spot、gene expression matrix),就能跟上。不需要事先精通任何批次校正算法。
1.4 前置知识:你需要带什么来上课?
- Python 基础:会安装包、会读写 CSV/TSV、会画简单的 matplotlib 图。
- 空间转录组常识:知道 Visium 每个 spot 对应 ~1–10 个细胞,数据格式是 矩阵 × 空间坐标。
- 基础统计学:理解什么是 PCA、什么是聚类、什么是 p-value(不用深究,能用就行)。
- 计算资源:建议内存 ≥ 16GB,因为 Visium 数据动辄几万甚至十几万 spots。
1.5 学习路径概览:这门课怎么走?
整个课程分成 5 个模块、30 章。这是我自己摸索出来的最佳学习顺序——先搭地基,再解决核心问题,最后上生产级流程。
我为什么这样安排? 因为很多教程上来就讲 Harmony 参数调优,却不说为什么你的数据需要校正。先让你用实际数据看到批次效应的恐怖(模块1),再教你如何清洗数据(模块2),然后才是校正方法的选择(模块3)。模块4的验证环节特别关键——我曾见过校正后空间结构完全变形的案例,所以必须要有定量验证指标。最后模块5教你如何把整个过程脚本化、自动化,这样你下次接到新项目直接复用。
1.6 每一章你会得到什么?
每章都按照「固定模板」组织,你打开就能直接用:
- 理论要点:3~5分钟可以读完的核心概念。
- 代码实战:可直接运行的 Python 脚本(主要基于 Scanpy + Squidpy)。
- 避坑指南:我踩过的坑,以及我发现的社区常见错误。
- 输出结果截图/表格:让你看到每一步的中间结果长什么样。
- 本章自测:2~3个问题帮你检验有没有理解。
举个例子:在第14章(Harmony 校正实战)中,你会看到这样的代码片段:
import harmonypy
import scanpy as sc
adata_list = [adata_batch1, adata_batch2, adata_batch3]
adata_concat = sc.concat(adata_list, label="batch")
sc.pp.pca(adata_concat)
ho = harmonypy.run_harmony(
adata_concat.obsm["X_pca"],
adata_concat.obs,
vars_use=["batch"],
random_state=42
)
adata_concat.obsm["X_harmony"] = ho.Z_corr.T
嗯,就这么简单。但如果你不提前理解数据格式和参数含义,很容易跑出奇怪的结果。所以每章的前置概念部分我会把关键参数掰开揉碎了讲。
1.7 关于代码运行环境
我建议你用 conda 创建专门的环境:
conda create -n visium_joint python=3.9
conda activate visium_joint
pip install scanpy squidpy harmonypy scipy matplotlib numpy pandas
所有案例都在这个环境下测试过。如果你遇到版本冲突,我建议优先保证 scanpy ≥ 1.9.0,squidpy ≥ 1.2.0。
注意:有同学反映 Windows 下安装 harmonypy 可能会报 C++ 编译错误。我在 macOS / Linux 下都没问题。如果你用 Windows,建议启用 WSL2 或改用 Docker 环境。想省事的可以直接用 Google Colab(我写过适配脚本,在第0章有说明)。
1.8 结语
好了,这就是第一章的全貌。你看到了课程的来龙去脉、目标受众和前置要求,也看到了整个30章的路径图。我觉得最核心的一句话是:“不要等到数据堆成山才想起来做批次校正”——这是我从第一次惨败中记住的教训。从下一章开始,我们就正式动手处理真实数据了。
哦对了,如果你有任何问题,先别急着搜社区。前几章的基础概念我会尽量覆盖掉最常见的坑。