④-1单细胞学习-cellchat单数据代码补充版

news2025/4/27 0:14:07

目录

1,数据输入及处理

①载入包和数据

②CellChat输入数据准备

③构建CellChat对象

④数据预处理

2,细胞通讯预测

①计算细胞通讯概率

②提取配受体对细胞通讯结果表

③提取信号通路水平的细胞通讯表

④细胞互作关系可视化

1)细胞亚群间配受体数目网络图

2)细胞亚群间配受体概率/强度网络图

3)每个细胞亚群的配受体通讯概率进行单独展示

​编辑4)数量和强度弦图合并

3,信号通路水平的细胞通讯分析

4,信号通路相关配受体对水平的细胞通讯分析

5,多个配受体对/信号通路水平介导的细胞通讯可视化

①指定信号通路

②参与目标信号通路的基因在各细胞亚群的表达分布展示

③气泡图

1,数据输入及处理
①载入包和数据

官方学习:focuslyj/CellChat - 码云 - 开源中国 (gitee.com)

这里提供的应该是counts data数据

rm(list=ls())
library(CellChat)
library(patchwork)
library(ggplot2)
library(Seurat)
library(ggalluvial)#绘制桑基图
library(expm)
library(sna)
library(NMF)
options(stringsAsFactors = FALSE)##输入数据不自动转换成因子(防止数据格式错误)
load("data_humanSkin.Rdata")#数据加载:这里是count data数据
CellChat输入数据准备
#需标准化的基因表达量矩阵和细胞分组信息文件
#不同输入格式处理方式不同
data.input = data_humanSkin$data#需标准化的基因表达量矩阵和细胞分组信息文件
meta = data_humanSkin$meta
data.input[1:6,1:3]#表达count
head(meta);table(meta$condition) #含normal(NL)和diseases(LS)
cell.use = rownames(meta)[meta$condition == 'LS'] #提取LS的细胞名称
data.input = data.input[, cell.use]#提取LS表达矩阵
meta = meta[cell.use, ]#提取LS细胞信息
identical(rownames(meta),colnames(data.input)) #检查矩阵列名和分组文件行名是否一致
unique(meta$labels) #检查细胞亚群标签类型
构建CellChat对象
#接下来构建CellChat对象
cellchat <- createCellChat(object = data.input, #支持normalized表达矩阵,Seurat对象,和SingleCellExperiment对象
                           meta = meta, #meta文件
                           group.by = 'labels') #meta中的细胞分类列
#cellchat <- addMeta(cellchat, meta = meta)#创建CellChat对象未 cellmeta信息时添加信息
cellchat <- setIdent(cellchat, ident.use = 'labels') #将label设置为显示的默认顺序
levels(cellchat@idents) #查看celltype和factor顺序
table(cellchat@idents) #每个celltype中的细胞数

#设置配受体数据库(CellChatDB):
CellChatDB <- CellChatDB.human #(CellChatDB.human) (CellChatDB.mouse)
showDatabaseCategory(CellChatDB) #查看描述该数据库组成的饼状图
dplyr::glimpse(CellChatDB$interaction) #查看数据库结构

#直接使用CellChatDB全库进行细胞通讯分析:
##CellChatDB.use <- CellChatDB # simply use the default CellChatDB
#选择数据库中特定子集进行细胞通讯分析:
CellChatDB.use <- subsetDB(CellChatDB, 
                           search = 'Secreted Signaling') #可选择Secreted Signaling、ECM-Receptor或Cell-Cell Contact
cellchat@DB <- CellChatDB.use#将数据库添加到CellChat对象中(DB)
④数据预处理
#数据预处理;信号基因的表达矩阵子集化,节省计算成本
cellchat <- subsetData(cellchat) #必选的step,取上一步CellChatDB.use中信号基因的表达矩阵子集,赋值到cellchat@data.Signaling
#future::plan('multiprocess', workers = 4) # do parallel (可以不用选择平行计算)
#鉴定与每个细胞亚群相关的过表达信号基因:基于表达该基因的细胞比例、差异倍数和p值判定。
cellchat <- identifyOverExpressedGenes(cellchat,
                                       only.pos = TRUE, #仅返回positive markers
                                       thresh.pc = 0, #细胞比例阈值
                                       thresh.fc = 0, #差异倍数
                                       thresh.p = 0.05) #P-Value
