空间邻域组成聚类方法选择

🧬 空间邻域组成聚类系统性总结:从特征构建到方法选择


一、任务目标:识别“空间亚型”

空间亚型分析旨在根据细胞在组织中邻域结构的组成特征,识别出功能或状态上不同的“空间细胞类群”,如不同的 CAF 微环境类型。


二、分析流程概览

✅ 输入数据:

  • CAF × CellType 的邻域比例矩阵
  • 每个 CAF 一行,每列是邻域内某类细胞的占比(加总为 1 或标准化)

✅ 两个步骤:

步骤 说明
Step 1:构建邻域特征向量 统计每个目标细胞周围某个半径内,各类细胞的比例(或数量)
Step 2:对这些特征向量聚类 将这些邻域组成作为向量输入,进行聚类,得到空间亚型

三、特征向量构建方式(Step 1)

方法类别 描述
固定半径邻域 设置如 80μm 半径,统计邻近细胞组成
K 近邻 对每个目标细胞寻找最近的 K 个细胞,统计类型占比
加权邻域 对邻居加权(距离越近权重越大),体现“局部密度影响”
多尺度邻域分析 以多种半径重复统计,用于评估微环境变化(如近邻 vs 远邻)

四、聚类方法扩展(Step 2)


✅ 已总结方法:

方法组合 特点分析
NMF + Leiden 推荐方式:NMF 可解释性强,Leiden 能高效识别复杂结构模式
PCA + K-means 快速简洁,适合簇间线性可分数据,但对复杂结构或过渡状态不敏感
Hierarchical clustering 多用于构建树状图谱、层级关系展示,适合探索数据结构而非最终划分类别
Topic modeling (LDA) 概率模型识别“邻域共存潜在主题”,适合复杂混合邻域建模,但调参难度较高

✅ 补充建议方法:

1️⃣ Gaussian Mixture Model (GMM)

  • 假设邻域组成数据由多个高斯分布混合而成
  • 提供soft clustering(每个细胞对所有簇的概率归属)
  • 适合邻域组成连续变化的状态转化类分析

2️⃣ HDBSCAN(Hierarchical Density-Based Spatial Clustering)

  • 基于密度的层级聚类,无需预设簇数
  • 可识别出稠密簇与稀疏“孤立点”(如罕见邻域模式)
  • 特别适合数据分布不均、存在孤立亚型的组织分析

3️⃣ PhenoGraph / Graph-based 社区检测

  • 构建 k-NN 图后使用 Louvain/Leiden 社区划分算法
  • 原用于单细胞表达数据聚类,已广泛应用于空间邻域组成分析
  • 对数据结构自适应性强,尤其适合高维特征

4️⃣ Diffusion Map + Spectral Clustering

  • 利用扩散距离重建细胞间“状态空间”,比欧式距离更鲁棒
  • 谱聚类通过拉普拉斯矩阵特征值分解进行分群
  • 特别适合处理状态过渡、组织梯度类问题(如发育轨迹、肿瘤侵袭边界)

✅ 方法对比总结表

方法 原理概述 优势与适用场景
NMF + Leiden 非负分解 + 社区检测 可解释性强,适合组成特征向量,捕捉异质性
PCA + K-means 主成分 + 欧式聚类 快速高效,适合线性可分的分群任务
PCA + Louvain / Leiden 主成分 → 相似性图 → 社区划分 网络结构友好,适合复杂空间邻域聚类
Hierarchical clustering 基于距离或相似度递归构建聚类树 可展示亚型之间关系,适合探索性热图分析
LDA (Topic modeling) 基于概率的“主题”识别模型 适合发现多个细胞类型共存的“微环境模式”
GMM(高斯混合模型) 模型每类邻域为高斯分布,输出概率分群 适合识别模糊边界或过渡状态,可视化清晰
HDBSCAN 基于密度的层级聚类 不需指定簇数,能识别稀有簇,适合不规则数据分布
Diffusion + Spectral 扩散图构建状态空间,谱聚类判别边界 适合状态连续变化场景,如肿瘤边缘、发育轨迹
PhenoGraph 基于图的邻接网络 + Louvain 分群 稳健、已验证广泛,适合高维表达 / 细胞组成类问题

✅ 方法选择建议:

分析需求 建议方法
需要高可解释性 NMF / LDA
目标簇分布复杂/不规则 HDBSCAN / GMM
想追踪状态变化轨迹 Diffusion Map + Spectral
快速初筛、聚类快速对比 PCA + K-means
兼容 Scanpy/Seurat 工作流 Leiden / Louvain 基于图的方法

五、可视化方式与“饼图”的解释

可视化图 来源说明 功能说明
饼图 对聚类结果中每类细胞的邻域组成向量求均值后绘图 表示该空间亚型的“邻域细胞组成特征”
热图 使用 seaborn.clustermapComplexHeatmap 可展示所有细胞或空间亚型与细胞类型的组成强度
UMAP 可将 CAF 的邻域向量降维后上色 展示空间亚型在结构上的分布
空间坐标上标色 每类亚型染成不同颜色点 展示组织中 CAF 亚型的空间分布格局

