愿武艺晴小朋友一定得每天都开心
在细胞通讯的领域内有cellphoneDB、cellchat、iTALK等多种cell-cell communication的工具;
其中cellchat,我觉得它比较的亲民和好看吧^_^
cellchat <- createCellChat(Matrix(health@assays$RNA$data,sparse = T), #用于seurat.v5对象
meta = health@, ="Celltype")
#######################################
较固定的代码模块 开始!
#######################################
## 三、创建CellChat对象
summary(cellchat)
str(cellchat)
levels(cellchat@idents)
groupSize <- (table(cellchat@idents)) #查看每个cluster有多少个细胞
groupSize
## 四、导入配体受体数据库
CellChatDB <- #小鼠是 #人的是
str(CellChatDB) #查看数据库信息,包含interaction、complex、cofactor和geneInfo
colnames(CellChatDB$interaction)
showDatabaseCategory(CellChatDB) #cellchat的L-R库还是很全面的
unique(CellChatDB$interaction$annotation) #查看可以选择的侧面,也就是上图左中的三种
#这里先选择"Secreted Signaling"进行后续细胞互作分析
<- subsetDB(CellChatDB, search = "Secreted Signaling") #也可默认使用所有的
cellchat@DB <- # set the used database in the object
## 五、预处理
cellchat <- subsetData(cellchat)
future::plan("multicore", workers = 4) #multiprocess
cellchat <- identifyOverExpressedGenes(cellchat) #相当于Seurat的FindMarkers,找每个细胞群中高表达的配受体基因
cellchat <- identifyOverExpressedInteractions(cellchat) #基于CellChatDB数据库,识别出过表达的配体-受体相互作对。
cellchat <- projectData(cellchat,) #找到配体受体关系后,projectData将配体受体对的表达值投射到PPI上,来对@中的表达值进行校正。结果保存在@
## 六、推断细胞通讯网路
#6.1 基于配体-受体水平推断细胞通讯网络
cellchat <- computeCommunProb(cellchat, = FALSE, = TRUE) #如果不想用上一步PPI矫正的结果, = TRUE即可。#根据表达值推测细胞互作的概率,此步时间稍久一点儿
cellchat <- filterCommunication(cellchat, = 10)# Filter out the cell-cell communication if there are only few number of cells in certain cell groups
<- subsetCommunication(cellchat)
#6.2 基于信号通路水平推断细胞通讯网络
cellchat <- computeCommunProbPathway(cellchat)
<- subsetCommunication(cellchat, = "netP")
## 七、细胞间通讯的推断结果可视化阶段:
cellchat <- aggregateNet(cellchat)#统计细胞间通信的数量(配受体对的数目)和强度(概率)
groupSize <- (table(cellchat@idents))#计算每群细胞各有多少个
groupSize
#######################################
较固定的代码模块 结束!
#######################################
#都导入到Excel中处理成13X13的矩阵;对称角矩阵;
rio::export(cellchat@net$count,"clipboard",=TRUE)
rio::export(cellchat@net$weight,"clipboard",=TRUE)
#7.1 总体先观察细胞间通讯的数量与强度
netVisual_circle(cellchat@net$count, = groupSize, = T,
edge. = 15, = 0, = 0,
= F, = "Number of interactions") #细胞间通讯的数量
netVisual_circle(cellchat@net$weight, = groupSize,
= T,
= 15, = 0, = 0,
= F, = "Interaction weights/strength") #细胞间通讯的强度
#7.2 下面展示分别以每种细胞类型作为配体信号时的通讯网络
#7.2.1 → 细胞间通讯数目的推断结果:
mat <- cellchat@net$count
#7.2.2 → 细胞间通讯强度的推断结果:
mat <- cellchat@net$weight
#7.2.3 → 单独可视化Pro-B和Pre-B的情况;在细胞间通讯强度方面:
netVisual_circle(cellchat@net$count,
= "Pre-B", # "Pre-B" "Pro-B"
= NULL,
= groupSize,
top = 1,
= TRUE,
= 0,
= 0,
= 0.5,
= 0.1) #max(cellchat@net$weight)
data <- rio::import("clipboard",=TRUE,header=T,check.names = FALSE)
netVisual_circle((data), = c("CLP","DCs","Erythroblast","GMP","HSPCs","","","Monocyte",
"Neutrophil","","","",""),
= 2,
= 1,
= T,
= F,
= c(rep("#BC8F8F",13)),
= "health",
=12,
margin = 0.4,
= 0,
= 0)
这3个参数在我用起来竟然是一样的: ;;。
还不知道问题出在哪里了,(比较菜)
(来自一篇文献里看见的;算见过的细胞通讯中眼前一亮的图,我给照猫画虎的复现了一番,还蛮多的细节的,作者有(用)心了)
一般而言呢;我觉着,在细胞通讯方面:越病态的细胞越不爱交流,线会越细;细胞群越健康的话,它会乐于表达L-R对,线也会变的粗起来;
如果我的文章对您有帮助,欢迎点赞收藏转发,这这这也是支持我不断进步的动力~
如果有什么看不明白的地方,欢迎在评论区留言哈