#计算结果赋值到cellchat@var.features:
head(cellchat@var.features$features) #过表达信号基因名
head(cellchat@var.features$features.info) #差异计算结果表
#识别过表达基因配体-受体互作:
cellchat <- identifyOverExpressedInteractions(cellchat)
head(cellchat@LR$LRsig) #计算结果赋值位置
#将基因表达数据映射到PPI网络(可跳过):
cellchat <- projectData(cellchat, PPI.human) #返回结果:cellchat@data.project
2,细胞通讯预测
①计算细胞通讯概率
#细胞通讯预测##############################################
cellchat <- computeCommunProb(cellchat, raw.use = TRUE) #返回结果:cellchat@options$parameter
##默认使用原始表达数据(cellchat@data.Signaling),若想使用上一步PPI矫正数据,设置raw.use = TALSE
cellchat <- filterCommunication(cellchat, min.cells = 10) #细胞通讯过滤(设置每个亚群中进行细胞间通讯所需的最小细胞数)
提取配受体对细胞通讯结果表
#提取配受体对细胞通讯结果表:
df.net <- subsetCommunication(cellchat, slot.name = 'net')
head(df.net) #得到配受体对细胞通讯结果表

#或访问其它感兴趣/特定的细胞通讯结果:
df.net1 <- subsetCommunication(cellchat,
                               sources.use = c('LC'),
                               targets.use = c('FBN1+ FIB')) #访问特定细胞对子集
head(df.net1)

df.net2 <- subsetCommunication(cellchat, signaling = c('CD40')) #访问特定信号通路子集
head(df.net2)
提取信号通路水平的细胞通讯表

提取配受体对细胞通讯结果表:subsetCommunication函数

提取信号通路水平的细胞通讯表:computeCommunProbPathway函数

#提取信号通路水平的细胞通讯表:
cellchat <- computeCommunProbPathway(cellchat) #计算信号通路水平上的通讯概率
df.netp <- subsetCommunication(cellchat, slot.name = 'netP') #得到信号通路水平细胞通讯表
head(df.netp)
细胞互作关系可视化
1)细胞亚群间配受体数目网络图
cellchat <- aggregateNet(cellchat)#计算细胞对间通讯的数量和概率强度
#不同细胞亚群间的互作数量与概率/强度可视化:
groupSize <- as.numeric(table(cellchat@idents))##细胞亚群间配受体数目网络图:
par(mfrow = c(1,1), xpd = TRUE)
netVisual_circle(cellchat@net$count,
                 vertex.weight = groupSize,
                 weight.scale = T,
                 label.edge = F,
                 title.name = 'Number of interactions')

细胞通讯| 02.CellChat基础分析教程_哔哩哔哩_bilibili

2)细胞亚群间配受体概率/强度网络图
##细胞亚群间配受体概率/强度网络图:
par(mfrow = c(1,1), xpd = TRUE)
netVisual_circle(cellchat@net$weight,
                 vertex.weight = groupSize,
                 weight.scale = T,
                 label.edge= F,
                 title.name = 'Interaction weights/strength')

3)每个细胞亚群的配受体通讯概率进行单独展示

这里需要注意R绘图画板范围,可以将前面的绘图进行保存和devoff后再进行作图

