M3-拟时序分析-2. 数据准备和单细胞数据转换CellDataSet(使用monocle3)

# 加载Seurat和monocle3包
library(Seurat)
library(monocle3)

# 读取Seurat对象
pbmc <- readRDS("M2output/pbmc_integ.rds")

# 获取counts矩阵
counts <- GetAssayData(object = pbmc, assay = "RNA", slot = "counts")

# 获取细胞元数据和基因元数据
cell.metadata <- pbmc[[]]
feature.metadata <- pbmc[["RNA"]][[]]

# 添加gene_short_name列,表示基因名称
feature.metadata$gene_short_name <- rownames(x = feature.metadata)

# 创建AnnotatedDataFrame对象
pd <- new(Class = "AnnotatedDataFrame", data = cell.metadata)
fd <- new(Class = "AnnotatedDataFrame", data = feature.metadata)

# 创建monocle3的CellDataSet对象
cds <- new_cell_data_set(counts,
                         cell_metadata = cell.metadata,
                         gene_metadata = feature.metadata)

# 保存CDS对象
saveRDS(cds, file = "cds_comb.rds")

代码解读

这段代码的主要目标是将 Seurat 对象转换为 monocle3 所需的 CellDataSet(CDS)格式,并保存该对象。让我们逐行解释这段代码的作用:

4. 获取counts矩阵

counts <- GetAssayData(object = pbmc, assay = "RNA", slot = "counts")

pbmc Seurat 对象中提取 counts 矩阵。这是原始的基因表达数据,通常是一个细胞×基因的矩阵,包含每个细胞中每个基因的表达计数。

5. 获取细胞和基因元数据

cell.metadata <- pbmc[[]]
feature.metadata <- pbmc[["RNA"]][[]]

#head(pbmc[[]])
#A data.frame: 8173 × 8
#orig.ident	nCount_RNA	nFeature_RNA	doublet_filter	percent.mt	percent.pt	integrated_snn_res.0.4	seurat_clusters
#<chr>	<dbl>	<int>	<chr>	<dbl>	<dbl>	<fct>	<fct>
#rep1_AAACCCACAAACACCT-1	ricerep1	907	648	Singlet	0.22050717	0.11025358	7	7
#rep1_AAACCCACAACTGTGT-1	ricerep1	1282	741	Singlet	0.15600624	0.00000000	4	4
#rep1_AAACCCACAAGTGGAC-1	ricerep1	676	504	Singlet	0.29585799	0.44378698	1	1
  • cell.metadata:从 Seurat 对象 pbmc 中提取细胞元数据(即与每个细胞相关的信息,如细胞类型、实验条件等)。
  • feature.metadata:从 pbmc[["RNA"]] 中提取基因元数据(即与每个基因相关的信息,如基因的注释信息)。

6. 添加基因名称列

feature.metadata$gene_short_name <- rownames(x = feature.metadata)

将基因的名称(rownames(feature.metadata))作为 feature.metadata 的一列,命名为 gene_short_name。这对于后续的轨迹分析和可视化非常有用,因为 monocle3 需要基因的名称信息来标识不同的基因。

7. 创建AnnotatedDataFrame对象

pd <- new(Class = "AnnotatedDataFrame", data = cell.metadata)
fd <- new(Class = "AnnotatedDataFrame", data = feature.metadata)
  • pd:创建一个 AnnotatedDataFrame 对象用于存储细胞元数据(cell.metadata)。这是 monocle3 的标准数据结构,提供了关于细胞的信息。
  • fd:创建一个 AnnotatedDataFrame 对象用于存储基因元数据(feature.metadata)。
  • 在R中,new() 是一个用于创建对象的函数。它通常用于构造S4类的实例(对象)

8. 创建CellDataSet(CDS)对象

cds <- new_cell_data_set(counts,
                         cell_metadata = cell.metadata,
                         gene_metadata = feature.metadata)

这行代码使用 new_cell_data_set 创建了一个 CellDataSet(CDS)对象。CDS 是 monocle3 的核心数据结构,包含了所有的单细胞RNA-seq数据、细胞元数据、基因元数据等信息。这里,counts 作为基因表达数据,cell.metadatafeature.metadata 分别作为细胞和基因的元数据被传入。

9. 保存CDS对象

saveRDS(cds, file = "cds_comb.rds")

将创建的 cds 对象保存为 RDS 文件(cds_comb.rds)。这样,可以在后续的分析中加载此对象,而不需要重新构建。


总结:

这段代码的核心步骤是从 Seurat 对象提取必要的数据,并将其转换为 monocle3 所需的 CellDataSet 格式,以便进行进一步的分析,如轨迹推断等。每一步都处理了不同的数据格式和数据结构,以确保可以顺利进行后续的单细胞分析。


monocle3核心函数

这段代码涉及了几个 monocle3 的核心函数,具体如下:

1. new_cell_data_set

cds <- new_cell_data_set(counts,
                         cell_metadata = cell.metadata,
                         gene_metadata = feature.metadata)
  • 功能new_cell_data_set 是创建 CellDataSet(CDS)对象的核心函数。CellDataSetmonocle3 中用于存储单细胞数据的主要数据结构,它包含了基因表达数据(counts 矩阵)、细胞元数据(cell.metadata)、基因元数据(feature.metadata)等信息。该对象将为后续的轨迹推断、降维分析等提供基础数据结构。

  • 输入

    • counts:基因表达计数矩阵。
    • cell_metadata:细胞的元数据(例如,细胞类型、实验条件等)。
    • gene_metadata:基因的元数据(例如,基因名称、注释等)。
  • preprocess_cds:用于对 CellDataSet 进行预处理(例如,标准化数据、选择高变基因等)。

  • align_cds:用于对齐不同样本或细胞群体的 CellDataSet,常见于多样本数据的整合。

  • reduce_dimension:用于降维,通常是主成分分析(PCA)或者其他降维方法。

  • plot_cells:用于可视化降维后的细胞群体,通常会使用 UMAP 或 t-SNE 等方法绘制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值