单细胞分析之细胞通讯:cellchat

这篇文章在2020年7月上传到了bioRxiv(Inference and analysis of cell-cell communication using CellChat,https://www.biorxiv.org/content/10.1101/2020.07.21.214387v1.full

Cellchat

在这个工作中,作者构建了一个配体,受体及其辅因子之间相互作用的数据库,该数据库可准确表示已知的异聚分子复合物。并且作者开发了CellChat的一个R包,该工具能够从单细胞RNA测序(scRNA-seq)数据定量推断和分析细胞间通讯网络。

在这之前,已经开发了的几种从scRNA-seq数据推断细胞之间的通信的方法,例如cellphoneDB,celltalker,iTALK和NicheNet。作者认为,之前的方法主要关注点是单一的配体受体,而事实上很多生物学功能是基于受体复合体。
总结下来,作者觉得当前现有数据库或工具的其他局限性包括:
a)缺乏系统地将配体-受体对分类为功能相关的信号通路的方法;
b)自分泌和旁分泌信号相互作用的直观可视化;
c)分析复杂小区间通信的系统方法;
d)鉴于细胞之间的生物变异性可以是离散的也可以是连续的,因此能够针对连续的细胞状态轨迹访问信号串扰。

作者开发的资源包括:
数据库http://www.cellchat.org/
工具包https://github.com/sqjin/CellChat

实操

1.安装

##R安装依赖包:
NMF(https://github.com/sqjin/NMF),
devtools::install_github("sqjin/NMF")
ComplexHeatmap(https://github.com/jokergoo/ComplexHeatmap)
BiocManager::install("ComplexHeatmap", update = F)

##python安装umap
pip install umap-learn

##R安装CellChat
devtools::install_github("sqjin/CellChat")

2.Seurat对象Demo已经定义了细胞类型,并以cellType的meta.data形式存在

#加载需要的R包
library(CellChat)
library(ggplot2)
library(ggalluvial)
library(Seurat)

3.创建cellchat对象

cellchat <- createCellChat(Demo@assays$RNA@data)
meta <- data.frame(cellType = Demo$cellType, row.names =  Cells(Demo))
cellchat <- addMeta(cellchat, meta = meta, meta.name = "cellType")
cellchat <- setIdent(cellchat, ident.use = "cellType") # set "labels" as default cell identity
groupSize <- as.numeric(table(cellchat@idents)) # number of cells in each cell group

4.加载与设定需要的CellChatDB数据库

CellChatDB <- CellChatDB.human
CellChatDB.use <- subsetDB(CellChatDB, search = "Secreted signaling") # use Secreted signaling for cell-cell communication analysis
cellchat@DB <- CellChatDB.use # set the used database in the object

5.预处理表达数据以进行细胞间相互作用分析
identifyOverExpressedGenes这步在Rstudio server里测试有bug,但是在window本地运行没问题,估计是该函数与服务器暂时不兼容。

cellchat <- subsetData(cellchat) # subset the expression data of signaling genes for saving computation cost
cellchat <- identifyOverExpressedGenes(cellchat) 
cellchat <- identifyOverExpressedInteractions(cellchat)
cellchat <- projectData(cellchat, PPI.human)

6.推断细胞间相互作用网络与分析

cellchat <- computeCommunProb(cellchat)
cellchat <- computeCommunProbPathway(cellchat)
cellchat <- aggregateNet(cellchat)
cellchat <- netAnalysis_signalingRole(cellchat, slot.name = "netP")
netAnalysis_contribution(cellchat, signaling = pathways.show)# Compute and visualize the contribution of each ligand-receptor pair to the overall signaling pathway

7.可视化


MIF信号通路示例
pathways.show <- c("TGFb") 
vertex.receiver = seq(1,9) # a numeric vector
netVisual_aggregate(cellchat, signaling = pathways.show,  vertex.receiver = vertex.receiver, vertex.size = groupSize) # Hierarchy plot
netVisual_aggregate(cellchat, signaling = pathways.show, layout = "circle", vertex.size = groupSize) # Circle plot
netVisual_signalingRole(cellchat, signaling = pathways.show) #Visualize the signaling roles of cell groups
nPatterns = 5
cellchat <- identifyCommunicationPatterns(cellchat, pattern = "outgoing", k = nPatterns)
netAnalysis_river(cellchat, pattern = "outgoing") # river plot
netAnalysis_dot(cellchat, pattern = "outgoing") # dot plot
cellchat <- identifyCommunicationPatterns(cellchat, pattern = "incoming", k = nPatterns)
netAnalysis_river(cellchat, pattern = "incoming") # river plot
netAnalysis_dot(cellchat, pattern = "incoming") # dot plot

几个好用的tips

Tip1:color.use参数设置

比如,Demo_color是存放的对不同细胞类型的配色,属性是一个named vector
那么在cellchat中,一般可视化的函数里面可以直接用 color.use = Demo_color
但是对于netVisual_signalingRole这个函数,需要设置 color.use = Demo_colors[names(cellchat@netPcentrTGFb$outdeg)]

Tip2:看特定信号中所有L-R的作用网络

netVisual_individual(cellchat, signaling = path, layout = "circle", vertex.size = groupSize)

Tip3:图片存为pdf过程会出现的invalid font type
原因:作者把arial作为main font,当R没有这个字体的时候,就会报错
解决方法:

1.先下载Arial字体的TrueType Font文件
2.install.packages('extrafont')
3.font_import()
4.loadfonts(device = "pdf", quiet = F)

cellchat

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容