【细胞通讯】CellChat

前面关于细胞通讯的理论学习提到过,邻接型的传递主要包含我们所熟知的神经信号传递和抗原呈递,主要是细胞表明配体-受体的相互作用。而扩散型的信号传递方式则是以分泌蛋白为主,例如很多可溶性的小分子。所以现在如果想对单细胞数据研究细胞-细胞的互作,一般的做法就是通过配体-受体进行研究。而配体和受体归根结底就是特定的蛋白,所以最终还是落脚到研究基因-基因的互作。

今天,我们先学习其中一个常见的方法:CellChat,一个2021年发在NC上面的文章。

===CellChat原理====

从方法上来看,作者首先构建了一个人和小鼠的配体-受体数据库。

从构建的步骤来看,主要分为四步:

第一步:从KEGG里面提取两种类型的pathway(Signal transduction和Signaling molecules and interaction)

第二步:手动的提取这几个pathway中的配体-受体对,以及作用于配体-受体对的其它共调控元件(agonist, antagonist, co-stimulatory and co-inhibitory receptors)。

第三步:对于关键的一些调控元件,又进行了手动检查,例如:

Cytokine Receptors (ko04050), Cytokines and Growth Factors (ko04052), and Bioactive Peptides(br08005)。(这一步,没看懂挑选的原则和逻辑

第四步:又去已发表的文献里面进行了查漏补缺。

所以,总共下来,在human里面有1939对interaction,mouse里面有2021对。相比别的大部分库的优势就是除了考虑单个配体-受体信息,还考虑了复合多聚体的调控,这点和cellphoneDB有点类似。

那么,基于这个库和single cell数据,CellChat具体能干什么呢?

  1. 构建细胞通讯网络

细胞通讯网络(intercellular communication network)是一个由相互作用的细胞组之间的显著的配体-受体对组成的加权有向图,显示不同的细胞组之间检测到配体-受体相互作用的数量。如下图中,不同颜色的实心圆表示不同细胞组,实心圆大小与该细胞组对应的细胞个数成正比,每条边的颜色与信号发送者保持一致,边的粗细与通讯强度成比例。

2. 推断细胞角色

因为在细胞通讯网络中,是个有向图。因此,同一个细胞组既可以发送信号(信号的发送者,sender),也可以接收信号(信号的接收者,receiver)。CellChat利用网络分析中的out-degree, in-degree推断细胞通讯过程中不同细胞组作为信号的发送者,接收者的强度。例如下图中点的颜色表示不同细胞组,点的大小与每个细胞组推断的配体和受体数量成正比,x轴和y轴分别表示细胞组作为信号发送者和接收者的强度。

out-degree:细胞作为信号的发送者,发出信号的概率之和;

in-degree:细胞作为信号的接收者,接收信号的概率之和。

3. 确认介导细胞交流的配体-受体

 

CellChat可展示不同细胞组通讯过程中显著的配体-受体。下图中表示信号发送者Inflam.FIB和信号接收者cDC1, cDC2, LC, Inflam. DC, TC , Inflam. TC, CD40LG+TC通讯时显著的配体-受体。点的颜色和大小分别表示配体-受体对介导细胞通讯的可能性和及该可能性对应的p-value,空意味着在该数据集中,对应的配体-受体不介导该细胞通讯。

4. 分组信号通路

 

为了以更有生物学意义的方式进一步分析细胞间通讯,配体-受体对被归入功能相关的信号通路。CellChat能够量化所有显著信号通路之间的相似性,根据其细胞通讯网络的相似性对它们进行分组,如下图将所有的信号通路降维后展示在二维图上,点的颜色和大小分别表示信号通路的分组及该信号通路代表的通讯的可能性。

5. 预测细胞间协调反应

 

CellChat可利用模式识别预测细胞间的协调反应。这种分析的输出是一组所谓的通讯模式(communication pattern),它将细胞组与信号通路连接起来。

下图中,cell groups和signaling分别表示细胞组和信号通路,流动的厚度表示细胞组或信号通路对每个通讯模式的贡献。a图表示传出模式(outgoing patterns)下,细胞作为信号发送者如何相互协调,以及它们如何与某些信号通路协调以驱动通信。

例如本次模式识别揭示了细胞组cDC1, cDC2, LC, Inflam. DC与同属于pattern1的信号通路GALECTIN,GAS, VEGF协调向外发送信号。b图表示传入模式(incoming patterns)下,细胞作为信号接收者如何相互协调,以及它们如何与某些信号通路协调以响应传入的信号。

但是,这个工具仍然有一个局限。

1. 目前的配体-受体数据库只包含小鼠和人类,因此该工具适用于小鼠和人;

2. 细胞分组是使用CellChat的前提条件,在进行细胞通讯分析之前,需要仔细进行细胞聚类,以捕捉有生物学意义的细胞组;

3. 计算过表达基因花费时间较长,可根据资源设置线程数进行时间控制;

4. 模式识别中,pattern的个数由自己定义,尽管CellChat会给出一些图帮助确定该值,但仍需注意设置不同数量的pattern会得到不同分辨率的结果。

===CellChat使用测试====

library(CellChat)

library(ggplot2)

library(ggalluvial)

library(svglite)

library(Seurat)

library(SeuratData)

options(stringsAsFactors = FALSE)

测试使用的是pbmc3k.final数据集,大部分的计算已经存在其对象中了。具体的计算和分析可以查看官网的分析流程。

 

按照我们刚才说的,我们在Seurat对象中提出CellChat需要的数据:

 

创建一个cellchat的对象

pbmc3k.final <- readRDS("pbmc3k_final.rds")

data.input <- GetAssayData(pbmc3k.final, assay = "RNA", slot = "data") 

labels <- Idents(pbmc3k.final)

identity <- data.frame(group = labels, row.names = names(labels)) # create a dataframe of the cell labels

cellchat <- createCellChat(object = data.input)

cellchat <- addMeta(cellchat, meta = identity, meta.name = "labels")

cellchat <- setIdent(cellchat, ident.use = "labels") # set "labels" as default cell identity

levels(cellchat@idents)    # show factor levels of the cell labels

groupSize <- as.numeric(table(cellchat@idents))  #number of cells in each cell group

导入配体-受体数据库

CellChatDB <- CellChatDB.human 

colnames(CellChatDB$interaction)

CellChatDB$interaction[1:4,1:4]

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

unique(CellChatDB$interaction$annotation)

//所以我们当然也可以选择其它类别

预处理

//对表达数据进行预处理,用于细胞间的通信分析。首先在一个细胞组中识别过表达的配体或受体,然后将基因表达数据投射到蛋白-蛋白相互作用(PPI)网络上。如果配体或受体过表达,则识别过表达配体和受体之间的相互作用。

cellchat <- subsetData(cellchat)       # subset the expression data of signaling genes for saving computation cost

future::plan("multiprocess", workers = 4) 

cellchat <- identifyOverExpressedGenes(cellchat)

cellchat <- identifyOverExpressedInteractions(cellchat)

cellchat <- projectData(cellchat, PPI.human)  

相互作用推断

environment(mycomputeCommunProb) <- environment(computeCommunProb)

cellchat <- mycomputeCommunProb(cellchat)  

推测细胞间在信号通路水平上的通讯。我们还通过计算与每个信号通路相关的所有配体-受体相互作用的通信概率来推断信号通路水平上的通信概率。

注:推测的每个配体-受体对的细胞间通信网络和每个信号通路分别存储在“net”和“netP”槽中。

 

我们可以通过计算链路的数量或汇总通信概率来计算细胞间的聚合通信网络。

cellchat <- computeCommunProbPathway(cellchat)

cellchat <- aggregateNet(cellchat)

cellchat@netP$pathways

head(cellchat@LR$LRsig)

可视化

通过结合社会网络分析、模式识别和多种学习方法的综合方法,CellChat可以定量地描述和比较推断出的细胞-细胞通信网络。

你可以使用层次图或圈图可视化每个信号通路。如果使用层次图可视化通信网络,请定义vertex.receiver,它是一个数字向量,给出作为第一个层次结构图中的目标的细胞组的索引。我们可以使用netVisual_aggregate来可视化信号路径的推断通信网络,并使用netVisual_individual来可视化与该信号路径相关的单个L-R对的通信网络。

在层次图中,实体圆和空心圆分别表示源和目标。圆的大小与每个细胞组的细胞数成比例。边缘颜色与信源一致。线越粗,信号越强。这里我们展示了一个MIF信号网络的例子。所有显示重要通信的信令路径都可以通过cellchat@netP$pathways访问。

cellchat@netP$pathways

levels(cellchat@idents) 

vertex.receiver = seq(1,4) # a numeric vector

pathways.show <- "MIF"

netVisual_aggregate(cellchat, signaling = pathways.show,  vertex.receiver = vertex.receiver, vertex.size = groupSize)   

下图就是经典的受体-配体圈图

//计算和可视化每个配体-受体对整个信号通路的贡献度。

netAnalysis_contribution(cellchat, signaling = pathways.show)

为了便于解释复杂的细胞间通信网络,CellChat通过从图论、模式识别和流形学习中抽象出来的方法对网络进行定量测量。

它可以利用网络分析中的中心性度量确定给定信号网络中的主要信令源和目标,以及中介和影响者;它可以预测特定细胞类型的关键输入和输出信号,并利用模式识别方法协调不同细胞类型之间的反应(这个预测有点迷);它可以通过定义相似性度量来分组信号通路,并从功能和拓扑的角度进行manifold learning;它可以通过多个网络的联合流形学习来描述保守的和context-specific的信号通路。

 

确定signaling角色(例如,主要的发送者,接收者)以及主要的贡献singnaling

cellchat <- netAnalysis_computeCentrality(cellchat, slot.name = "netP") # the slot 'netP' means the inferred intercellular communication network of signaling pathways

# Visualize the computed centrality scores using heatmap, allowing ready identification of major signaling roles of cell groups

netAnalysis_signalingRole_network(cellchat, signaling = pathways.show, width = 8, height = 2.5, font.size = 10)

在2D空间中可视化主要的发送者(源)和接收者(目标)。

netAnalysis_signalingRole_scatter(cellchat)

识别对某些细胞群的传出或传入信号贡献最大的信号

ht1 <- netAnalysis_signalingRole_heatmap(cellchat, pattern = "outgoing")

ht2 <- netAnalysis_signalingRole_heatmap(cellchat, pattern = "incoming")

ht1 + ht2

识别特定细胞群的全局通信模式和主要信号。除了探索单个通路的详细通讯外,一个重要的问题是多个细胞群和信号通路如何协调运作。CellChat采用模式识别方法来识别全局通信模式以及每个小群的关键信号。

 

识别分泌细胞外向交流模式。随着模式数量的增加,可能会出现冗余的模式,使得解释通信模式变得困难。我们选择了4种模式作为默认模式。一般来说,当模式的数量大于2时就可以认为具有生物学意义。

nPatterns = 4

cellchat <- identifyCommunicationPatterns(cellchat, pattern = "outgoing", k = nPatterns)

cellchat <- identifyCommunicationPatterns(cellchat, pattern = "incoming", k = nPatterns)

netAnalysis_river(cellchat, pattern = "outgoing")

netAnalysis_dot(cellchat, pattern = "outgoing")

netAnalysis_river(cellchat, pattern = "incoming")

netAnalysis_dot(cellchat, pattern = "incoming")

本文使用 文章同步助手 同步

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

推荐阅读更多精彩内容