可视化框架概述
CellChat提供四大类可视化工具:
层次图(Hierarchy plot)
圆形图(Circle plot)
弦图(Chord diagram)
气泡图(Bubble plot)
这些工具从不同角度展示细胞通讯网络,支持从整体通路到单个配体-受体对的多层次分析。
一、使用层次图、圆图或弦图进行可视化
这里我们以输入一条信号通路为例进行说明。所有显示出显著细胞通讯的信号通路都可以通过 cellchat@netP$pathways 来获取。
(首先借助 @ 操作符从 cellchat 这个 S4 对象中提取 netP 槽位的数据,接着使用 $ 操作符从 netP 所代表的数据里提取 pathways 元素)
1、选择要展示的信号通路
pathways.show <- c("CXCL")
定义字符向量pathways.show,其值为“CXCL”,在CellChat分析中,可能存在多个信号通路,但这里仅选取了CXCL信号通路用于后续的可视化分析。CXCL是一类趋化因子信号通路,在细胞迁移、免疫反应等生理过程中发挥着重要作用。
2、绘制层次图:
# Hierarchy plot
# Here we define `vertex.receive` so that the left portion of the hierarchy plot shows signaling to fibroblast and the right portion shows signaling to immune cells
vertex.receiver = seq(1,4) # a numeric vector.
netVisual_aggregate(cellchat, signaling = pathways.show, vertex.receiver = vertex.receiver)
seq(1, 4) 函数会生成一个从 1 到 4 的连续整数序列,这个序列被赋值给vertex.receiver。在CellChat的可视化中,vertex.receiver参数用于指定接收信号的细胞类型在图中的位置和分组。这里通过设置vertex.receiver,目的是让层次图的左侧部分展示向成纤维细胞(fibroblast)的信号传递,右侧部分展示向免疫细胞(immune cells)的信号传递。
netVisual_aggregate是CellChat包中的一个函数,用于对细胞间通讯结果进行聚合可视化。
cellchat:这是一个CellChat对象,它包含了细胞间通讯分析的所有结果,如细胞类型、信号通路强度等信息。
signaling = pathways.show:指定要可视化的信号通路,这里使用之前定义的pathways.show,即只对CXCL信号通路进行可视化。
vertex.receiver = vertex.receiver:传递前面定义的接收细胞类型的索引向量,以此控制层次图的布局。
绘制圆形图:
# Circle plot
par(mfrow=c(1,1))
netVisual_aggregate(cellchat, signaling = pathways.show, layout = "circle")
par函数用于设置图形参数,mfrow参数用于指定图形的布局方式。c(1, 1) 表示将图形布局设置为 1 行 1 列,即只显示一个图形。这一步通常是为了确保后续的圆形图能够单独显示,不受之前图形布局的影响。
再次调用netVisual_aggregate函数进行可视化,但这次设置layout = "circle",表示使用圆形布局来展示CXCL信号通路的细胞间通讯结果。圆形图可以更直观地展示细胞类型之间的相互通讯关系,每个细胞类型通常用一个节点表示,节点之间的连线表示细胞间的通讯信号
绘制和弦图:
# Chord diagram
par(mfrow=c(1,1))
netVisual_aggregate(cellchat, signaling = pathways.show, layout = "chord")
par 函数用于设置图形的参数,mfrow 用于指定图形的布局方式。c(1, 1) 表示将图形布局设置为 1 行 1 列,即只显示一个图形。这一步确保弦图会单独显示,不会受到之前图形布局的影响。
绘制热图:
# Heatmap
par(mfrow=c(1,1))
netVisual_heatmap(cellchat, signaling = pathways.show, color.heatmap = "Reds")
#> Do heatmap based on a single object
同样,这行代码将图形布局设置为 1 行 1 列,保证热图单独显示。
netVisual_heatmap 是 CellChat 包中专门用于绘制热图的函数,用于展示细胞间通讯的强度。
cellchat:依旧是包含细胞间通讯分析结果的 CellChat 对象。
signaling = pathways.show:指定要可视化的信号通路为 CXCL 信号通路。
color.heatmap = "Reds":设置热图的颜色方案为红色系。在热图中,不同的颜色深浅表示不同的通讯强度,红色系通常用于突出显示较强的通讯关系。
# Chord diagram
group.cellType <- c(rep("FIB", 4), rep("DC", 4), rep("TC", 4)) # grouping cell clusters into fibroblast, DC and TC cells
names(group.cellType) <- levels(cellchat@idents)
netVisual_chord_cell(cellchat, signaling = pathways.show, group = group.cellType, title.name = paste0(pathways.show, " signaling network"))
#> Plot the aggregated cell-cell communication network at the signaling pathway level
rep("FIB", 4) 表示重复字符串 "FIB" 4 次,同理,rep("DC", 4) 和 rep("TC", 4) 分别重复 "DC" 和 "TC" 4 次。
c(...) 函数将这些重复的字符串组合成一个向量。最终,group.cellType 向量包含了 12 个元素,前 4 个为&n