④-2单细胞学习-cellchat单数据代码补充版(通讯网络)

目录

通讯网络系统分析

①社会网络分析

1,计算每个细胞群的网络中心性指标

2,识别细胞的信号流模式

②非负矩阵分解(NMF)识别细胞的通讯模式

1,信号输出细胞的模式识别

2,信号输入细胞的模式识别

信号网络的流行学习与分类

①功能相似性

②结构相似性

为了便于解释复杂的细胞间通信网络,CellChat 通过从图论、模式识别和流形学习中抽象出来的方法对网络进行定量测量。

  • CellChat可以使用网络分析中的中心性度量来确定给定信号网络内的主要信号源和目标以及中介和影响者
  • CellChat可以利用模式识别方法预测特定细胞类型的关键传入和传出信号以及不同细胞类型之间的协调反应。
  • CellChat可以通过定义相似性度量并从功能和拓扑角度执行多种学习来对信号通路进行分组。
  • CellChat可以通过多个网络的联合流形学习来描绘保守的和特定于上下文的信号通路。

关于cellchat的流程图在进行细胞交互分析的时候,不同分组的样本尽量不要一起进行分析,想要一起分析的时候需要保证不同分组间的细胞种类一致。同一分组的不同生物学重复可以一起分析。

单细胞分析之细胞交互-3:CellChat - 简书 (jianshu.com)


通讯网络系统分析
①社会网络分析
1,计算每个细胞群的网络中心性指标
复制代码
#数据载入
rm(list=ls())
library(CellChat)
library(patchwork)
library(ggplot2)
library(Seurat)
library(ggalluvial)#绘制桑基图
library(expm)
library(sna)
library(NMF)
options(stringsAsFactors = FALSE)##输入数据不自动转换成因子(防止数据格式错误)

load('humanSkin_CellChat.Rdata')#分析后的cellchat对象

通过计算每个细胞群的网络中心性指标,识别每类细胞在信号通路中的角色/作用C(发送者、接收者、调解者和影响者)

复制代码
cellchat@netP$pathways  #查看都有哪些信号通路
pathways.show <- c("GALECTIN")##选择其中一个信号通路,比如说GALECTIN
#计算网络中心性权重:识别每类细胞在信号通路中的角色/作用
cellchat <- netAnalysis_computeCentrality(cellchat, 
                                          slot.name = "netP")
#pdf("GALECTIN通路网络中心性权重.pdf",width = 8,height = 4)##一定添加大小
netAnalysis_signalingRole_network(cellchat, signaling = pathways.show, 
                                  width = 15, height = 6, font.size = 10)
#dev.off()
2,识别细胞的信号流模式

CellChat分析哪些信号对某些细胞组的传出或传入信号贡献最大的问题。

复制代码
ht1 <- netAnalysis_signalingRole_heatmap(cellchat, pattern = "outgoing", font.size = 5)
ht2 <- netAnalysis_signalingRole_heatmap(cellchat, pattern = "incoming", font.size = 5)
ht1 + ht2

上图横轴是细胞类型,纵轴是pathway。左图是各个细胞类型中各个通路发出信号的强度,由图是各个细胞类型中各个通路接受信号的强度


②非负矩阵分解(NMF)识别细胞的通讯模式
1,信号输出细胞的模式识别

除了探索单个通路的详细通信之外,一个重要的问题是多个细胞群和信号通路如何协调发挥作用。CellChat 采用模式识别方法来识别全局通信模式。 识别和可视化分泌细胞的传出通信模式 (pattern) 传出模式揭示了发送细胞(即作为信号源的细胞)如何相互协调,以及它们如何与某些信号通路协调以驱动通信。

计算分解成几个因子(pattern)比较合适(这一步运行比较慢 。在使用NMF对细胞进行亚群细分时,如果不测试的话,最好选择比细胞类型多一点的值。

复制代码
#非负矩阵分解(NMF)识别细胞的通讯模式
selectK(cellchat, pattern = "outgoing")

根据坡度图选择合适的pattern数量

复制代码
nPatterns = 3
cellchat <- identifyCommunicationPatterns(cellchat, pattern = "outgoing",
                                          k = nPatterns)

左边是细胞模式,右边是信号通路模式

河流图

复制代码
#河流图
netAnalysis_river(cellchat, pattern = "outgoing")

气泡图

复制代码
#气泡图
netAnalysis_dot(cellchat, pattern = "outgoing")
2,信号输入细胞的模式识别
复制代码
#输入模式的识别
selectK(cellchat, pattern = "incoming") 

热图

复制代码
#热图
nPatterns = 8
cellchat <- identifyCommunicationPatterns(cellchat, pattern = "incoming", k = nPatterns, 
                                          width = 5, height = 9, font.size = 6)
复制代码
#桑基图
netAnalysis_river(cellchat, pattern = "incoming")
复制代码
#气泡图
netAnalysis_dot(cellchat, pattern = "incoming")
信号网络的流行学习与分类
功能相似性
复制代码
cellchat <- computeNetSimilarity(cellchat, type = "functional")
cellchat <- netEmbedding(cellchat, type = "functional")
#> Manifold learning of the signaling networks for a single dataset
cellchat <- netClustering(cellchat, type = "functional")
#> Classification learning of the signaling networks for a single dataset
# Visualization in 2D-space
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")
#> Manifold learning of the signaling networks for a single dataset
cellchat <- netClustering(cellchat, type = "structural")
#> Classification learning of the signaling networks for a single dataset
# Visualization in 2D-space
netVisual_embedding(cellchat, type = "structural", label.size = 3.5)

参考:

1:CellChat细胞通讯分析(中)--实操代码(单个样本) - 知乎 (zhihu.com)

2:单细胞分析之细胞交互-3:CellChat - 简书 (jianshu.com)

相关推荐
柴薪之王、睥睨众生28 分钟前
(自用)Java学习-5.8(总结,springboot)
java·开发语言·spring boot·学习·mybatis
是孑然呀7 小时前
【小记】word批量生成准考证
笔记·学习·excel
ll7788119 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
LuckyLay11 小时前
React百日学习计划——Deepseek版
前端·学习·react.js
安和昂11 小时前
【iOS】SDWebImage源码学习
学习·ios
菜一头包11 小时前
c++ std库中的文件操作学习笔记
c++·笔记·学习
猴子请来的逗比48911 小时前
tomcat搭建内网论坛
学习·tomcat
belldeep11 小时前
如何阅读、学习 Git 核心源代码 ?
git·学习·源代码
Kazefuku11 小时前
python文件打包成exe文件
python·学习
threelab12 小时前
08.webgl_buffergeometry_attributes_none ,three官方示例+编辑器+AI快速学习
学习