单细胞|M3-4. 细胞聚类与轨迹推断

R 复制代码
library(ggplot2)
library(RColorBrewer)
library(scales)
# 聚类细胞
cds <- cluster_cells(cds)

# 基于UMAP进行分区
cds@colData$part <- partitions(cds, reduction_method = "UMAP")

# 绘制分区图,展示不同的细胞群体
plot_cells(cds, color_cells_by = "partition", label_cell_groups = FALSE)

数据结构角度讲解

要解读这段代码的数据结构和内容,需要先明确每个数据对象和函数的功能。以下是各部分的数据结构解读:


1. cds 对象

cds 是一个 CellDataSet 对象,来自 Monocle3。它是单细胞分析的核心数据结构,包含以下主要内容:

  • 表达数据:

    • 存储在 cds@assays$data,通常为基因表达矩阵(如 counts 数据)。
  • 细胞元数据:

    • 存储在 cds@colData,是一个 DataFrame,包含每个细胞的相关信息,比如细胞类型、分区信息等。
  • 基因元数据:

    • 存储在 cds@rowData,是一个 DataFrame,包含基因的注释信息(如基因名、基因 ID)。
  • 降维结果:

    • 通常存储在 cds@reducedDims 中,包含 UMAP 或 PCA 的降维坐标。
  • 轨迹图数据:

    • 存储在 cds@principal_graph,包含轨迹推断生成的细胞间连接信息。

2. cluster_cells(cds)

这一步执行了 细胞聚类 ,结果被存储到 cds@colData 中的新列:

  • 新增列名为 cluster 或类似名称。
  • 每个细胞被分配到一个聚类标签(如 1, 2, 3 等整数)。

3. partitions(cds, reduction_method = "UMAP")

这一步执行了基于 UMAP 的 细胞分区

  • 输入:

    • cds: 包含细胞降维信息的 CellDataSet。
    • reduction_method = "UMAP": 指定基于哪种降维方法(通常为 UMAP)。
  • 输出:

    • 返回一个向量,包含每个细胞的分区标签(通常是整数,如 1, 2, 3)。
  • 存储:

    • 分区结果被存储到 cds@colData$part,每个细胞对应一个分区标签。

4. plot_cells 可视化

功能:

plot_cells 函数用于绘制细胞分布图,支持多种颜色映射方式,比如按分区、聚类或拟时序。

color_cells_by = "partition":
  • 输入 :
    • color_cells_by = "partition": 将细胞按分区标签着色。
  • 绘图内容 :
    • 细胞按降维(UMAP)坐标分布。
    • 不同分区用不同颜色表示。
label_cell_groups = FALSE:
  • 不为细胞群体标注标签,仅展示颜色分区。
数据结构:

绘图用到的数据来源于 cds 的以下部分:

  • 降维坐标 : 存储在 cds@reducedDims$UMAP
  • 分区标签 : 存储在 cds@colData$part

总结数据流

  1. 输入数据: 包括表达矩阵(counts)、细胞元数据和基因元数据。
  2. 中间过程 :
    • 聚类结果存储在 cds@colData$cluster
    • 分区结果存储在 cds@colData$part
  3. 可视化 :
    • UMAP 降维结果来自 cds@reducedDims$UMAP
    • 分区标签用于按颜色分组。

通过这些步骤,可以有效地展示不同细胞群体的分布及其分区关系。

相关推荐
GeeJoe7 分钟前
凡人炼丹传之 · 我让 AI 帮我训练了一个 AI
人工智能·机器学习·llm
小瑞瑞acd1 小时前
层次聚类:无需“猜”K值,如何让数据自己画出“家族图谱”?
机器学习·支持向量机·聚类
Hcoco_me2 小时前
具身智能 && 自动驾驶相关岗位的技术栈与能力地图
人工智能·机器学习·自动驾驶
TDengine (老段)3 小时前
TDengine 中 TDgp 中添加机器学习模型
大数据·数据库·算法·机器学习·数据分析·时序数据库·tdengine
CodeShare4 小时前
某中心将举办机器学习峰会
人工智能·机器学习·数据科学
天天找自己4 小时前
精通分类:解析Scikit-learn中的KNN、朴素贝叶斯与决策树(含随机森林)
python·决策树·机器学习·分类·scikit-learn
weixin_464078075 小时前
机器学习sklearn:处理缺失值
人工智能·机器学习·sklearn
2202_756749695 小时前
04 基于sklearn的机械学习-梯度下降(上)
人工智能·算法·机器学习
牛客企业服务6 小时前
2025校招AI应用:校园招聘的革新与挑战
大数据·人工智能·机器学习·面试·职场和发展·求职招聘·语音识别
计算机科研圈6 小时前
不靠海量数据,精准喂养大模型!上交Data Whisperer:免训练数据选择法,10%数据逼近全量效果
人工智能·深度学习·机器学习·llm·ai编程