单细胞降维邻居图与聚类原理 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

单细胞降维邻居图与聚类原理

更新:2026-10-26;状态:可用;验证范围:2026-10-26官方/原始来源核对;标准库教学演示实际执行;专业验证范围见正文。

先分清数据层

原始UMI计数、归一化/变换矩阵、PCA坐标、邻居图、聚类标签和UMAP二维图是不同产物。学完应能沿这些层追溯一簇如何产生,并知道“图上分离”不能直接等于细胞类型。先读UMI与细胞条形码、PCA原理与实现、距离标准化与相似性。

从特征到几何

选定细胞质控与表达层后,通常选高变基因HVG,以突出有信息的变化并减少维度。高变不是天然“最重要生物学基因”:深度、批次、应激或供体也会贡献变化。标准化与缩放决定哪些差异被放大,选特征与拟合参数都需保存。

设中心化后的细胞×基因矩阵为$X$,PCA近似 $X≈ZV^T$;$Z$是每个细胞的低维坐标,$V$是基因载荷。保留若干PC后在$Z$中计算距离,不是直接在二维UMAP上建立全部推断。Scanpy完整教程展示相应数据层与处理顺序;具体默认值应以所选版本为准。

从距离到邻居图

对细胞$i$选距离最近的$k$个细胞作为邻居,再按实现构造有向/无向关系与边权。邻居是局部关系,$k$决定平滑范围;距离、PC数、近似搜索和对称化方式都改变图。Leiden等方法在图上寻找社区,而K-means在指定坐标中优化几何目标,两者不能只因都输出“簇”就视为同一算法。Leiden原始论文解释其社区质量与连通性目标。

教学上可用模块度示意 $Q=(2m)^{-1}\sum_{ij}(A_{ij}-\gamma k_i k_j/(2m))1(c_i=c_j)$。$A_{ij}$是无向图对称邻接矩阵中的边权,$k_i=\sum_j A_{ij}$为加权度,$2m=\sum_{ij}A_{ij}$(每条无向边在矩阵中计两次),$\gamma$为分辨率,$c_i$是簇标签。真实Leiden还可使用不同目标;公式不是所有软件模式的统一定义。分辨率改变相对背景的合并/拆分倾向,不直接指定“应有多少生物学类型”。

四个点的手算

四细胞在一条人工PC轴上坐标0、0.1、3、3.1。$k=1$时各自最近邻构成两对,图有两个不连通部分。$k=2$时必须向另一对连边,图连通;这还不代表Leiden必只给一个簇。这个例子将“图的连通结构”和“聚类目标的优化结果”分开,也说明参数可以改变后续可见结构。

UMAP进一步给图关系找低维表示,图上簇间空白、相对角度和二维远距离未必保留原空间含义。不能把两簇间空白读作发育时间,也不能从随机种子改变后的颜色编号推断细胞类型变化。

输入、输出和检查顺序

保留原始计数、细胞/基因ID、QC与供体表;输出记录HVG、表示层、PC数、距离、邻居、随机种子、图、簇与注释依据。先看每簇供体/批次/质量组成,再改变合理参数检查稳定性;用未参与建簇的证据支持注释。

症状 可能原因 检查
簇完全按批次分开 技术或设计混杂 每簇批次与供体构成
小簇只有低质细胞 QC残留或真实稀有状态 深度、基因数、双细胞证据
参数一变类型就改变 图不稳或注释过强 多参数标签对应及原始表达
UMAP看似稳定却无标记支持 可视化不是身份 独立参考和供体层验证

自测与答案

  1. 图连通是否等于只有一种细胞?答:不是,社区还由边权和目标决定。
  2. HVG更多一定更好?答:可能引入噪声,需看任务与敏感性。
  3. 同一标记建簇、命名并唯一验证靠谱吗?答:存在循环用证据,应补独立支持。

在电脑上核对这一小步

先下载项目ZIP并解压,进入同时含README.md和examples的项目根目录。不熟悉终端和当前目录时读R与Python路径文件与项目组织。以下在系统终端执行,需Python 3.10+,只用标准库,无需pip安装;Windows可将python3替换为已安装的python或py。

python3 examples/methods_omics_demo.py --case neighbors

输入是脚本内置人工数字,不需下载专业数据。成功会打印JSON,并生成examples/output/methods-omics/neighbors/summary.json;cases.neighbors下的字段对应本页演算。非空输出目录会拒绝覆盖,第二次练习可在命令后加--output examples/output/methods-omics/neighbors-practice2。不要为了重跑删除不明来源的数据。

**检查点:**k1_edges只有[0,1]、[2,3];k2_edges增加跨对连接。节点用Python从0编号。

阅读源码时先找到同名函数,逐一对照输入、运算与输出;要修改数字,先复制整个解压项目并运行副本,再手算新的预期。脚本含若干固定结果断言,修改教学条件时也需重新核对相应断言;断言失败不自动说明专业方法失效。本轮已实际运行全部22个标准库模式,Python 3.14.8;本页范围为精确小点集的无权对称kNN;未运行Scanpy图、Leiden或UMAP。演示没有为真实样本产生专业P值或性能结论。

来源与下一步

本轮查阅日期为2026-10-26;正文原始来源支持对应技术事实,手算与代码是本项目人工教学设计。方法页解释模型,安装及大数据运行交给相应工具/工作流页。教学组织参考GTN的步骤与检查点、Bioinformatics Workbook的问题驱动练习;未复制其教程正文。

保留的相关入口:单细胞转录组入门与实践、PCA原理与实现、聚类Kmeans与层次聚类、Scanpy指南、Leiden原始论文。

学习顺序、前置与练习清单见方法与算法系统学习指南。

公式里的矩阵、下标或对数不熟时,可回查读懂方法公式的最小数学基础。