当前位置: 首页 > news >正文

single cell ATAC(5)使用ArchR聚类

第五章:在 ArchR 降维结果上给细胞贴标签(聚类)

一句话先读:本章只做一件事——在低维空间里把细胞聚成群,再对照样本来源看批次是否干净。


一、总流程:先做什么 → 后做什么 → 为什么

顺序动作目的
1确认已有降维对象 projHeme2 且含 IterativeLSI聚类必须在低维空间做
2addClusters(..., method="Seurat")快速得细胞群落
3查看 & 统计 projHeme2$Clusters心里对规模有数
4confusionMatrix() + 热图验证批次是否混杂
5可选:method="scran" 再聚类换个视角,更敏感
6比较两种结果一致性决定最终用谁

二、详细拆解(代码 + 可调参数 + 常见坑)

1. 前置检查

# 确保降维已完成
projHeme2@reducedDims[["IterativeLSI"]]   # 不报错即可
  • :前面没跑 addIterativeLSI() 会直接报错。

2. Seurat 聚类(一键完成)

projHeme2 <- addClusters(input        = projHeme2,reducedDims  = "IterativeLSI",method       = "Seurat",name         = "Clusters",   # 新列名,可改resolution   = 0.8         # 越大 cluster 越多
)
  • 可调参数
    • resolution:0.2–1.2 试不同粒度
    • Seurat::FindClusters() 其余参数通过 ... 传入,如 algorithm=1

3. 查看聚类结果

head(projHeme2$Clusters)     # 每个细胞的 cluster ID
table(projHeme2$Clusters)    # 每群细胞数
  • :出现 NA 说明部分细胞被 QC 过滤,需回溯。

4. 批次质检(混淆矩阵)

聚类混合矩阵(cluster confusion matrix)
为了更好了解样本在cluster的分布

library(ArchR)
cM <- confusionMatrix(paste0(projHeme2$Clusters),paste0(projHeme2$Sample)
)# 归一化热图
cM <- cM / Matrix::rowSums(cM)
pheatmap::pheatmap(as.matrix(cM),color       = paletteContinuous("whiteBlue"),border_color = "black"
)
  • 解读:行 = cluster,列 = 样本
    • 某列独占一行 → 批次效应明显,需回 Harmony/BBKNN 处理
    • 建议批次混占比 < 10 %

5. scran 聚类(可选)

除了Seurat, ArchR还能够使用scran进行聚类分析,我们只需要修改addClusters()中的method参数即可。

projHeme2 <- addClusters(input        = projHeme2,reducedDims  = "IterativeLSI",method       = "scran",name         = "ScranClusters",k            = 15   # kNN 邻居数
)
  • 注意
    • k 相当于 Seurat 的 k.param,数据大可提高
    • 列名不要与第 2 步重名

6. 一致性比较(可选)

table(projHeme2$Clusters, projHeme2$ScranClusters)
  • 差异大?
    • 结合 UMAP 人工判断
    • 或取交集/并集做稳健标记

三、最小可复现 checklist

  • 前四章完成,projHeme2IterativeLSI
  • 运行第 2 步代码,得到 Clusters
  • table() 看分布,无 NA
  • 混淆矩阵批次混占比 < 10 %
  • 如需 scran,换列名并重跑比较

跑通以上 5 步,第五章即毕业。

http://www.dtcms.com/a/336894.html

相关文章:

  • CentOS 7.9 部署 filebrowser 文件管理系统
  • 深入解析 Qwen3 GSPO:一种稳定高效的大语言模型强化学习算法
  • 运维命令基础
  • 算法魅力-BFS解决多源最短路
  • PPT生成视频的AI大模型应用技巧
  • 基于51单片机霍尔测速仪表测转速调速系统设计
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频内容理解与智能预警升级(401)
  • Java封装
  • Orange的运维学习日记--45.Ansible进阶之文件部署
  • Rust 入门 生命周期-next2 (十九)
  • Kubernetes配置管理全攻略:ConfigMap与Secret详解
  • [机器学习]10-基于ID3决策树算法的西瓜数据集分类
  • Apache RocketMQ,构建云原生统一消息引擎
  • 如何用github记录mit6s081-2020-labs学习过程
  • SQL注入防御
  • MacOS 安全机制与“文件已损坏”排查完整指南
  • 【前端】使用Vue3过程中遇到加载无效设置点击方法提示不存在的情况,原来是少加了一个属性
  • 动态规划:入门思考篇
  • SQL详细语法教程(五)事务和视图
  • zsh 使用笔记 命令行智能提示 bash智能
  • mac查看nginx安装位置 mac nginx启动、重启、关闭
  • 我的第一个开源项目:从0到1,我在GitHub写下的成长印记
  • OpenCV Python——Numpy基本操作(Numpy 矩阵操作、Numpy 矩阵的检索与赋值、Numpy 操作ROI)
  • 母猪姿态转换行为识别:计算机视觉与行为识别模型调优指南
  • 使用 ipconfig /all 获取电脑 IP 地址
  • Django 请求生命周期
  • TCP网络编程
  • Json A12 计算总和
  • Git版本控制与协作
  • 【秋招笔试】2025.08.16美团算法岗秋招机考真题