【細(xì)胞通訊】CellChat

前面關(guān)于細(xì)胞通訊的理論學(xué)習(xí)提到過妹孙,鄰接型的傳遞主要包含我們所熟知的神經(jīng)信號傳遞和抗原呈遞唆阿,主要是細(xì)胞表明配體-受體的相互作用暖夭。而擴散型的信號傳遞方式則是以分泌蛋白為主睦授,例如很多可溶性的小分子两芳。所以現(xiàn)在如果想對單細(xì)胞數(shù)據(jù)研究細(xì)胞-細(xì)胞的互作,一般的做法就是通過配體-受體進(jìn)行研究去枷。而配體和受體歸根結(jié)底就是特定的蛋白怖辆,所以最終還是落腳到研究基因-基因的互作。

今天删顶,我們先學(xué)習(xí)其中一個常見的方法:CellChat竖螃,一個2021年發(fā)在NC上面的文章。

===CellChat原理====

從方法上來看逗余,作者首先構(gòu)建了一個人和小鼠的配體-受體數(shù)據(jù)庫特咆。

從構(gòu)建的步驟來看,主要分為四步:

第一步:從KEGG里面提取兩種類型的pathway(Signal transduction和Signaling molecules and interaction)

第二步:手動的提取這幾個pathway中的配體-受體對录粱,以及作用于配體-受體對的其它共調(diào)控元件(agonist, antagonist, co-stimulatory and co-inhibitory receptors)腻格。

第三步:對于關(guān)鍵的一些調(diào)控元件,又進(jìn)行了手動檢查啥繁,例如:

Cytokine Receptors (ko04050), Cytokines and Growth Factors (ko04052), and Bioactive Peptides(br08005)菜职。(這一步,沒看懂挑選的原則和邏輯

第四步:又去已發(fā)表的文獻(xiàn)里面進(jìn)行了查漏補缺输虱。

所以些楣,總共下來,在human里面有1939對interaction宪睹,mouse里面有2021對。相比別的大部分庫的優(yōu)勢就是除了考慮單個配體-受體信息蚕钦,還考慮了復(fù)合多聚體的調(diào)控亭病,這點和cellphoneDB有點類似。

那么嘶居,基于這個庫和single cell數(shù)據(jù)罪帖,CellChat具體能干什么呢?

  1. 構(gòu)建細(xì)胞通訊網(wǎng)絡(luò)

細(xì)胞通訊網(wǎng)絡(luò)(intercellular communication network)是一個由相互作用的細(xì)胞組之間的顯著的配體-受體對組成的加權(quán)有向圖邮屁,顯示不同的細(xì)胞組之間檢測到配體-受體相互作用的數(shù)量整袁。如下圖中,不同顏色的實心圓表示不同細(xì)胞組佑吝,實心圓大小與該細(xì)胞組對應(yīng)的細(xì)胞個數(shù)成正比坐昙,每條邊的顏色與信號發(fā)送者保持一致,邊的粗細(xì)與通訊強度成比例芋忿。

2. 推斷細(xì)胞角色

因為在細(xì)胞通訊網(wǎng)絡(luò)中炸客,是個有向圖疾棵。因此,同一個細(xì)胞組既可以發(fā)送信號(信號的發(fā)送者痹仙,sender)是尔,也可以接收信號(信號的接收者,receiver)开仰。CellChat利用網(wǎng)絡(luò)分析中的out-degree, in-degree推斷細(xì)胞通訊過程中不同細(xì)胞組作為信號的發(fā)送者拟枚,接收者的強度。例如下圖中點的顏色表示不同細(xì)胞組众弓,點的大小與每個細(xì)胞組推斷的配體和受體數(shù)量成正比恩溅,x軸和y軸分別表示細(xì)胞組作為信號發(fā)送者和接收者的強度。

out-degree:細(xì)胞作為信號的發(fā)送者田轧,發(fā)出信號的概率之和暴匠;

in-degree:細(xì)胞作為信號的接收者,接收信號的概率之和傻粘。

3. 確認(rèn)介導(dǎo)細(xì)胞交流的配體-受體

?

CellChat可展示不同細(xì)胞組通訊過程中顯著的配體-受體每窖。下圖中表示信號發(fā)送者Inflam.FIB和信號接收者cDC1, cDC2, LC, Inflam. DC, TC , Inflam. TC, CD40LG+TC通訊時顯著的配體-受體。點的顏色和大小分別表示配體-受體對介導(dǎo)細(xì)胞通訊的可能性和及該可能性對應(yīng)的p-value弦悉,空意味著在該數(shù)據(jù)集中窒典,對應(yīng)的配體-受體不介導(dǎo)該細(xì)胞通訊。

4. 分組信號通路

?

為了以更有生物學(xué)意義的方式進(jìn)一步分析細(xì)胞間通訊稽莉,配體-受體對被歸入功能相關(guān)的信號通路瀑志。CellChat能夠量化所有顯著信號通路之間的相似性,根據(jù)其細(xì)胞通訊網(wǎng)絡(luò)的相似性對它們進(jìn)行分組污秆,如下圖將所有的信號通路降維后展示在二維圖上劈猪,點的顏色和大小分別表示信號通路的分組及該信號通路代表的通訊的可能性。

5. 預(yù)測細(xì)胞間協(xié)調(diào)反應(yīng)

?

CellChat可利用模式識別預(yù)測細(xì)胞間的協(xié)調(diào)反應(yīng)良拼。這種分析的輸出是一組所謂的通訊模式(communication pattern)战得,它將細(xì)胞組與信號通路連接起來。

下圖中庸推,cell groups和signaling分別表示細(xì)胞組和信號通路常侦,流動的厚度表示細(xì)胞組或信號通路對每個通訊模式的貢獻(xiàn)。a圖表示傳出模式(outgoing patterns)下贬媒,細(xì)胞作為信號發(fā)送者如何相互協(xié)調(diào)聋亡,以及它們?nèi)绾闻c某些信號通路協(xié)調(diào)以驅(qū)動通信。

例如本次模式識別揭示了細(xì)胞組cDC1, cDC2, LC, Inflam. DC與同屬于pattern1的信號通路GALECTIN,GAS, VEGF協(xié)調(diào)向外發(fā)送信號际乘。b圖表示傳入模式(incoming patterns)下坡倔,細(xì)胞作為信號接收者如何相互協(xié)調(diào),以及它們?nèi)绾闻c某些信號通路協(xié)調(diào)以響應(yīng)傳入的信號。

但是致讥,這個工具仍然有一個局限仅仆。

1. 目前的配體-受體數(shù)據(jù)庫只包含小鼠和人類,因此該工具適用于小鼠和人垢袱;

2. 細(xì)胞分組是使用CellChat的前提條件墓拜,在進(jìn)行細(xì)胞通訊分析之前,需要仔細(xì)進(jìn)行細(xì)胞聚類请契,以捕捉有生物學(xué)意義的細(xì)胞組咳榜;

3. 計算過表達(dá)基因花費時間較長,可根據(jù)資源設(shè)置線程數(shù)進(jìn)行時間控制爽锥;

4. 模式識別中涌韩,pattern的個數(shù)由自己定義,盡管CellChat會給出一些圖幫助確定該值氯夷,但仍需注意設(shè)置不同數(shù)量的pattern會得到不同分辨率的結(jié)果臣樱。

===CellChat使用測試====

library(CellChat)

library(ggplot2)

library(ggalluvial)

library(svglite)

library(Seurat)

library(SeuratData)

options(stringsAsFactors = FALSE)

測試使用的是pbmc3k.final數(shù)據(jù)集,大部分的計算已經(jīng)存在其對象中了腮考。具體的計算和分析可以查看官網(wǎng)的分析流程雇毫。

?

按照我們剛才說的,我們在Seurat對象中提出CellChat需要的數(shù)據(jù):

?

創(chuàng)建一個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

導(dǎo)入配體-受體數(shù)據(jù)庫

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)

//所以我們當(dāng)然也可以選擇其它類別

預(yù)處理

//對表達(dá)數(shù)據(jù)進(jìn)行預(yù)處理踩蔚,用于細(xì)胞間的通信分析棚放。首先在一個細(xì)胞組中識別過表達(dá)的配體或受體,然后將基因表達(dá)數(shù)據(jù)投射到蛋白-蛋白相互作用(PPI)網(wǎng)絡(luò)上馅闽。如果配體或受體過表達(dá)飘蚯,則識別過表達(dá)配體和受體之間的相互作用。

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

推測細(xì)胞間在信號通路水平上的通訊福也。我們還通過計算與每個信號通路相關(guān)的所有配體-受體相互作用的通信概率來推斷信號通路水平上的通信概率局骤。

注:推測的每個配體-受體對的細(xì)胞間通信網(wǎng)絡(luò)和每個信號通路分別存儲在“net”和“netP”槽中。

?

我們可以通過計算鏈路的數(shù)量或匯總通信概率來計算細(xì)胞間的聚合通信網(wǎng)絡(luò)暴凑。

cellchat <- computeCommunProbPathway(cellchat)

cellchat <- aggregateNet(cellchat)

cellchat@netP$pathways

head(cellchat@LR$LRsig)

可視化

通過結(jié)合社會網(wǎng)絡(luò)分析庄涡、模式識別和多種學(xué)習(xí)方法的綜合方法,CellChat可以定量地描述和比較推斷出的細(xì)胞-細(xì)胞通信網(wǎng)絡(luò)搬设。

