在空间点位图上,有一块靠近血管的组织,软件把半边颜色涂给内皮,另半边涂给周细胞。这个点位里是不是正好有两枚细胞?可先看两个文件。第一个是组织图,给出这个空间单元能覆盖几个核,第二个是反卷积结果,给出哪些参考类型的表达谱能解释捕获到的计数。两者测量的量不同。下面用一个两基因的小例子说明权重为什么随参考而变,再区分 RCTD 不同运行模式和结果中的零。
先看参考能否区分研究中的两种细胞
RCTD 从有标签的单细胞参考中估计不同类型的基因表达特征,再拟合空间点位的计数。它会估计平台间系统性表达差异,这使单细胞与空间技术产生的数据有机会放在同一个模型里。参考样本仍要覆盖空间样本中可能存在的主要细胞类型和状态。若组织里有明显的浆细胞区域,但参考中所有浆细胞都被省略,它们释放的免疫球蛋白计数并不会凭空消失。可选类型只能在现有范围内竞争这些读数,某些点位也可能被判为不确定。检查参考时,应看每个类型在多个供体中的标记组合,以及该组合在空间平台中实际测到了多少个基因。RCTD 原始方法及对平台效应的建模
做一个教学实验。让甲类在两个基因上的平均表达比例为八比二,让乙类为二比八。某点位一共观察到一百个分子,两个基因各占五十。按这个简化的线性混合,两类各占一半时正好给出五十比五十。若参考里再加入丙类,它本身就是五比五,同一个观察量既能由一半甲加一半乙产生,也能由单一丙产生。即使将一百个分子测成一万个,只要比例完全一样,仍不能仅靠这两个基因区分两种解释。实际模型使用许多基因并考虑计数噪声,这里刻意减少维度,是为了展示缺少可区分标记时的根本困难。
| 给模型的参考 | 与观察相容的一种解释 | 怎样增加可区分证据 |
|---|---|---|
| 仅有甲和乙,二者表达方向相反 | 甲乙混合 | 看更多非共线的独立标记 |
| 加入两基因均衡表达的丙 | 单一丙也能解释 | 引入丙特有且空间平台测得的标记 |
| 两个候选亚型只在参考的单个供体中可分 | 权重可能在亚型间迁移 | 按供体检查重复性,再比较合并亚型的结果 |

按空间单元选择模式,再读受限结果
在原作者实现中,双类型模式会比较单一类型与两个类型组合的解释,并为判断的确定性提供分类。全模式允许更多参考类型共同解释点位。两种模式回答的问题不同。若希望利用限制来分辨小珠子上最可信的一两种来源,双类型模式有解释便利。若捕获单元横跨几层不同组织,一开始就强制每个位置最多只有两类,很可能将真实存在的其他来源压在一两种近似类型上。选择时可以在同一幅组织图上随机取几个内部点、几个交界点,记录点的物理直径、核数范围和预期共处的谱系。原作者教程中的双类型与全模式
一个常见误读来自“双”的含义。软件考虑两种类型,不等于视野里只存在两个细胞,同一类型的多枚细胞也可能只留下一个类型信号。两个不同类型如果 RNA 含量不等,其分子贡献和显微镜下的细胞数量也不会简单成比例。把某一权重直接乘以组织图估计的细胞数并四舍五入,往往会把模型不确定性隐藏在一个看似精确的整数里。最好分别保留分子数据的估计以及相邻图像的核计数,再讨论两类观测能否相互支持。
读矩阵前确认自己用的是哪个实现
同一个包名在原作者 GitHub 版和 Bioconductor 适配版中有不同的对象接口。原作者版可见带点的函数名和对象槽,教程会按点位读取结果。Bioconductor 适配版的空间结果使用空间实验对象,权重 assay 中细胞类型在行、点位在列。若复制另一版教程的求和方向,一下就能得到一串数字,偏偏那些数字已经没有“一个点位的权重合计”这个含义。第一步应该打印对象类别、权重矩阵行列名,再同时找一个已知的类型名和一枚已知条形码。Bioconductor 适配版教程及矩阵方向
# Bioconductor 适配版,results 是 runRctd 的输出
w <- SummarizedExperiment::assay(results, "weights")
cl <- SummarizedExperiment::colData(results)$spot_class
stopifnot(ncol(w) == length(cl))
head(data.frame(spot = colnames(w), class = cl, weight_sum = colSums(w)))
在适配版的双类型输出里,受限权重、包含不确定候选的权重和不限制类型数的权重可以是不同的矩阵。画饼图前应在图注写清选用哪一个。保留点位通常可核对其归一化权重之和,拒绝点则另列。某类权重恰好为零,可能是受限模式保留了别的候选,也可能是整个点位被拒绝。缺失于输出的点位还可能是在建模前就因计数过滤退出。把空间表达的原始条形码清单外连接进来,一次列出入模、成功返回、被拒绝三类标志,可以避免把整张切片的白色区域都写成“没有这一类细胞”。
实跑经验|同一个点的第三类权重,怎样从零变成约一成七
我们分别安装并运行了两个实现。先在 R 4.5.2 使用 Bioconductor 版 spacexr 1.2.0 的配套模拟数据,七十五枚参考细胞、三种类型、七百五十个基因,对十二个空间点做双类型拟合。输出六个单类型、六个确定双类型,十二个点的受限权重都加到一。点位 mx23 的受限权重依次为零、0.469、0.531,同一输出对象里的全类型权重则约为 0.167、0.393、0.413。前一张图上第一类完全没有颜色,只能说明它未被双类型结果选中。全类型矩阵中各点原始列和落在 0.929 至 1.046 之间,若要画相对构成,应另存逐列归一化的副本,并保留原值。适配版包及随包示例
再用原作者版 2.2.1 运行随包的参考与空间小珠子示例。空间输入共有一百枚小珠子,我们先按示例矩阵列和至少三百筛选,留下六枚,程序返回两个单类型、一个确定双类型和三个不确定双类型。这里的双类型权重矩阵为六行两列,每行对应一枚小珠子,列要与分类表里的第一、第二候选配合读取。全类型矩阵为六行十九列,行名与点位可匹配。原作者示例的参考矩阵仅含三百八十四个基因,四百七十五枚参考细胞在元数据中记录的总数与这个矩阵列和均不相等,加载时会明确提示。遇到这种提示,应先查总数和当前矩阵各自统计了哪些基因,然后才决定是否重算。两次运行用了各自的配套数据,因此这几组数字适合复核接口和分母,不能拿分类个数给两个实现排优劣。
把值得回看的边界点交给实验同事
从受限结果挑三类位置。先取组织内部且同一类型在多个标记上持续占优的点作为阳性对照,再取正好落在两种组织边界的混合点,最后取点位计数不低但分类犹疑的点。给三个位置配上相同尺度的组织底图、原始标记计数和两种模式下的候选权重。若边界附近始终出现内皮和周细胞组合,内部点又各自聚集在形态合理的位置,这个模式值得更高分辨率验证。若少数高表达基因主导了几乎全部变化,而且移除一个参考供体后第二类型就大面积更换,应把图注改成该类来源尚不容易区分。
真正能帮同行复核的是点位条形码、所用模式、参考类型字典和一小组可查看的边界位置。多切片项目需要用同一组参考反复比较不同模式时,可了解云生信的生物信息分析服务器。
