如果两枚捕获点只隔一个格子,但中间正好跨过清晰的组织分界,它们该不该对彼此的表达判断产生同样强的影响?SpaGCN 可以把染色图像的信息纳入空间距离,再用图卷积识别空间域。这一做法也带来一个具体的排错问题。如果点位从照片里取错了颜色,模型仍能给出完整的分群图,连概率和也可能正常。我们造了一张只有左右两种颜色的小图,保持表达和阵列固定,只交换取色的行列,观察哪里先出现可测的变化。SpaGCN 原始研究
一枚点有两套坐标,先画出取色窗口
阵列坐标用于计算空间点之间的位置关系,照片的像素行列用于定位组织图上的色块。照片若缩放、裁边或旋转,后一套数值会跟着变化。输入时还要注意数组的第一维是行,第二维是列。SpaGCN 当前这段取色代码用名为 x_pixel 的参数索引图像第一维,名为 y_pixel 的参数索引第二维。若原表标题写的是画图软件的横轴和纵轴,应先转换到数组行列,再传入函数。把每个点的两个数都限制在图像宽高之内,只能说明索引没有越界。作者的取色和距离计算实现
一个直接的检查是选三个互不对称的位置,例如缺口内侧、深染小灶和大片浅染区域。把原照片上的取色窗口放大,再将程序从窗口提取的平均颜色画在同一个位置。若深染小灶的取样落到浅染区,即使整张点位散点图看上去轮廓对齐,也值得回查缩放因子和轴顺序。窗口过大时,一枚位于细窄组织层内的点可能平均进两侧组织,窗口过小时则更容易被个别深染像素或噪点影响。记录原始照片尺寸和窗口大小,并让复核人员能够从点位编号回到原照片。
图中的距离是怎样改变邻居影响的
不引入图像时,函数根据给定的两个平面坐标计算距离。启用图像时,会给每个点提取附近颜色,对通道按变异程度加权,再把结果标准化成一个附加维度。平面位置相同的比较逻辑由此纳入了颜色差异。构造距离矩阵后,SpaGCN 的训练函数还会依距离与尺度参数计算衰减权重。因此“图上两点距离增大”和“训练时两点互相影响减弱”是先后两个步骤,不能把前一步的距离值直接抄成后一步的邻接权重。色差、取色窗口以及衰减尺度要分别记入参数表。SpaGCN 训练入口及距离变换
反查某条边比光看整张聚类图更容易发觉问题。可以选取一对横跨候选边界的邻点,再选一对位于边界同一侧、平面间距相同的邻点。分别输出纯坐标距离、加颜色后的距离以及进入训练的权重。如果跨边界的一对应该受色差影响,但计算值完全没有变化,同时另一方向的一对变化很大,就应回看程序实际使用的像素位置。这样的对照无需预先知道整张组织里应当分几类,也不依赖聚类标签的数字编号。
| 模拟输入 | 横跨左右边界的距离 | 左侧内部上下邻点的距离 |
|---|---|---|
| 只用阵列坐标 | 1.000 | 1.000 |
| 正确提取左右两侧的颜色 | 3.559 | 1.000 |
| 将取色的行列交换 | 1.000 | 3.559 |

实跑经验|行列都合法,组织边界仍可转九十度
我们在 Python 环境安装 SpaGCN 1.2.7,使用 CPU,建立六行六列的方格和一张六十乘六十像素的三通道图。左右半图各有固定颜色,模拟表达含十八个基因、两种已知状态,各有六个偏好表达的基因。两组边界相同,便于检查程序能否利用有利的图像信息。我们固定表达、随机种子和全部阵列坐标,分别用纯位置、正确取色、取色行列交换三种距离训练模型。初始化选择两类的均值聚类,使用五个主成分,相同的距离衰减尺度和六十轮训练上限,提前停止由软件按标签变化决定。
沿真实边界选择的一对相邻点,在纯位置矩阵中距离为一,加入正确颜色后增至约 3.559。同侧上下邻点的距离保持为一。把两个取色轴交换,两个数就对调了。我们还比较了预测标签与模拟真值的调整兰德指数,纯位置约为 0.889,正确取色为一,交换取色又约为 0.889。这个例子有意让颜色与生物状态边界一致,因此它能验证轴顺序和距离构造,无法估计真实切片引入染色后的平均收益。三种训练输出的每点类别分值加和都约为一,单查这个性质完全发现不了坐标错位。
import numpy as np
# D 是实际将要交给 model.train 的距离矩阵,spot_ids 是该矩阵的点位顺序
assert D.shape == (len(spot_ids), len(spot_ids))
assert np.isfinite(D).all()
assert np.allclose(D, D.T) and np.allclose(np.diag(D), 0)
print(D[14, 15], D[14, 20]) # 本例预先选定的跨界与内部邻点
最后换上一张完全均匀的灰色图,保留相同的取色参数。这次构图返回的三十六乘三十六个距离全部为非有限值,运行时出现除法警告。原因可以从这个版本的实现追到通道方差和颜色标准化。在真实切片中,若坐标或裁剪有误,所有窗口恰好都取到同一片背景,就有可能遇到相似症状。遇到这种输出,应先看取色值的分布并检查原图,再决定是否有足够颜色信息参与计算。把所有非有限值一概补成零,会把原本无法计算的点对写成非常接近,影响后续邻域。
怎样给组织边界留下可复查的证据
从一张代表性切片选取染色边界清楚但表达对比弱的区域,再选表达标记明显但染色差异小的区域。分别对比关闭图像、启用图像时的结果,保存原始标记分布、像素取样窗口和几个关键点对的距离。若某个区域只在启用图像后出现,先陈述这一依赖,再查看独立切片或其他标记能否支持。给真实样本加上的组织名字需要独立证据,示例里人为设定的双色真值无法代替病理判读。
多切片项目可先在一张片上确认像素轴、取色窗口和距离分布,再用同一套检查批量运行。有集中运行或保存中间矩阵的需求时,可了解云生信的生物信息分析服务器。