#检查单个细胞亚群的互作信号强度;每个细胞进行单独展示##
mat <- cellchat@net$weight
par(mfrow = c(3,4), xpd = TRUE)
for (i in 1:nrow(mat)) {
  mat2 <- matrix(0, nrow = nrow(mat), ncol = ncol(mat), dimnames = dimnames(mat))
  mat2[i, ] <- mat[i, ]
  netVisual_circle(mat2, vertex.weight = groupSize, weight.scale = T, edge.weight.max = max(mat), title.name = rownames(mat)[i])
}
4)数量和强度弦图合并
#数量和强度弦图合并
par(mfrow = c(1,2), xpd = TRUE)
netVisual_circle(cellchat@net$count,
                 vertex.weight = groupSize,
                 weight.scale = T,
                 label.edge = F,
                 title.name = 'Number of interactions')
netVisual_circle(cellchat@net$weight,
                 vertex.weight = groupSize,
                 weight.scale = T,
                 label.edge= F,
                 title.name = 'Interaction weights/strength')

#保存cellchat对象:
save(cellchat, groupSize, file = c('humanSkin_CellChat.Rdata'))

3,信号通路水平的细胞通讯分析
cellchat@netP$pathways##信号通路查看
pathways.show <- c('GALECTIN')##以'GALECTIN'信号通路展示为例
#层级图(Hierarchy plot)绘制
levels(cellchat@idents)#查看细胞亚群及factor顺序:
#选择其中感兴趣的细胞亚群:
vertex.receiver = c(3,8,9,10)#为画图第一列的source列
par(mfrow = c(1,1))
netVisual_aggregate(cellchat,
                    layout = c('hierarchy'), #"circle", "hierarchy", "chord"
                    signaling = pathways.show,
                    vertex.receiver = vertex.receiver)#选择展示的通路

别的图

par(mfrow = c(1,1))#展示网络图
netVisual_aggregate(cellchat,
                    layout = c('circle'),
                    signaling = pathways.show)
par(mfrow=c(1,1))#展示弦图
netVisual_aggregate(cellchat,
                    layout = c('chord'),
                    signaling = pathways.show)
par(mfrow=c(1,1))#展示热图
netVisual_heatmap(cellchat,
                  signaling = pathways.show,
                  color.heatmap = c("white", "#b2182b"))

4,信号通路相关配受体对水平的细胞通讯分析
netAnalysis_contribution(cellchat, 
                         signaling = pathways.show) #配受体对贡献条形图
pairLR.CXCL <- extractEnrichedLR(cellchat,  #提取细胞对
                                 signaling = pathways.show,
                                 geneLR.return = FALSE)
LR.show <- pairLR.CXCL[1,] #以贡献度top1的配受体对为例
pairLR.CXCL; LR.show

别的图

netVisual_individual(cellchat,#Hierarchy plot:
                     layout = c('hierarchy'),
                     signaling = pathways.show, #目标信号通路
                     pairLR.use = LR.show, #目标配受体对
                     vertex.receiver = vertex.receiver) #感兴趣的细胞亚群
#Circle plot:
netVisual_individual(cellchat,
                     layout = c('circle'),
                     signaling = pathways.show,
                     pairLR.use = LR.show)
#Chord diagram:
netVisual_individual(cellchat,
                     layout = c('chord'),
                     signaling = pathways.show,
                     pairLR.use = LR.show)

5,多个配受体对/信号通路水平介导的细胞通讯可视化
指定信号通路
多个配受体对/信号通路水平介导的细胞通讯可视化######
levels(cellchat@idents)#指定信号通路
netVisual_bubble(cellchat,
                 sources.use = 4,
                 targets.use = c(5:11),
                 signaling = c("CCL","CXCL"), #指定CCL和CXCL两个信号通路
                 remove.isolate = FALSE)
#指定配受体对:
pairLR.use <- extractEnrichedLR(cellchat, 
                                signaling = c("CCL","CXCL","FGF")) #确定在目标信号通路中有重要作用的配受体对
pairLR.use
netVisual_bubble(cellchat,
                 sources.use = 4,
                 targets.use = c(5:11),
                 pairLR.use = pairLR.use,#指定的受体对
                 remove.isolate = TRUE)

