1. 为什么你的空间转录组数据需要“合体”?
大家好,我是老张,在单细胞和空间转录组这块折腾了快十年了。今天咱们不聊虚的,直接上手一个实战问题:当你手头有好几个空间转录组样本时,该怎么把它们揉在一起分析?这可不是简单的“1+1=2”,处理不好,你看到的生物学信号可能全是技术噪音。
想象一下这个场景:你手上有四张来自同一病人不同部位的乳腺癌组织切片,或者是从不同病人身上取的同类组织,都用10x Genomics做了空间转录组测序。你兴冲冲地分别对每个样本做了聚类,想看看细胞类型分布。结果发现,同一个理论上应该出现的细胞亚群,在样本A里聚成了第3群,在样本B里却跑到了第5群。这还没完,当你比较不同样本间“看似相同”的这群细胞时,它们的基因表达谱却对不上号。你挠头了:这到底是真实的生物学差异,还是实验批次、测序深度不同带来的假象?
这就是批次效应(Batch Effect),它在高通量测序里,尤其是多个样本整合时,是个超级大麻烦。它就像给每个样本的数据都戴上了一副有色的、度数还不一样的眼镜。不把这副眼镜摘掉,你永远看不清数据本来的样子。空间转录组数据本身噪声就大,空间位置信息又增加了复杂性,直接合并多个样本只会让批次效应雪上加霜,导致后续的聚类、差异分析结果完全不可信。
所以,整合分析的核心目的,就是“去伪存真”。通过算法把那些由技术原因(比如不同实验日期、不同操作员、不同玻片)引入的系统性偏差给消除掉,让数据回归到反映真实生物学状态的水平。只有这样,我们才能:
- 进行公平的比较:比如,真正比较癌症组织与癌旁组织的细胞组成差异。
- 发现稀有的、跨样本一致的细胞亚群:有些重要但稀少的细胞类型,在单个样本里信号太弱,整合多个样本能增强统计效力,把它们“捞”出来。
- 构建更普适的细胞图谱:整合多个样本的数据,能让我们建立一个更稳健、更全面的组织细胞类型参考图谱。
stlearn这个工具,就提供了一套挺顺手的流程,帮我们搞定从数据合并、去批次到聚类映射的全过程。它底层巧妙借用了单细胞分析中久经考验的Scanpy生态,又在空间可视化上做了自己的封装,用起来感觉就像有个经验丰富的老手在旁边搭了把手。
2. 实战前夜:理解stlearn的整合“三步走”策略
在敲代码之前,咱们得先摸清stlearn干这活儿的整体思路。它不是变魔术,而是一套逻辑清晰的组合拳。理解了这套拳法,后面调参数、解bug才能心里有数。
它的核心流程可以概括为 “先合后分,再物归原主”。
第一步:物理合并,但保留“身份证”。 我们手头有多个独立的AnnData对象(比如叫 sample1, sample2)。stlearn(其实是调用Scanpy)会先把它们用 concatenate 函数拼成一个大的AnnData对象,我们叫它 adata_concat。这一步非常关键的是,合并时会自动创建一个叫 batch 的列在 .obs 属性里,用来记录每个细胞(spot)原来属于哪个样本。这就是后续去批次效应的“钥匙”。你可以把它想象成把来自不同学校的学生集中到一个大操场,但每个人胸前都别着自己学校的校徽。
第二步:核心战场——用Harmony消除批次效应。 这是整个流程的灵魂。Harmony算法是个挺聪明的家伙,它不粗暴地强行把所有数据拉平,而是假设:真正的生物学变异(比如细胞类型)是跨批次共享的,而批次效应是每个批次特有的。它通过迭代的方式,学习一个“校正矩阵”,把数据在主成分(PCA)空间里进行旋转和调整,使得相同细胞类型的点聚在一起,而不同批次带来的偏移被消除。在代码里,我们就是把PCA的结果和 batch 信息喂给Harmony,它吐出一套校正后的坐标。
第三步:在“纯净”的数据上聚类,再把标签还回去。 在Harmony校正后的低维空


3628

被折叠的 条评论
为什么被折叠?



