学习,记录,分享。
CellChat通过从图论、模式识别和流形学习中提取出的方法,能够定量测量复杂的细胞间通讯网络,帮助我们更好地解释这些相互作用关系,基于这些原理能够进行以下分析:
本篇学习的内容如下:
cellchat通过使用加权有向网络中的多种度量方法来计算通讯的可能性,最终推断出细胞通讯网络中的各种角色。这样有助于发现已有经验之外的上下游作用关系。
# 计算中心分数
cellchat <- netAnalysis_computeCentrality(cellchat,
slot.name = "netP")
netAnalysis_signalingRole_network(
cellchat,
signaling = "MHC-I", # 指定想要可视化的信号通路
width = 8,
height = 2.5,
font.size = 10
)
# 所有信号通路
gg1 <- netAnalysis_signalingRole_scatter(cellchat)
# 指定信号通路
gg2 <- netAnalysis_signalingRole_scatter(cellchat, signaling = c("MHC-I"))
gg1 + gg2
可以看到CD8-T是主要被调控的细胞。
# 所有信号通路
ht1 <- netAnalysis_signalingRole_heatmap(cellchat, pattern = "outgoing")
ht2 <- netAnalysis_signalingRole_heatmap(cellchat, pattern = "incoming")
ht1 + ht2
# 指定信号通路
ht3 <- netAnalysis_signalingRole_heatmap(cellchat, signaling = c("MHC-I", "MHC-II"), pattern = "outgoing")
ht4 <- netAnalysis_signalingRole_heatmap(cellchat, signaling = c("MHC-I", "MHC-II"), pattern = "incoming")
ht3 + ht4
cellchat应用模式识别方法来确定细胞通讯中的各种模式,并根据通讯模式进行聚类,这样就可以看到各种细胞在通讯中的主要通讯模式及相似性,有助于理解这些通路之间的关系和相互作用。
需要用到R包NMF
来计算纳入的模式数量和ggalluvial
进行可视化。
library(NMF)
library(ggalluvial
# 确定流出信号的模式数量
selectK(cellchat, pattern = "outgoing")
# 根据上图选择图中开始下降之前的数作为下面函数的参数k的值
cellchat <- identifyCommunicationPatterns(cellchat,
k = 2, #根据selectK图形确定具体K值
pattern = "outgoing"
)
# river plot
netAnalysis_river(cellchat, pattern = "outgoing")
# dot plot
netAnalysis_dot(cellchat, pattern = "outgoing")
这里选择了2
# 确定流入信号的模式数量
selectK(cellchat, pattern = "incoming")
cellchat <- identifyCommunicationPatterns(cellchat,
k = 3, #根据selectK图形确定具体K值
pattern = "incoming"
)
# river plot
netAnalysis_river(cellchat, pattern = "incoming")
# dot plot
netAnalysis_dot(cellchat, pattern = "incoming")
这里k值选4也可以
cellchat能够鉴别具有显著意义的信号通路间的相似性,主要基于功能相似性和结构相似性,可以从功能和拓扑学的角度更好地理解信号通路的特征。
在这一步如果没有安装过umap-learn
的话会提示安装,注意,这个是python的包,可在终端使用以下代码安装:
pip install umap-learn -i https://pypi.tuna.tsinghua.edu.cn/simple
reticulate
的使用环境reticulate::use_condaenv(condaenv = 'r4') #将参数'r4'换成你自己的环境名
接着开始运行:
cellchat <- computeNetSimilarity(cellchat, type = "functional")
cellchat <- netEmbedding(cellchat, type = "functional")
cellchat <- netClustering(cellchat, type = "functional", do.parallel = F)
netVisual_embedding(cellchat, type = "functional", label.size = 3.5)
也可分组展示:
# 分组展示
netVisual_embeddingZoomIn(cellchat, type = "functional", nCol = 2)
cellchat <- computeNetSimilarity(cellchat, type = "structural")
cellchat <- netEmbedding(cellchat, type = "structural")
cellchat <- netClustering(cellchat, type = "structural", do.parallel = F)
netVisual_embedding(cellchat, type = "structural", label.size = 3.5)
# 分组展示
netVisual_embeddingZoomIn(cellchat, type = "structural", nCol = 2)
到这里单数据集的cellchat细胞通讯分析就学习完了。
参考资料:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。