④-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)

相关推荐
2303_Alpha2 天前
SpringBoot
笔记·学习
萘柰奈2 天前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽2 天前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫2 天前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
向阳花开_miemie2 天前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿2 天前
51单片机学习
嵌入式硬件·学习·51单片机
c0d1ng2 天前
量子计算学习(第十四周周报)
学习·量子计算
Hello_Embed2 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中2 天前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Magnetic_h3 天前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa