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
。
总结数据流
- 输入数据: 包括表达矩阵(counts)、细胞元数据和基因元数据。
- 中间过程:
- 聚类结果存储在
cds@colData$cluster
。 - 分区结果存储在
cds@colData$part
。
- 聚类结果存储在
- 可视化:
- UMAP 降维结果来自
cds@reducedDims$UMAP
。 - 分区标签用于按颜色分组。
- UMAP 降维结果来自
通过这些步骤,可以有效地展示不同细胞群体的分布及其分区关系。