单细胞|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
    • 分区标签用于按颜色分组。

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

相关推荐
摘取一颗天上星️1 小时前
深入解析机器学习的心脏:损失函数及其背后的奥秘
人工智能·深度学习·机器学习·损失函数·梯度下降
山顶听风2 小时前
多层感知器MLP实现非线性分类(原理)
人工智能·分类·数据挖掘
山顶听风2 小时前
MLP实战二:MLP 实现图像数字多分类
人工智能·机器学习·分类
智能汽车人3 小时前
自动驾驶---SD图导航的规划策略
人工智能·机器学习·自动驾驶
一点.点4 小时前
AlphaDrive:通过强化学习和推理释放自动驾驶中 VLM 的力量
人工智能·机器学习·自动驾驶
机器学习之心4 小时前
机器学习用于算法交易(Matlab实现)
算法·机器学习·matlab
Blossom.11811 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
郄堃Deep Traffic13 小时前
机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务
人工智能·机器学习·回归·城市规划
GIS小天14 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
小喵喵生气气15 小时前
Python60日基础学习打卡Day46
深度学习·机器学习