与其他单细胞分析工具包的接口
- 从Seurat或SingleCellExperiment对象创建CellChat对象
- 在单单元格对象之间转换(Seurat,SingleCellExperiment和andata对象)
- 根据从Seurat和Scanpy工具中提取的数据矩阵创建CellChat对象
- CellChat中需要的数据输入
- 资料格式
- 从Seurat V3对象中提取CellChat输入文件
- 从Seurat V2对象中提取CellChat输入文件
- 从Scanpy对象中提取CellChat输入文件
- 使用数据矩阵作为输入创建一个CellChat对象
- 将单元格信息添加到对象的元插槽中
- CellChat中需要的数据输入
从Seurat或SingleCellExperiment对象创建CellChat对象
从CellChat版本0.5.0开始,USERS可以从Seurat或SingleCellExperiment对象创建新的CellChat对象。。如果输入是Seurat或SingleCellExperiment对象,则默认情况下将使用该对象中的元数据,并且USER必须提供group.by
以定义单元格组。例如,group.by =“ ident”用于Seurat对象中的默认单元格标识。
请通过查阅文档中的示例以createCellChat
获取详细信息help(createCellChat)
。
注意:如果用户加载先前计算的CellChat对象(版本<0.5.0),请通过 updateCellChat
在单单元格对象之间转换(Seurat,SingleCellExperiment和andata对象)
有几种出色的工具可在Seurat对象,SingleCellExperiment对象和andata对象之间进行转换。这是两个示例:一个是Satija Lab的Seurat R软件包,另一个是Theis Lab的zellkonverter R软件包。
根据从Seurat和Scanpy工具中提取的数据矩阵创建CellChat对象
下面我们展示了如何从其他现有的单细胞分析工具包(包括Seurat和Scanpy)中将CellChat输入文件提取为数据矩阵。
CellChat中需要的数据输入
CellChat需要两个用户输入:一个是细胞的基因表达数据,另一个是用户分配的细胞标签(即基于标签的模式)或单细胞数据的低维表示形式(即无标签)模式)。对于后者,CellChat通过基于低维空间或伪时间轨迹空间中的单元格距离构建共享的邻居图来自动对单元格进行分组。
资料格式
对于基因表达数据矩阵,基因应在具有行名的行中以及单元格在具有名的列中。需要进行归一化的数据作为CellChat分析的输入,例如,库大小归一化,然后以伪计数1进行对数转换。如果用户提供了计数数据,我们将提供一个normalizeData
函数来计算库大小。
对于单元组信息,需要具有行名的数据框作为CellChat的输入。
从Seurat V3对象中提取CellChat输入文件
可以从Seurat对象获得归一化的计数数据和细胞组信息,方法是:
data.input <- GetAssayData(seurat_object, assay = "RNA", slot = "data") # normalized data matrix
labels <- Idents(seurat_object)
meta <- data.frame(group = labels, row.names = names(labels)) # create a dataframe of the cell labels
从Seurat V2对象中提取CellChat输入文件
可以从Seurat对象获得归一化的计数数据和细胞组信息,方法是:
data.input <- seurat_object@data # normalized data matrix
labels <- seurat_object@idents
meta <- data.frame(group = labels, row.names = names(labels)) # create a dataframe of the cell labels
从Scanpy对象中提取CellChat输入文件
anndata提供了一个python类,可用于存储单单元格数据。此数据格式还用于在scanpy软件包中进行存储。我们首先使用reticulate包将数据读入R中,以导入andata模块。
library(reticulate)
ad <- import("anndata", convert = FALSE)
ad_object <- ad$read_h5ad("scanpy_object.h5ad")
# access normalized data matrix
data.input <- t(py_to_r(ad_object$X))
rownames(data.input) <- rownames(py_to_r(ad_object$var))
colnames(data.input) <- rownames(py_to_r(ad_object$obs))
# access meta data
meta.data <- py_to_r(ad_object$obs)
meta <- meta.data
提取所需的CellChat输入文件后,然后创建一个CellChat对象并开始分析。
使用数据矩阵作为输入创建一个CellChat对象
cellchat <- createCellChat(object = data.input, meta = meta, group.by = "labels")
将单元格信息添加到对象的元插槽中
如果在创建CellChat对象时未添加单元格mata信息,则USERS也可以稍后使用添加该信息addMeta
,并使用设置默认单元格标识setIdent
。
cellchat <- addMeta(cellchat, meta = meta, meta.name = "labels")
cellchat <- setIdent(cellchat, ident.use = "labels") # set "labels" as default cell identity
levels(cellchat@idents) # show factor levels of the cell labels