你可以使用層次圖或圈圖可視化每個信號通路。如果使用層次圖可視化通信網(wǎng)絡(luò)撕捍,請定義vertex.receiver拿穴,它是一個數(shù)字向量,給出作為第一個層次結(jié)構(gòu)圖中的目標(biāo)的細(xì)胞組的索引忧风。我們可以使用netVisual_aggregate來可視化信號路徑的推斷通信網(wǎng)絡(luò)默色,并使用netVisual_individual來可視化與該信號路徑相關(guān)的單個L-R對的通信網(wǎng)絡(luò)。

在層次圖中狮腿,實體圓和空心圓分別表示源和目標(biāo)腿宰。圓的大小與每個細(xì)胞組的細(xì)胞數(shù)成比例呕诉。邊緣顏色與信源一致。線越粗吃度,信號越強甩挫。這里我們展示了一個MIF信號網(wǎng)絡(luò)的例子。所有顯示重要通信的信令路徑都可以通過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)? ?

下圖就是經(jīng)典的受體-配體圈圖

//計算和可視化每個配體-受體對整個信號通路的貢獻(xiàn)度伊者。

netAnalysis_contribution(cellchat, signaling = pathways.show)

為了便于解釋復(fù)雜的細(xì)胞間通信網(wǎng)絡(luò),CellChat通過從圖論间护、模式識別和流形學(xué)習(xí)中抽象出來的方法對網(wǎng)絡(luò)進(jìn)行定量測量亦渗。

它可以利用網(wǎng)絡(luò)分析中的中心性度量確定給定信號網(wǎng)絡(luò)中的主要信令源和目標(biāo),以及中介和影響者汁尺;它可以預(yù)測特定細(xì)胞類型的關(guān)鍵輸入和輸出信號法精,并利用模式識別方法協(xié)調(diào)不同細(xì)胞類型之間的反應(yīng)(這個預(yù)測有點迷);它可以通過定義相似性度量來分組信號通路痴突,并從功能和拓?fù)涞慕嵌冗M(jìn)行manifold learning搂蜓;它可以通過多個網(wǎng)絡(luò)的聯(lián)合流形學(xué)習(xí)來描述保守的和context-specific的信號通路。

?

確定signaling角色(例如苞也,主要的發(fā)送者洛勉,接收者)以及主要的貢獻(xiàn)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空間中可視化主要的發(fā)送者(源)和接收者(目標(biāo))。

netAnalysis_signalingRole_scatter(cellchat)

識別對某些細(xì)胞群的傳出或傳入信號貢獻(xiàn)最大的信號

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

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

ht1 + ht2

識別特定細(xì)胞群的全局通信模式和主要信號如迟。除了探索單個通路的詳細(xì)通訊外收毫,一個重要的問題是多個細(xì)胞群和信號通路如何協(xié)調(diào)運作。CellChat采用模式識別方法來識別全局通信模式以及每個小群的關(guān)鍵信號殷勘。

?

識別分泌細(xì)胞外向交流模式此再。隨著模式數(shù)量的增加,可能會出現(xiàn)冗余的模式玲销,使得解釋通信模式變得困難输拇。我們選擇了4種模式作為默認(rèn)模式。一般來說贤斜,當(dāng)模式的數(shù)量大于2時就可以認(rèn)為具有生物學(xué)意義策吠。

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瘩绒,隨后出現(xiàn)的幾起案子猴抹,更是在濱河造成了極大的恐慌,老刑警劉巖锁荔,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蟀给,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機跋理,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門择克,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人前普,你說我怎么就攤上這事肚邢。” “怎么了汁政?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵道偷,是天一觀的道長。 經(jīng)常有香客問我记劈,道長勺鸦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任目木,我火速辦了婚禮换途,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刽射。我一直安慰自己军拟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布誓禁。 她就那樣靜靜地躺著懈息,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摹恰。 梳的紋絲不亂的頭發(fā)上辫继,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機與錄音俗慈,去河邊找鬼姑宽。 笑死,一個胖子當(dāng)著我的面吹牛闺阱,可吹牛的內(nèi)容都是我干的炮车。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼酣溃,長吁一口氣:“原來是場噩夢啊……” “哼瘦穆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赊豌,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤难审,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后亿絮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年派昧,在試婚紗的時候發(fā)現(xiàn)自己被綠了黔姜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒂萎,死狀恐怖秆吵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情五慈,我是刑警寧澤纳寂,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站泻拦,受9級特大地震影響毙芜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜争拐,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一腋粥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧架曹,春花似錦隘冲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至万牺,卻和暖如春罗珍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杏愤。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工靡砌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人珊楼。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓通殃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厕宗。 傳聞我的和親對象是個殘疾皇子画舌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容