同一块组织,按细胞统计时某个标记有几十个分子,改按细胞核统计就只剩几个。还有一种更隐蔽的情况,明明以为只分析一个焦面,算出的结果却把不同深度的分子投在同一张平面上。Giotto Suite 可以同时保存图像、分子点坐标和多个空间单位的多边形,这给了研究者很大的选择余地。第一步是明确统计中的一个观测究竟代表整细胞、一个核、一个焦面轮廓,还是一个固定大小的网格。
从一个真实的分子点向外追查
挑一个目标基因的分子,先记录其物理坐标、焦面或深度、实验视野和唯一标识。再取同一视野的细胞与核多边形,检查二者采用的单位和原点。外部图像分析软件有时输出像素位置,分子表可能用微米。若一侧用整张拼接图原点、另一侧用裁剪区域左上角,就算两个数都叫横纵坐标,也不在同一个参考框架里。先找三个不共线地标作配准,再谈分子归属。
Giotto 的空间单位可以并存。一个细胞有自己的边界和编号,与其关联的核有另一套边界和编号。同一个分子若既位于核里也位于整细胞里,在核矩阵和细胞矩阵中各计一次本来合理,因为它们是对同一对象的两种测量范围。若误把两张矩阵按细胞名对齐后直接相加,核内分子就会被重复计算。要计算胞质分子,需在同一细胞、相同焦面和明确的包含关系下求差,或者直接在对应几何区域重新统计。Giotto 空间聚合的官方示例
四个分子演示焦面和几何范围怎样改变结果
设有一份简化的三维成像数据。零号焦面上一枚细胞的范围用横纵坐标均在零到十之间的方形代替,核的范围是横纵坐标均在四到六之间。这个细胞形状是教学近似。表里四枚都是同一基因的分子,我们要问的是,哪些能计入“零号焦面上的这枚细胞”以及其中的核。
| 分子 | 横、纵坐标 | 焦面 | 对零号焦面这枚细胞的判断 |
|---|---|---|---|
| 甲 | 5、5 | 零 | 既在细胞也在核内 |
| 乙 | 8、5 | 零 | 在细胞内,在核外 |
| 丙 | 5、5 | 一 | 平面位置重合,但来自另一焦面 |
| 丁 | 12、5 | 零 | 落在该细胞轮廓以外 |

筛定零号面后,这枚细胞计两个,核计一个。如果把不同焦面的所有分子先投到平面,再套用零号面的轮廓,就会把丙也纳入,整细胞计三个,核计两个。这个差值直接来自筛选条件,不能用来说明基因发生核内富集。反过来,若本来的目标就是做全厚度投影,也可以做,但应使用与投影目的相匹配的分割、去重和编号方案,清楚告诉读者实际在数什么。仅凭平面横纵坐标恰好重合也不应把甲与丙当作同一次检测,因为分子标识和焦面不同。
用匹配的焦面计算点与多边形的重叠
官方示例可以显式选取一组多边形,同时限制特征点的深度字段,然后将重叠结果转成计数矩阵。下例假定对象的边界集名称就是零号焦面,特征点中有相应的深度列,当前特征类型为待统计的分子。实际项目要先查对象中存的名称和取值,不能因为示例叫零号就套在所有仪器输出上。深度可能是焦面编号,也可能是连续的物理坐标,需要据此选择匹配方式。重叠计算参数 · 重叠结果如何转成矩阵
library(Giotto)
g0 <- calculateOverlap(g, spatial_info = "z0",
feat_subset_column = "global_z",
feat_subset_ids = 0)
g0 <- overlapToMatrix(g0)
对整个切片汇总前,可以抽十个结构较清楚的细胞,手工绘制几个代表基因的分子和轮廓。至少能回答这些问题,点是否集中在预期区域,外部点是否被误计,有没有相邻边界交叠,以及同一条分子标识是否被多个同级对象重复领取。若多边形相互交叠,不能默认任一项目都会替你用同一种规则选择所属细胞。应查看重叠关系和最终矩阵,明确保留冲突、排除冲突还是按有依据的方式裁决,并报告受影响的分子数。
实跑经验|返回三行,并不等于三个分子都在细胞里
我们在 R 4.3.3 中安装了 Giotto Suite 的对象与重叠计算组件 GiottoClass 0.3.5,配合 terra 1.7.65 将表中的四枚分子建成点,分别与方形细胞和核的多边形相交。采用该版本面向空间向量的重叠函数,指定深度列为焦面编号并筛选零号后,细胞内返回有效编号的是甲和乙,核内只有甲。保留所有焦面时,丙同时进入了这枚细胞和核的二维范围,丁始终在界外。这样只改深度筛选就能重现前面的手算。本次所用 GiottoClass 版本的重叠计算实现
输出还暴露了一个很容易漏掉的差别。筛选零号面后,细胞结果对象有三行,核结果对象也有三行,因为这一调用保留了待判断的点。真正可以算作归属的,分别只有两个和一个,其余行的多边形标识缺失。如果直接用结果行数填进表达矩阵,就会把界外的丁也统计进去。拿真实样本时,先沿着一枚明确在内、一枚明确在外以及一枚不同深度的分子打印归属列再汇总。版本、几何对象类型和是否返回未命中行都可能影响读表方式,这三个对照比只检查总计更灵敏。
用守恒检查定位重复、遗漏和错误归并
在同一焦面选同一批分子,把它们按唯一标识分成没有落入任何细胞、落入恰好一个细胞、落入多个细胞三类。三类的数量之和应等于这批符合条件的唯一分子数。若某批一百枚分子中八十枚唯一归属、十五枚无归属、五枚各同时落入两个边界,那么保留全部点–边界映射时将有九十条关系。这里八十五枚至少归属一个细胞,九十是关系条数,分母又各不相同。直接看矩阵总数便无法分辨重复计入来自哪一行。
跨视野拼接时,也做同样检查。两个视野可能重叠,同一细胞在不同视野本地编号可能相同或不同,本地编号相同却也可能代表相距很远的两枚细胞。先给视野和层级加上可追溯标识,再判断是否真要合并。若依据物理重叠去重,保留旧对象与合并对象的对应表,不要先把本地编号去掉再尝试推测来源。比较两个区域的核内表达比例时,还要注意组织厚度、细胞截面大小和筛选后的可用分子数是否明显不同。
最后把一个可复验的小视野连同分子坐标、空间单位名称、所选焦面和归属表一起保存。换一种核边界后,读者就能判断差别来自核形状、分子筛选还是统计口径。多视野和多焦面对象需要统一管理、让团队重复计算不同空间单位时,可了解云生信的生物信息分析服务器。
