hello,接上一篇文章10X空间转录组聚类分析之图卷积网络(graph convolutional network),我们回来解读SpaGCN对空间聚类和找空间高边基因的算法。当然,数学的知识就很难了,大家如果想深入学习,要做好准备。
Data preprocessing
SpaGCN 将空间基因表达和组织学图像数据(如果可用)作为输入(两部分信息进行处理,通常我们只对基因表达深入分析,图片只是作为辅助)。 空间基因表达数据存储在一个 × 矩阵中,该矩阵包含 样本和 基因的唯一分子标识符 (UMI) 计数,以及每个样本的 (, ) 二维空间坐标。 在基于测序的数据中,每个样本代表一个包含多个细胞的点,而在基于单分子荧光原位杂交 (smFISH) 的数据中,每个样本代表一个细胞。 为简单起见,我们将使用“spot”来指代样本,因为分析的大多数数据都是基于测序的。 在少于三个点中表达的基因被消除。 对每个点中的基因表达值进行标准化,以便每个基因的唯一分子标识符 (UMI) 计数除以给定点中所有基因的总 UMI 计数,再乘以 10,000,然后转换为自然对数刻度(这个转换跟seurat对基因的处理是一样的)。
空间转录组学数据到图结构数据的转换
预处理后,SpaGCN 将基因表达和组织学图像数据转换为加权无向图,(,)。 在该图中,每个vertex ∈ 代表一个点, 中的每两个vertex通过具有指定权重的边连接。 将分析重点放在具有组织学信息的空间转录组学数据上,但该方法可以很容易地适用于分析基于 smFISH 的数据,但组织学信息不可用。
计算两个之间vertex的距离
图中任意两个顶点和之间的距离反映了两个对应点的相对相似度。 这个距离由两个因素决定:1)斑点和在组织切片中的物理位置,以及2)这两个斑点对应的组织学信息。尽管组织中的某些spot在物理上彼此接近,但组织学图像可能会显示它们属于不同的组织层。 因此,SpaGCN 认为两个spot是接近的,当且仅当 1) 两个spot在物理上接近,2) 它们具有相似的像素特征,如组织学图像中所示。 为了定义考虑到这两个方面的距离度量,SpaGCN 将组织切片中的 2 维空间扩展为包含组织学信息的 3 维空间。 对于spot ,其在组织切片中的物理位置由二维坐标表示(,)。 为了确定spot 在组织学图像中的对应像素,SpaGCN根据其像素坐标(,)将spot 映射到组织学图像。不是使用像素的颜色在(,)的,SpaGCN绘制一个正方形为中心在包含50×50像素(,),并计算对RGB通道的平均颜色值,(,,), 落在正方形中的所有像素。 这一步平滑了颜色值,并确保颜色不受单个像素的支配。 为了导出一个单一的值来表示组织学图像特征,SpaGCN 使用了 RGB 值的加权和,如下所示,
其中=方差(),=方差(),=Variance()) 在这个转换中,具有更大方差的通道被赋予更高的权重,以便这个组合值 捕获组织学图像中模式的准确表示。
接下来,SpaGCN 将 重新缩放为
其中是平均,σ的,σ,σ是ν,ν和ν的标准偏差,ν∈,和是缩放因子。 在分析中, 通常设置为 1,以确保 ∗ 与 和 具有相同的尺度方差,并且我们将设置为大于 t 的权重值的目标。 在扩展的3维空间中,spot 的坐标设置为(, , ∗)。
Finally, the Euclidean distance between every two spots and is calculated as:
计算每条边的权重并构建图
每条边(,)的权重衡量点 和 之间的相关程度,并与它们的距离呈负相关。 图结构存储在一个×邻接矩阵=[(,)]中,其中spot 和spot 定义为:
超参数 ,也称为特征长度尺度,确定权重作为距离的函数衰减的速度。 SpatialDE 中也使用了类似的功能。 让表示单位矩阵。 对于 spot ,对应的−的行和,用表示,可以解释为其他spot对其基因表达的相对贡献。 我们选择 的值,使得所有点的 的平均值等于预先指定的值,例如 0.5.
图卷积层
SpaGCN 使用主成分分析 (PCA) 减少预处理基因表达矩阵的维度。 前 50 个主成分用作输入,它们适用于分析的所有数据集。 接下来,利用图卷积网络的强大功能,SpaGCN 将 中的基因表达信息和边权重连接起来以对节点进行聚类。 遵循 Semi-supervised classification with graph convolutional networks,图卷积层可以写为
其中是从PCA得到的×50嵌入矩阵,是表示卷积层滤波器参数的50×50矩阵,而(∙)是非线性激活函数(这个大家可以参考文章几种非线性激励函数(Activation Function)),如ReLU。图卷积层确保中对应的参数行将控制中每个特征的邻域信息的聚合,从而提供由相邻点提供的特征特定信息聚合的灵活性。 中的过滤器参数在图中的所有vertices之间共享,并在迭代训练过程中自动更新。通过图卷积,SpaGCN根据中指定的边权重聚合了基因表达信息。该层的输出是一个聚合矩阵,其中包括有关基因表达、空间位置和组织学的信息。图卷积层是基于Semi-supervised classification with graph convolutional networks实现的,其中反向传播通过光谱图卷积的局部一阶近似进行操作。
Spatial domain identification by clustering
接下来,基于上述图卷积层的输出,SpaGCN 采用无监督聚类算法将spot迭代聚类到不同的空间domain中。 从该分析中识别出的每个cluster都被视为一个空间域,其中包含在基因表达和组织学上一致的spot。 为了初始化cluster质心,我们在图卷积层的聚合输出矩阵上使用 Louvain 方法。 如果组织中域的数量已知,则将设置 Louvain 中的分辨率参数以生成相同数量的空间domain。 否则,我们将分辨率参数从 0.2 更改为 1.0,并选择提供最高Silhouette score的分辨率。
为了迭代地更新cluster分配,我们定义了一个度量来测量从一个spot到一个cluster质心的距离,使用 分布作为内核。 点的嵌入点ℎ与cluster 的质心之间的距离:
可以解释为将cell 分配到cluster 的概率。
接下来,我们通过基于定义一个辅助目标分布来迭代地细化cluster:
它增加了高置信度分配的spot,并将每个质心对整体损失函数的贡献归一化,以防止大cluster扭曲隐藏特征空间。 现在我们有了软分配 和辅助分布 ,我们可以将目标函数定义为 Kullback-Leibler (KL) 散度损失,
通过使用带有动量的随机梯度下降最小化,同时优化网络参数和cluster质心。 这种无监督的迭代聚类算法以前曾用于 scRNA-seq 分析,并且表现出优于 Louvain 方法的性能。
Detection of spatially variable genes
检测在每个空间域中丰富的空间可变基因 (SVG)。注意到一些基因可能在多个但不连续的域中表达。尽管它们不是在特定域中唯一表达,但这些基因仍然有助于理解基因表达的空间变异,并可用于形成在特定域中唯一表达的meta gene。因此,我们不是使用来自目标域的spot与所有其他点进行差异表达 (DE) 分析,而是首先选择spot以形成目标domain的相邻集。目标是检测在目标domain中高表达但在相邻spot中不表达或低表达的基因。为了确定哪些spot应该被视为邻居,我们在目标domain中的每个spot周围绘制一个具有预先指定半径的圆。来自圈内非目标domain的所有spot都被视为其邻居。半径设置为目标域中的所有点平均有大约 8 个邻居。接下来,收集目标domain中所有spot的邻居并形成一个邻居集。对于每个非目标domain,如果超过 50%(默认)的点在相邻集合中,则该domain被选为相邻domian。设置此标准是为了避免选择一个domian作为相邻domain,但只有一小部分点与目标域相邻的情况。
确定相邻domain后,SpaGCN 然后使用 Wilcoxon 秩和检验在目标domian和相邻domain中的spot之间执行 DE 分析。 选择错误发现率 (FDR) 调整 p 值 <0.05 的基因作为 SVG。 为了确保只选择在目标domian中具有丰富表达模式的基因,我们进一步要求基因满足以下三个标准:1) 在目标domain中表达基因的点的百分比,即分数>80 %; 2)对于每个相邻domain,在目标domain和相邻domain中表达基因的点的百分比,即in/out分数比>1; 3) 目标domain和相邻domain之间的表达倍数变化 >1.5。 如果有兴趣为特定的空间域组合查找 SVG,SpaGCN 提供了这样做的选项(就是meta gene)。
Detection of spatially variable meta genes(重点)
上面描述的特定于空间domain的 DE 分析通常会检测大多数domain的具有丰富表达的 SVG。对于未检测到此类 SVG 的domain,目标是确定一组基因,当组合形成meta gene时,在给定domain中显示出丰富的表达模式。为了识别形成meta gene的基因,采用了多步方法。首先,降低 SVG 过滤的阈值,例如,将最小倍数变化阈值从 1.5 更改为 1.2,以识别在目标domain中显示较弱富集表达模式的基因。在存在多个这样较弱的 SVG 时,随机选择其中一个作为基础基因,并将其表示为 gene0。其次,目标是将其他基因的表达聚合到基础基因,以增强目标domain的空间模式。为了实现这一目标,首先计算目标domain中spot的gene0 的平均表达水平为0。然后,所有来自非目标domain的spot与gene0的表达水平高于对照组gene0的平均表达水平被提取到一组gene0's接下来,我们使用目标domain中的spot与对照组中的spot进行 DE 分析,使用 Wilcoxon 秩和检验。在目标domain中具有最小 FDR 调整 p 值和更高表达的基因被选择为gene0+。类似地,我们使用来自对照组的spot与来自目标domain的spot进行 DE 分析,并在对照组中选择具有最小 FDR 调整 p 值和更高表达的基因作为 gene0+。 meta gene的表达计算为
其中 0 是一个常数,使 log(meta_gene1) 非负。 对数转换用于重新调整表达并使不同基因的表达水平具有可比性。 发现包括阴性基因可以加强没有富集阳性标记基因的域的空间表达模式。 该算法可以迭代地用于寻找额外的基因,以形成具有更清晰的目标domain空间模式的更新meta gene。 对于 (+1)ℎ 迭代,meta gene表达计算为
Evaluation of spatially variable genes using Moran’s I statistic(关于这个,用过monocle3的人应该都知道)
Moran's I 统计量是空间自相关的度量,可用于度量基因表达的空间变异程度。 Moran's I值范围从–1到1,其中接近1的值表示空间模式清晰,接近0的值表示随机空间表达,接近-1的值表示类似棋盘的模式。 为了评估给定基因的空间变异性,我们使用以下公式计算 Moran's I,
其中和spot 和的基因表达,̅是该基因的平均表达,是spot的总数,j是使用点的2维空间坐标计算spot 和之间空间权重 ,而 是 j 的总和。 对于每个spot,我们使用空间坐标选择 最近的邻居。 Moran's I 统计量对于 的选择是稳健的,在分析中设置为 4。 如果spot 在spot 的最近邻居中,我们分配j =1,否则分配j =0。
最后一部分,Detection of subclusters within a spatial domain
为了更好地表征空间domain内由于其邻domain的影响而产生的异质性,SpaGCN 可以利用来自相邻spot的信息进一步检测每个空间domain内的子domain。 SpaGCN 以预先指定的半径围绕每个spot绘制一个圆,所有位于该圆内的spot都被视为该点的邻居。设置半径值以确保目标domain中的每个spot平均有十个邻居。接下来,SpaGCN 为每个spot记录来自不同空间domain的邻居数,并将此信息存储在 × 矩阵中,其中 是目标domain中的点数, 是检测到的空间domain总数。 ℎ行和ℎ列的值是属于domain 的spot 的邻居数。接下来,这个矩阵被送入一个 K-means 分类器来检测子集群。可以进行如上所述的差异表达分析以鉴定富集亚群的基因。
数学的知识往往都很难,但是却是我们认识一切的基础,希望有能力的人可以好好钻研。
生活很好,有你更好