六、算法数学基础:NMF 拓展回顾

你对 NMF 的数学原理、分解机制、优化过程、在 CAF 分析中的应用都已经总结得非常完整:

  • 分解公式 $V \approx WH$
  • 非负约束带来的可解释性
  • 每个 CAF 被看作若干“空间模式”的加权组合
  • 对 $W$ 聚类可得到 CAF 的空间亚型

七、跨样本标准化建议

为统一不同切片的细胞组成差异,可以:

  • 将每个 CAF 邻域向量 除以组织全局细胞比例
  • 或使用 Z-score 标准化处理

✅ 一图总结分析流程:

[原始细胞位置+类型]
        ↓
[计算邻域构成向量]
        ↓
[构成目标细胞 × 细胞类型矩阵]
        ↓
[NMF / PCA / LDA 等降维]
        ↓
[Leiden / K-means 聚类]
        ↓
[CAF 空间亚型 → 饼图 / 热图 / 空间投影]

✅ 总结表

分析环节 方法与建议
邻域定义 固定半径 / K近邻 / 多尺度
特征构建 构成比例向量
降维+聚类 NMF + Leiden(推荐) / PCA + Louvain / LDA / GMM
结果可视化 饼图(组均值)、热图、空间图、UMAP
跨样本归一化 与切片总体组成比值 / Z-score

🧩 补充:完整代码实现建议(Python / R)


✅ Python 实现方案(Scanpy + sklearn)

from sklearn.decomposition import NMF
from sklearn.preprocessing import normalize
import scanpy as sc
import numpy as np
import anndata as ad
import pandas as pd

# 假设邻域矩阵为 CAF × cell_type(纯数值、已归一化)
X = np.array(...)  # shape: (n_caf, n_cell_types)

# Step 1: NMF 分解
nmf = NMF(n_components=4, init='nndsvd', random_state=0)
W = nmf.fit_transform(X)  # CAF × topic matrix
H = nmf.components_       # topic × cell_type

# Step 2: 转为 AnnData → 聚类
adata = ad.AnnData(W)
sc.pp.neighbors(adata)
sc.tl.leiden(adata, resolution=0.3)
adata.obs['spatial_subtype'] = adata.obs['leiden']

# Step 3: 每个聚类的邻域组成均值 → 饼图绘制(示意)
df = pd.DataFrame(X)
df['cluster'] = adata.obs['spatial_subtype'].values
mean_profiles = df.groupby('cluster').mean()
mean_profiles.plot.pie(subplots=True, figsize=(10, 3))

✅ R 等效实现(NMF + Seurat)

library(NMF)
library(Seurat)

# Step 1: NMF
nmf_res <- nmf(X, rank = 4, method = "brunet", nrun = 20)
W <- basis(nmf_res)   # CAF × topic
H <- coef(nmf_res)    # topic × cell_type

# Step 2: 聚类分析
seurat_obj <- CreateSeuratObject(counts = t(W))
seurat_obj <- FindNeighbors(seurat_obj)
seurat_obj <- FindClusters(seurat_obj, resolution = 0.3)

📌建议使用 factoextra::fviz_nbclust()clValid::clValid() 帮助选定聚类数。


🧠 方法对照与适用性建议表

方法组合 可解释性 异质性建模 状态连续性 自动确定簇数 适用场景和备注
NMF + Leiden ✅ 高 ❌ 离散 主流推荐方法,可生成因子解释图和聚类图
PCA + KMeans ❌ 一般 快速初筛,适合均值分离明显的簇
GMM + soft assignment ❌ 一般 ✅ 连续谱系 支持 soft label,适合状态过渡和模糊边界分析
HDBSCAN(密度聚类) ❌ 一般 ✅ 自动识别 可识别孤立亚型和稀有空间构型
PhenoGraph / Louvain ✅ 基于图密度 图聚类主流方法,兼容 Scanpy/Seurat,适合大数据量
DiffusionMap + Spectral ❌ 可视化主 ✅ 连续轨迹 拓扑结构敏感,适合处理“状态过渡型空间模式”
Hierarchical clustering ✅ 树形结构 ✅ 可剪分支 适合探索聚类之间关系、绘制热图,适合 small data
LDA (Topic modeling) ✅ 高 ✅(分布式表示) 理论强大但需调参,适合复杂混合邻域(但需经验)

✅ 分析设计建议总结

目标类型 推荐方法组合 参数建议
高解释性 + 聚类 NMF + Leiden n_components ≈ 3–6,resolution=0.3
多态过渡 + 模糊边界分析 GMMDiffusionMap + Spectral Gaussian n ≈ 4,diffusion steps=10
稀有亚型发现 HDBSCAN min_samples=5, min_cluster_size=10
快速自动聚类 PCA + Louvain / PhenoGraph PCA 维度=10~30,kNN=15–30
样本归一化对比 先标准化邻域向量 → 除以全图细胞组成比例 CAF邻域构成 / 全组织构成
posted @ 2025-05-27 23:41  tomorgen  阅读(42)  评论(0)    收藏  举报