②参与目标信号通路的基因在各细胞亚群的表达分布展示
#参与目标信号通路的基因在各细胞亚群的表达分布展示:
plotGeneExpression(cellchat, signaling = 'GALECTIN', 
                   type = 'violin') #小提琴图

③气泡图
plotGeneExpression(cellchat, 
                   signaling = 'GALECTIN', type = 'dot', color.use = c("white", "#b2182b")) #气泡图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1806349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器部署spring项目jar包使用bat文件,省略每次输入java -jar了

echo off set pathC:\Program Files\Java\jre1.8.0_191\bin START "YiXiangZhengHe-8516" "%path%/java" -Xdebug -jar -Dspring.profiles.activeprod -Dserver.port8516 YiXiangZhengHe-0.0.1-SNAPSHOT.jar 将set path后面改成jre的bin文件夹 START 后…

数据:人工智能的基石 | Scale AI 创始人兼 CEO 亚历山大·王的创业故事与行业洞见

引言 在人工智能领域&#xff0c;数据被誉为“新石油”&#xff0c;其重要性不言而喻。随着GPT-4的问世&#xff0c;AI技术迎来了新的浪潮。众多年轻创业者纷纷投身这一领域&#xff0c;Scale AI的创始人兼CEO亚历山大王&#xff08;Alexander Wang&#xff09;就是其中的佼佼…

推荐4个好用有趣的软件

MyComic——漫画聚合软件 MyComic是一款界面简洁、分类详尽的漫画阅读软件&#xff0c;专为动漫爱好者设计。它提供了丰富的高清漫画资源&#xff0c;支持在线免费阅读&#xff0c;并且可以一键下载到书架&#xff0c;方便随时离线观看&#xff0c;节省流量。用户可以轻松找到喜…

5分钟快速带了解fl studio21破解汉化版安装激活指南

随着数字音乐制作的快速发展&#xff0c;越来越多的音乐制作软件涌现出来&#xff0c;而FL Studio无疑是其中的佼佼者。作为一款功能强大、易于上手的音乐制作软件&#xff0c;FL Studio V21中文版在继承了前代版本优秀基因的基础上&#xff0c;进一步提升了用户体验&#xff0…

电脑回收站清空了怎么恢复回来?分享四个好用数据恢复方法

电脑回收站清空了还能恢复回来吗&#xff1f;在使用电脑过程中&#xff0c;很多小伙伴都不重视电脑的回收站,&#xff0c;有用的没用的文件都往里堆积。等空间不够的时候就去一股脑清空回收站。可有时候会发现自己还需要的文件在回收站里&#xff0c;可回收站已经被清空了……那…

IC元器件

1.电阻&#xff1a; 电阻的作用&#xff1a; 1.与负载串联&#xff1a;做限流分压 2.电阻并联&#xff1a;将小功率电阻并联成大功率&#xff0c;防烧毁 2.电容&#xff1a; 电容就是两块导体&#xff0b;中间的绝缘材料&#xff08;相当于两个人坐在一起加上中间的空…

基于vue的音乐播放器的设计与实现(论文+源码)_kaic

摘 要 当下&#xff0c;如果还依然使用纸质文档来记录并且管理相关信息&#xff0c;可能会出现很多问题&#xff0c;比如原始文件的丢失&#xff0c;因为采用纸质文档&#xff0c;很容易受潮或者怕火&#xff0c;不容易备份&#xff0c;需要花费大量的人员和资金来管理用纸质文…

【Apache Doris】周FAQ集锦:第 5 期

【Apache Doris】周FAQ集锦&#xff1a;第 5 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

Python第二语言(六、Python异常)

目录 1. 捕获异常&#xff08;try: except: else: finally:&#xff09; 1.1 概念 1.2 基础语法&#xff08;try&#xff1a; except&#xff1a;&#xff09; 1.3 捕获异常&#xff08;异常也有类型&#xff09; 1.4 捕获多个异常&#xff08;try&#xff1a;except(Name…

详解 Flink 的 ProcessFunction API

