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

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

相关推荐
AI量化投资实验室41 分钟前
15年122倍,年化43.58%,回撤才20%,Optuna机器学习多目标调参backtrader,附python代码
人工智能·python·机器学习
明月(Alioo)2 小时前
机器学习入门,无监督学习之K-Means聚类算法完全指南:面向Java开发者的Python实现详解
python·算法·机器学习
深度之眼2 小时前
【Nature高分思路速递】 物理驱动的机器学习
人工智能·机器学习·pinn
胖达不服输2 小时前
「日拱一码」105 机器学习原子间势能MLIP
人工智能·机器学习·机器学习原子间势能·mlip
人机与认知实验室5 小时前
触摸大语言模型的边界
人工智能·深度学习·机器学习·语言模型·自然语言处理
ARM+FPGA+AI工业主板定制专家5 小时前
基于Jetson+GMSL AI相机的工业高动态视觉感知方案
人工智能·机器学习·fpga开发·自动驾驶
做科研的周师兄6 小时前
【机器学习入门】7.4 随机森林:一文吃透随机森林——从原理到核心特点
人工智能·学习·算法·随机森林·机器学习·支持向量机·数据挖掘
第七序章6 小时前
【C++】AVL树的平衡机制与实现详解(附思维导图)
c语言·c++·人工智能·机器学习
晨非辰7 小时前
【面试高频数据结构(四)】--《从单链到双链的进阶,读懂“双向奔赴”的算法之美与效率权衡》
java·数据结构·c++·人工智能·算法·机器学习·面试
惜月_treasure8 小时前
LlamaIndex多模态RAG开发实现详解
开发语言·python·机器学习