一张组织切片上,某类细胞的丰度从中心向边缘均匀降低。它看起来合乎直觉,可是平滑恰好也是空间模型主动利用的性质。我们怎样判断这条带状结构主要由表达支持,还是周围点位一起把它拉成了连续区域?一种可操作的办法是保存每个条形码对应的表达,固定参考与模型设置,只打乱坐标,再比较丰度和边界。下面先说明这个对照究竟改了什么,再看为什么在一份有强标记的模拟组织中,改坐标也几乎不动结果。
表达相近与地理相近是两份证据
CARD 利用有标签的单细胞参考,估计空间点位中的细胞类型组成。它允许邻近位置的组成彼此相关。对于连续分布的组织,只靠单点稀疏计数难以稳定确定的成分,有机会从周围位置得到支持。条件是模型认为相互接近的坐标在组织中也确实可以共享信息。一条很窄的空腔两侧在平面上距离很近,组织上却可能分属两个方向相反的上皮表面。若把切片上的两个独立组织块拼成一张图,空白被裁掉后本来离得很远的区域也可能变成邻近。CARD 原论文关于空间相关性与未测位置推断的说明
从最容易解释的例子想起。一个点的邻居中九个属于上皮,一个属于基质。该点位于厚实的上皮内部时,邻里证据通常与形态吻合。若它位于上皮和基质之间一条只有一个点宽的真实分界线上,同样的九比一可能掩盖这条窄带。接下来应该找局部独立证据,例如多种基质标记能否同时检出、在连续切片上能否看到相应走向。只在已经画出的平滑丰度图上来回缩放,并不会增加鉴别能力。
| 要区分的问题 | 保持一致的输入 | 改变或另查的证据 |
|---|---|---|
| 表达强到足以单独确定主导类型吗 | 同一参考、计数和条形码 | 随机重配坐标,再核主导标签和连续权重 |
| 一条窄边界是否受附近点牵引 | 原始组织图及捕获范围 | 分别抽取组织内部、边界和空腔对岸的点 |
| 新网格上的数是怎样得到的 | 原始测量位置和已拟合模型 | 标记插值位置,用真实遮盖点作验证 |

给原始条形码换坐标,别把矩阵和坐标一起洗牌
很多对照实验失败在一个看不见的地方。如果把空间表达矩阵的列与坐标表的行用同一个排列同时挪动,再连同条形码一起保存,只是改变了文件的行列顺序,每个点和自己的组织位置仍然绑在一起。正确的操作是固定表达和条形码,重新给这些条形码分配一组打乱的坐标。还要防止对象构造函数按行名重排时,又把坐标恢复成原配对。实践中可以抽三枚相距较远的条形码,在输入原版和对照版中打印它们的计数总和、横纵坐标和邻近条形码。计数值应不变,局部邻居应改变。
# 行名是唯一点位条形码,xy 是原始二维坐标矩阵
set.seed(73)
shuffled_xy <- xy[sample(nrow(xy)), , drop = FALSE]
rownames(shuffled_xy) <- rownames(xy)
stopifnot(identical(rownames(shuffled_xy), rownames(xy)))
head(cbind(xy, shuffled_xy))
如果项目有多张切片,应在每张切片内部考虑这个对照,并按原实验设计决定哪些位置可以互换。全片打乱能破坏大尺度组织分区,适合探查总体空间依赖。若问题是同一组织区内部是否仍有局部分布,则可以只在同类组织区域内打乱。两种做法保留的结构不同,应分别给结果起清楚的名称。把所有病人、切片和物理单位混在一起随机,随后得出的变化几乎无法归因。这个对照用于诊断结果对坐标的敏感程度,本身不会提供模型正确与否的病理真值。
实跑经验|这次坐标换了,四十八个主导标签一个也没有换
我们在 R 4.5.2 安装 Bioconductor 版 CARDspa 1.2.1,使用一百八十个模拟基因和三种类型的单细胞参考,每类四十枚细胞。构造八列六行的规则切片,左边放甲、中间放丙、右边放乙,各点都有很明显的类型标记。两次运行调用同一个空间反卷积函数,固定模型随机种子,只在第二次给条形码重新分派坐标。要复现这版接口,用空间和单细胞对象传入已有数据时,也要按该版文档显式给可替代的原始矩阵参数传空值。Bioconductor 版 CARDspa 的输入与运行示例
在正确位置上,四十八个点的最大比例都落在预设类型。交换位置后仍是四十八个。连续权重确有改变,全部点位和类型的平均绝对差约为 0.000047,单个分量的最大绝对差约为 0.000169。变化最大的点位 s41 在原位置对甲的估计约 0.976760,换坐标后为 0.976591。只比较颜色所代表的最大类别会得到“完全相同”的表象,逐格比较权重则能看到小幅变化。此例特意构造强标记,说明这组数据的主导类型对这次坐标打乱相当稳定。把这个小数作为真实弱信号组织的阈值没有依据。
若得到小差异,还可以在原设计上做第二个对照。将点位的计数按相同概率随机抽稀,原坐标保持不动,重复拟合,再比较不同测序深度下权重对坐标打乱的敏感性。每次都要记录还通过过滤的条形码,并在共有位置上计算差值。某个位置若因抽稀退出,就应另列为未进入分析,不能补零后说它的细胞类型丰度下降。通过这样的分解,才知道结果变化由表达证据变稀、邻里信息改变还是入模集合改变驱动。
如果目标是插值,必须把验证点真正藏起来
用 CARD 在原有点位之间预测更多位置,可以获得更细的展示网格,但网格中新增的位置没有直接测量的分子。为了评价插值,可预先遮盖一部分真实点,建模时移除这些点的空间表达,仅保留其坐标用于后续预测,最后把相应实测数据取回来比较。随机零散遮盖考察的是周围有已知邻居时的局部补全,留出一整块组织考察的是跨较大缺口时的外推。两者的误差应分别报告。数据若要支持一个很窄的侵袭边缘,应优先保留整段边界作为独立检验,并请同事对照未参与模型的形态图。
给实验同事的结果里,可以在同一幅组织图上用不同符号标明实测点和预测点,另外列出原图及坐标打乱后变化最大的几个条形码。若要跨切片反复核对这些边界、比较不同参考的影响,可了解云生信的生物信息分析服务器。
