前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cellchat-(3)细胞通讯网络的系统分析

cellchat-(3)细胞通讯网络的系统分析

原创
作者头像
R小白
发布2023-12-16 23:53:26
5150
发布2023-12-16 23:53:26
举报
文章被收录于专栏:生信学习生信学习

学习,记录,分享。

CellChat通过从图论、模式识别和流形学习中提取出的方法,能够定量测量复杂的细胞间通讯网络,帮助我们更好地解释这些相互作用关系,基于这些原理能够进行以下分析:

  • 利用网络分析的中心性度量,CellChat能够确定给定信号网络中的主要的信号源、靶标,以及调节者和影响者。
  • 运用模式识别方法,CellChat可以预测特定细胞类型的关键流出和流入信号,以及不同类型细胞之间的协调响应。
  • 基于相似性度量,并从功能和拓扑两个角度进行流形学习,CellChat可以将信号通路进行归纳分组。

本篇学习的内容如下:

  • 分析各种细胞在信号通路中所处的角色及主要的信号源
  • 通讯模式及多种细胞间的信号通路协调关系分析
  • 基于流形和分类学习方法进行信号通路分组

1. 分析各种细胞在信号通路中所处的角色及主要的信号源

cellchat通过使用加权有向网络中的多种度量方法来计算通讯的可能性,最终推断出细胞通讯网络中的各种角色。这样有助于发现已有经验之外的上下游作用关系。

1.1 计算网络中心性分数和可视化

代码语言:javascript
复制
# 计算中心分数
cellchat <- netAnalysis_computeCentrality(cellchat,
                                          slot.name = "netP")
netAnalysis_signalingRole_network(
  cellchat,
  signaling = "MHC-I", # 指定想要可视化的信号通路
  width = 8,
  height = 2.5,
  font.size = 10
)

1.2 主要信号源和靶标的可视化

代码语言:javascript
复制
# 所有信号通路
gg1 <- netAnalysis_signalingRole_scatter(cellchat)
# 指定信号通路
gg2 <- netAnalysis_signalingRole_scatter(cellchat, signaling = c("MHC-I"))
gg1 + gg2

可以看到CD8-T是主要被调控的细胞。

1.3 查看各群细胞的在信号流出或流入中的贡献

代码语言:javascript
复制
# 所有信号通路
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

2. 通讯模式及多种细胞间的信号通路协调关系分析

cellchat应用模式识别方法来确定细胞通讯中的各种模式,并根据通讯模式进行聚类,这样就可以看到各种细胞在通讯中的主要通讯模式及相似性,有助于理解这些通路之间的关系和相互作用。

2.1 分泌细胞的信号流出通讯模式的鉴定和可视化

需要用到R包NMF来计算纳入的模式数量和ggalluvial进行可视化。

代码语言:javascript
复制
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

图片
图片
图片
图片
图片
图片

2.2 靶细胞的信号流入通讯模式的鉴定和可视化

代码语言:javascript
复制
# 确定流入信号的模式数量
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也可以

3. 基于流形和分类学习方法进行信号通路分组

cellchat能够鉴别具有显著意义的信号通路间的相似性,主要基于功能相似性和结构相似性,可以从功能和拓扑学的角度更好地理解信号通路的特征。

  • 功能相似性:高度的功能相似性意味着主要的信号发送者和接收者也具有相似性,这可以被看作是两个信号通路或配体受体对发挥的作用是相似或者冗余的。因此功能相似性分析需要两组数据间具有相同的细胞类型。
  • 结构相似性:用于比较信号网络结构,是基于网络层面的,不考虑信号的发送者和接收者间的相似性

3.1 基于功能相似性进行信号分组

在这一步如果没有安装过umap-learn的话会提示安装,注意,这个是python的包,可在终端使用以下代码安装:

代码语言:javascript
复制
pip install umap-learn  -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 注意,如果R是安装在conda环境中,这一步需要重启R后直接运行以下代码设置reticulate的使用环境
代码语言:javascript
复制
reticulate::use_condaenv(condaenv = 'r4') #将参数'r4'换成你自己的环境名

接着开始运行:

代码语言:javascript
复制
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)
图片
图片

也可分组展示:

代码语言:javascript
复制
# 分组展示
netVisual_embeddingZoomIn(cellchat, type = "functional", nCol = 2)
图片
图片

3.2 基于结构相似性进行信号分组

代码语言:javascript
复制
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细胞通讯分析就学习完了。

参考资料:

  • cellchat官方教程(https://github.com/sqjin/CellChat)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 分析各种细胞在信号通路中所处的角色及主要的信号源
    • 1.1 计算网络中心性分数和可视化
      • 1.2 主要信号源和靶标的可视化
        • 1.3 查看各群细胞的在信号流出或流入中的贡献
        • 2. 通讯模式及多种细胞间的信号通路协调关系分析
          • 2.1 分泌细胞的信号流出通讯模式的鉴定和可视化
            • 2.2 靶细胞的信号流入通讯模式的鉴定和可视化
            • 3. 基于流形和分类学习方法进行信号通路分组
              • 3.1 基于功能相似性进行信号分组
                • 3.2 基于结构相似性进行信号分组
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档