得到cellchat对象后的可视化分析#
需要的包#
library(CellChat)
library(zellkonverter)
library(reticulate)
library(SingleCellExperiment)
library(patchwork)
library(presto)
library(Matrix)
library(future)
library(NMF)
读取和合并数据#
Hot_cell = readRDS("/share/home/sunLab/yanghc/project/TNBC_scRNA/GSE246613/cellchat/Hot_2.rds")
nonHot_cell = readRDS("/share/home/sunLab/yanghc/project/TNBC_scRNA/GSE246613/cellchat/nonHot_2.rds")
# 1. 合并两个 CellChat 对象
object.list <- list(Hot = Hot_cell, nonHot = nonHot_cell)
cellchat <- mergeCellChat(object.list, add.names = names(object.list)) # 合并后自动在 cellchat@net 等 slot 中保存两个数据集的信息 :contentReference[oaicite:0]{index=0}
分组间的dotplot可视化#
这里注意,netVisual_bubble()函数中有两个参数,第一个是comparison = c(1, 2)它会决定数据集的先后位置,例如在上一步的合并中 list(Hot = Hot_cell, nonHot = nonHot_cell)这样代表,Hot在1这个位置,nonHot在2这个位置。此时使用第二个参数max.dataset = 1,就会显示在Hot组中更强的信号,反之=2的话则显示在nonHot组中更强的信号也就是上调信息。
对于不同的对比画图需求,只需要改动第二个参数max.dataset = 1即可。如果同时改动则等于没有改动。总结如下:
-
当你写 comparison = c(1, 2) 时,第 1 个子数据集是 Hot,第 2 个是 nonHot;此时 max.dataset = 2 就会高亮 nonHot 组中更强的信号。
-
如果你改成 comparison = c(2, 1),那在这一对比较里第 1 个就变成 nonHot,第 2 个变成 Hot;这时候再用 max.dataset = 2,就会高亮 Hot 组中更强的信号。