一、Flink 不同级别的 API Flink 拥有易于使用的不同级别分层 API 使得它是一个非常易于开发的框架最底层的 API 仅仅提供了有状态流处理&#xff0c;它将处理函数&#xff08;Process Function &#xff09;嵌入到了 DataStream API 中。底层处理函数&#xff08;Process Func…

Flutter项目开发模版,开箱即用

前言 当前案例 Flutter SDK版本&#xff1a;3.22.2 每当我们开始一个新项目&#xff0c;都会 引入常用库、封装工具类&#xff0c;配置环境等等&#xff0c;我参考了一些文档&#xff0c;将这些内容整合、简单修改、二次封装&#xff0c;得到了一个开箱即用的Flutter开发模版…

高速USB转串口芯片CH343

CH343封装 截止目前&#xff0c;主要封装有 SOP16: CH343G QFN16: CH343P ESSOP10: CH343K,截止24年6月未生产 CH343串口速度 最高串口速度&#xff1a; 6Mbps,比CH340的2M&#xff0c;快3倍 1、概述 参考版本&#xff1a;1E CH343 是一个 USB 总线的转接芯片&#xff0c;…

【MySQL】服务器配置和管理

本文使用的MySQL版本是8.0 MySQL服务器介绍 MySQL服务器通常说的是mysqld程序。 mysqld 是 MySQL 数据库服务器的核心程序&#xff0c;负责处理客户端的请求、管理数据库和执行数据库操作。管理员可以通过配置文件和各种工具来管理和监控 mysqld 服务器的运行 官方文档&…

Tensorflow入门实战 P03-天气识别

目录 1、完整代码 2、运行结果 2.1 查看20张图片 2.2 程序运行 2.3 运行结果 3、小结 ① 代码运行过程中有报错&#xff1a; ② 修改代码如下&#xff1a; ③ 分析原因&#xff1a; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&…

屏幕空间环境光遮蔽(SSAO)在AI绘画中的作用

引言&#xff1a; 随着人工智能技术的不断发展&#xff0c;AI绘画已经逐渐走进了人们的视野。作为一种新兴的艺术形式&#xff0c;AI绘画通过算法和模型来生成具有艺术感的图像。在这个过程中&#xff0c;屏幕空间环境光遮蔽&#xff08;SSAO&#xff09;技术发挥着重要作用。本…

英伟达的GPU(4)

更第四篇&#xff0c;上周有点私事&#xff0c;恢复更新 上次的文章 英伟达的GPU(3) (qq.com) 书接前文&#xff0c;我们上章说要更新GPU的内存机制&#xff0c;本次就讲点这个 先做个定义&#xff0c;我们说内存&#xff08;显存&#xff09;&#xff0c;也分物理内存&#…

【目标跟踪网络训练 Market-1501 数据集】DeepSort 训练自己的跟踪网络模型

前言 Deepsort之所以可以大量避免IDSwitch&#xff0c;是因为Deepsort算法中特征提取网络可以将目标检测框中的特征提取出来并保存&#xff0c;在目标被遮挡后又从新出现后&#xff0c;利用前后的特征对比可以将遮挡的后又出现的目标和遮挡之前的追踪的目标重新找到&#xff0…

【BUG】已解决:ModuleNotFoundError: No module named ‘transformers‘

已解决&#xff1a;ModuleNotFoundError: No module named ‘transformers‘ 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司…

360数字安全:2024年4月勒索软件流行态势分析报告

勒索软件传播至今&#xff0c;360 反勒索服务已累计接收到数万勒索软件感染求助。随着新型勒索软件的快速蔓延&#xff0c;企业数据泄露风险不断上升&#xff0c;勒索金额在数百万到近亿美元的勒索案件不断出现。勒索软件给企业和个人带来的影响范围越来越广&#xff0c;危害性…

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro&#xff0c;香橙派联合华为昇腾打造的一款AI推理开发板评测活动&#xff0c;以前使用树莓派Raspberry Pi4B 8G版本&#xff0c;这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…