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

相关推荐
Chunyyyen1 天前
【第十八周】自然语言处理的学习笔记03
笔记·学习·自然语言处理
心.c1 天前
如何学习Lodash源码?
前端·javascript·学习
FserSuN1 天前
构建基于大语言模型的智能数据可视化分析工具的学习总结
学习·信息可视化·语言模型
im_AMBER1 天前
React 02
前端·笔记·学习·react.js·前端框架
Nebula_g1 天前
Java哈希表入门详解(Hash)
java·开发语言·学习·算法·哈希算法·初学者
励志不掉头发的内向程序员1 天前
【STL库】哈希表的原理 | 哈希表模拟实现
开发语言·c++·学习·散列表
Small___ming1 天前
【Linux基础学习】Linux Ubuntu 权限管理:从入门到精通
linux·学习·ubuntu
ZIM学编程1 天前
把握鸿蒙生态红利:HarmonyOS 应用开发学习路径与实战课程推荐
学习·华为·harmonyos
四谎真好看1 天前
Java 黑马程序员学习笔记(进阶篇19)
java·笔记·学习·学习笔记
im_AMBER1 天前
数据结构 06 线性结构
数据结构·学习·算法