进阶:批次、轨迹、通讯与预后
细胞注释完成后,问题开始分岔:多个样本怎么放在一起?细胞在朝哪里变化?细胞之间在说什么?哪些是肿瘤细胞?这些发现和患者的预后有没有关系?这一章用六个小节讲每个方向的思路,以及最常见的那个坑。
多个样本:批次整合
不同日期、不同解离流程、不同芯片或化学版本处理的样本,即使细胞类型相同,表达也会有系统性差异,同一种细胞在 UMAP 上按样本分成几团,这就是批次效应。Harmony、Seurat CCA/RPCA、scVI 等方法在低维空间里把各样本的同类细胞对齐。
最常见的坑:整合会不会抹掉生物学差异? 会,如果条件和批次混在一起。比如所有治疗组样本都在第二批处理,算法无法区分“批次”和“治疗”,可能把真实的治疗效应一并对齐掉。另外,整合修改的是嵌入(如 Harmony 校正的是 PC),不是计数;差异表达仍用原始计数,并以样本为单位(pseudobulk)。最好的批次校正发生在实验设计阶段:让每一批都包含各组样本。
动态过程:轨迹与 RNA 速率
轨迹与拟时序
如果样本里的细胞正处在一个连续过程的不同阶段(比如造血分化),可以按相似性把它们排成一条路径,每个细胞在路径上的位置就是拟时序。Monocle 3、Slingshot 等工具做的都是这件事。
最常见的坑:起点要靠生物学知识定。 算法只知道细胞之间的相似性,不知道哪一端是“早”,需要你用祖细胞标志基因、取样时间点或 RNA 速率指定起点。另外,算法总能在数据里拟合出一条路径,哪怕数据里没有连续过程。pbmc3k 主要是成熟的血细胞,在它们之间画轨迹并不代表分化。
RNA 速率
RNA 速率比较每个基因的未剪接和已剪接 reads:未剪接相对多,说明基因正在开启;相对少,说明正在关闭。由此推断每个细胞接下来的方向。
最常见的坑:它依赖 spliced/unspliced 计数,而这要额外生成。 标准的 Cell Ranger 矩阵不区分两者,需要从 BAM 或 FASTQ 用 velocyto、STARsolo 或 alevin-fry 另行计数。3′ 试剂盒主要捕获成熟 mRNA,未剪接 reads 多来自内含子中富含 A 区段的内部引发(第 3 章)。模型假设(如剪接和降解速率恒定)经常不成立,二维图上的箭头对投影方式很敏感,不能单独作为方向的证据。
细胞之间与细胞之内:通讯与 CNV
细胞通讯
CellChat、CellPhoneDB、LIANA 等工具查询已知的配体–受体对数据库,给“发送方表达配体、接收方表达受体”的组合打分。
最常见的坑:结果是候选,不是证据。 RNA 不等于蛋白;解离已经破坏了细胞的空间位置,数据不知道两个细胞是否真的相邻;结果还依赖所用的数据库。它适合产生假设,再用空间转录组、蛋白或功能实验验证。
恶性细胞与 CNV 推断
肿瘤细胞常有大片段的拷贝数变化。把基因按染色体位置排列,对表达做滑动平均,再与正常细胞比较,就能看到扩增和缺失,从而区分恶性细胞(inferCNV、CopyKAT、Numbat 等)。这就是 CNV 推断。
最常见的坑:需要正常参照细胞。 参照最好是同一位患者的免疫或基质细胞;没有参照、参照选错(如取自另一位患者或另一种组织),结果就会失真。CopyKAT 这类方法会尝试自动找出二倍体细胞,但前提仍是样本里有足够的正常细胞。它只能看到染色体臂级别的大片段事件;一组共调控的基因也可能被误读成拷贝数变化。
回到患者:细胞特征与预后
想知道某种细胞的比例或某个基因签名与生存的关系,先把每位患者的细胞汇总成一个数值,例如这类细胞占全部细胞的比例,或签名得分的平均值。
最常见的坑:生存分析必须先聚合到每位患者一行。 细胞永远不是生存检验的单位,否则几千个细胞会把同一位患者的随访重复几千次。分组阈值(如中位数)要在分析集确定之后再算;连续变量优先报告每个标准差的 Cox HR,高低分组的 KM 曲线只作展示;写明患者数和事件数。单细胞队列的患者数通常有限,结论更适合作为假设,在更大的 bulk 队列中验证。
常见误区
- 把这些方法的输出当成结论。 整合、轨迹、速率、通讯和 CNV 推断都依赖假设,结果都需要独立验证。
- 忘记统计单位。 跨条件、跨患者的比较,单位是样本或患者,不是细胞。
- 在不合适的数据上硬跑。 没有连续过程的数据不适合做轨迹,没有正常细胞的样本不适合做 CNV 推断。