用途:对单细胞 RNA-seq 数据做降维与图聚类,在 PCA 空间构建 k 近邻图并划分社区,再用 UMAP 等做二维展示。Python 用 sc.pp.neighbors + sc.tl.leiden + sc.tl.umap;R 用 FindNeighbors + FindClusters + RunUMAP。
主要能力:Leiden 与 Louvain 算法选择(Leiden 可保证社区连通,Louvain 可能产生内部不连通社区;Seurat 默认仍为 Louvain,algorithm=4 为 Leiden,需 leidenalg);参数参考(n_pcs 30-50、n_neighbors 10-30、resolution 0.2-2.0 扫描、UMAP min_dist 0.1-0.5);分辨率扫描与 clustree 查看细胞流向;亚聚类需在子集上重算 HVG、PCA 与 kNN 图;稳定性(bootstrap、Jaccard)与显著性(scSHC、CHOIR)验证。
使用方式:Scanpy 示例中固定后端以保证可复现,如 sc.tl.leiden(adata, flavor='igraph', n_iterations=2, directed=False);Seurat 中 FindClusters 可传多个 resolution 生成 RNA_snn_res.<r> 列供 clustree 使用。版本参考 scanpy 1.10+、Seurat 5.0+、anndata 0.10+,使用前需核对已安装版本与函数签名。
适用场景:单细胞聚类、分辨率选择、亚群细分、聚类结果验证与标记基因排序标注。
限制:聚类无真值,resolution 不具生物学含义;UMAP/tSNE 距离、簇大小与间隙不可作度量解读,只能在图或 PCA 空间聚类;对同一聚类做标记检验属双重浸染,p 值无效,标记检验仅用于排序与标注,需配合 scSHC/CHOIR 与 ClusterDE 等稳健方法;批次效应、双细胞、细胞周期与线粒体等技术因素需先处理。相关技能包括预处理、双细胞检测、批次整合、标记注释等。