CellChat細胞通訊

0. 背景知識

細胞通訊是單細胞數(shù)據(jù)高級分析中比較常見的一個披摄,我們習慣使用的R包是CellChat。

這個是CellChat的一手教程:

https://htmlpreview.github.io/?https://github.com/jinworks/CellChat/blob/master/tutorial/CellChat-vignette.html

讓AI來告訴我們做細胞通訊分析的用途:

細胞通訊分析是生物學研究中的一個重要領域勇凭,它涉及研究細胞之間如何通過信號傳遞來協(xié)調它們的功能和行為疚膊。以下是一些細胞通訊分析的主要用途:

  1. 疾病診斷和治療:了解細胞如何交流可以幫助診斷和治療疾病,特別是那些與細胞通訊失調有關的疾病虾标,如癌癥寓盗、自身免疫疾病和神經(jīng)退行性疾病。
  1. 藥物開發(fā):通過研究細胞間通訊的機制璧函,可以發(fā)現(xiàn)新的藥物靶點傀蚌,從而開發(fā)出更有效的治療藥物。
  1. 發(fā)育生物學:細胞通訊在胚胎發(fā)育和組織形成中起著關鍵作用蘸吓。研究這些過程有助于我們理解正常和異常發(fā)育的機制善炫。
  1. 組織工程:在組織工程中,細胞通訊對于細胞的增殖库继、分化和組織結構的形成至關重要箩艺。
  1. 細胞信號傳導研究:細胞通訊分析有助于揭示細胞內信號傳導的復雜網(wǎng)絡,這對于理解細胞如何響應外界刺激非常重要制跟。
  1. 生物防御機制:研究細胞如何通過通訊來協(xié)調免疫反應舅桩,可以幫助我們更好地理解生物體如何抵御病原體。
  1. 神經(jīng)科學:在神經(jīng)科學領域雨膨,細胞通訊分析有助于我們理解大腦如何通過神經(jīng)細胞間的信號傳遞來處理信息擂涛。
  1. 生物信息學和系統(tǒng)生物學:通過分析細胞通訊網(wǎng)絡,可以構建生物系統(tǒng)的數(shù)學模型聊记,幫助我們從系統(tǒng)層面理解生物過程撒妈。
  1. 環(huán)境生物學:研究細胞如何響應環(huán)境變化,例如溫度排监、光照和化學物質狰右,可以揭示生物如何適應環(huán)境。
  1. 農(nóng)業(yè)和植物科學:在植物科學中舆床,了解植物細胞如何通過通訊來協(xié)調生長棋蚌、發(fā)育和對環(huán)境的響應,對于提高作物產(chǎn)量和抗逆性至關重要挨队。

細胞通訊分析是一個多學科交叉的領域谷暮,它結合了分子生物學、細胞生物學盛垦、生物化學湿弦、生物信息學和其他學科的知識和技術。通過這種分析腾夯,科學家可以更深入地理解生命過程颊埃,并開發(fā)出新的生物技術和治療方法蔬充。

1.R包和數(shù)據(jù)

使用的數(shù)據(jù)sce.all.Rdata是Seurat降維聚類分群注釋的結果,有兩個樣本班利。在生信星球聊天框回復“959monocle”可以拿到我的示例數(shù)據(jù)饥漫,和多樣本擬時序用的是同一個數(shù)據(jù)。

rm(list = ls())
#devtools::install_github('immunogenomics/presto')
library(CellChat)
library(ggplot2)
library(Seurat)
library(ggalluvial)
load("D:/BaiduSyncdisk/8.學習中/monocle_one_sample/sce.all.Rdata")
table(Idents(sce.all))

## 
##    CD14 Mono          pDC CD4 Memory T  T activated  CD4 Naive T        CD8 T 
##         4355          132         1762          631         2501          814 
##           Mk  B Activated            B           DC    CD16 Mono           NK 
##          236          386          975          472         1044          618

scRNA = sce.all

2.了解參考數(shù)據(jù)

CellChatDB.human,CellChatDB.mouse分別是人和小鼠的配受體數(shù)據(jù)庫

str(CellChatDB.human,max.level = 1)

## List of 4
##  $ interaction:'data.frame': 3234 obs. of  28 variables:
##  $ complex    :'data.frame': 338 obs. of  5 variables:
##  $ cofactor   :'data.frame': 32 obs. of  16 variables:
##  $ geneInfo   : tibble [26,827 × 8] (S3: tbl_df/tbl/data.frame)

table(CellChatDB.human$interaction$annotation)

## 
##     Cell-Cell Contact          ECM-Receptor Non-protein Signaling 
##                   536                   424                   994 
##    Secreted Signaling 
##                  1280

PPI.human和PPI.mouse是稀疏矩陣肥败,是STRING數(shù)據(jù)庫里高等級證據(jù)的相互作用關系組成的0-1矩陣趾浅。

class(PPI.human)

## [1] "dgCMatrix"
## attr(,"package")
## [1] "Matrix"

dim(PPI.human)

## [1] 4815 4815

table(as.numeric(PPI.human))

## 
##        0        1 
## 23156523    27702

3.構建cellchat對象

seurat對象可以直接轉換。在@DB加上要使用的配體受體數(shù)據(jù)庫馒稍,注意物種

cellchat <- createCellChat(sce.all,
                           group.by = "ident",
                           assay = "RNA")

## [1] "Create a CellChat object from a Seurat object"
## The `meta.data` slot in the Seurat object is used as cell meta information 
## Set cell identities for the new CellChat object 
## The cell groups used for CellChat analysis are  CD14 Mono, pDC, CD4 Memory T, T activated, CD4 Naive T, CD8 T, Mk, B Activated, B, DC, CD16 Mono, NK

cellchat@DB <- subsetDB(CellChatDB.human, 
                        search = "Secreted Signaling")
#search可以選擇的值是: table(CellChatDB.human$interaction$annotation)
# 提取數(shù)據(jù)庫支持的基因的表達矩陣子集
cellchat <- subsetData(cellchat) 
dim(cellchat@data.signaling) 

## [1]   356 13926

3.細胞通訊網(wǎng)絡分析

# 識別過表達基因
cellchat <- identifyOverExpressedGenes(cellchat)
# 識別配體-受體對
cellchat <- identifyOverExpressedInteractions(cellchat)

## The number of highly variable ligand-receptor pairs used for signaling inference is 206

# 將配體皿哨、受體投射到PPI網(wǎng)絡
cellchat <- projectData(cellchat, PPI.human)#慢
## 推測細胞通訊網(wǎng)絡
cellchat <- computeCommunProb(cellchat) #慢

## triMean is used for calculating the average gene expression per cell group. 
## [1] ">>> Run CellChat on sc/snRNA-seq data <<< [2024-06-08 17:41:35.378124]"
## [1] ">>> CellChat inference is done. Parameter values are stored in `object@options$parameter` <<< [2024-06-08 17:43:24.745221]"

cellchat <- computeCommunProbPathway(cellchat)
cellchat <- aggregateNet(cellchat)

4.畫圖展示

分析出來的重要信號通路如下

cellchat@netP$pathways

## [1] "GALECTIN" "ANNEXIN"  "CypA"     "CXCL"     "CCL"      "MIF"      "IL1"

每個通路都可以畫多種圖出來,圖中線的顏色與發(fā)射信號的細胞一致纽谒,線的粗細代表的是信號強弱证膨,線越粗信號越強。點的大小一般是按照每種細胞的數(shù)量來分配鼓黔。

pathways.show是要畫的信號通路央勒,可以換成cellchat@netP$pathways顯示的其他通路

pathways.show <- "GALECTIN"
hierarchy plot
groupSize <- as.numeric(table(cellchat@idents)) 
vertex.receiver = seq(1,nlevels(scRNA)/2);vertex.receiver

## [1] 1 2 3 4 5 6

netVisual_aggregate(cellchat, signaling = pathways.show, layout = "hierarchy", vertex.receiver = vertex.receiver, vertex.weight  = groupSize)  

這個圖分了兩張子圖,其實是分兩次說明了所有細胞類型之間的互作澳化。兩張子圖的差別是中間的圓圈崔步,第一張子圖中,第二列的圓圈意義同第一列缎谷,第二張子圖中井濒,第二列的圓圈意義同第三列,從”Target”這個單詞的顏色和哪個”source”一致可以看出列林。

互作方向也有了瑞你,是從兩邊的source到中間的target。

circle plot

circle plot 只是換了一個布局希痴,一張圖展示出來者甲。

par(mfrow = c(1,1), xpd=TRUE,mar = c(2, 2, 2, 2))
netVisual_aggregate(cellchat, signaling = pathways.show, 
                    layout = "circle", 
                    vertex.receiver = vertex.receiver,
                    vertex.weight  = groupSize)
chord plot

弦圖還是很有細節(jié)的,內圈小短線代表發(fā)射出的信號被誰接收砌创,和接受者顏色一致虏缸,發(fā)射端是平的且有小短線,接收端是尖的嫩实。

netVisual_aggregate(cellchat, signaling = pathways.show, layout = "chord", vertex.receiver = vertex.receiver, vertex.weight  = groupSize)
heatmap

熱圖寇钉,縱坐標是發(fā)射端,橫坐標是接收端舶赔,有顏色代表橫縱坐標所指的兩類細胞之間有通訊,顏色深淺代表通訊概率谦秧。右側和上方的條形圖是該行/列通訊概率之和

netVisual_heatmap(cellchat, signaling = pathways.show, color.heatmap = "Reds")

計算配體-受體對信號網(wǎng)絡的貢獻度

netAnalysis_contribution(cellchat, signaling = pathways.show)
熱圖-展示每一類細胞是什么角色

分析細胞在信號網(wǎng)絡中角色:發(fā)送者竟纳、接收者撵溃、調解者和影響者。

cellchat <- netAnalysis_computeCentrality(cellchat, slot.name = "netP") # the slot 'netP' means the inferred intercellular communication network of signaling pathways
netAnalysis_signalingRole_network(cellchat, signaling = pathways.show, width = 12, height = 5, font.size = 10)
氣泡圖-顯示所有的顯著的配體-受體對

只有p<0.05的才會被畫出來锥累,顏色仍然是通訊概率缘挑,圈的大小是按照p值,p值越小圈越大桶略。

#可以分開语淘,也可以合到一起
netVisual_bubble(cellchat, sources.use = 1, 
                 targets.use = 1:nlevels(scRNA), 
                 remove.isolate = FALSE) 
#從第一類細胞到全部細胞
netVisual_bubble(cellchat, sources.use = 1:nlevels(scRNA), 
                 targets.use = 1:nlevels(scRNA), 
                 remove.isolate = FALSE)#從全部細胞到全部細胞

5.細胞通訊模式和信號網(wǎng)絡

傳出模式,揭示了發(fā)射端細胞如何相互協(xié)調际歼,以及它們如何與某些信號通路協(xié)調以驅動通信惶翻。

傳入模式,顯示接收端細胞如何相互協(xié)調鹅心,以及它們如何與某些信號通路協(xié)調以響應輸入信號吕粗。

選擇合適的partten(細胞通訊模式)的數(shù)量
library(NMF)
selectK(cellchat, pattern = "outgoing")

在幫助文檔里面有解釋:For a range of the number of patterns, a suitable number of patterns is the one at which Cophenetic and Silhouette values begin to drop suddenly。

這兩個指標都是評估聚類穩(wěn)定性的旭愧,二者都突然下降的值對應的橫坐標就是合適的聚類數(shù)

這里是用parttern-細胞颅筋,parttern-通路矩陣畫的熱圖。identifyCommunicationPatterns函數(shù)識別通訊模式输枯,并畫出熱圖

nPatterns = 4   #根據(jù)上圖選擇的议泵,嫌麻煩也可以用默認值5
#傳出
cellchat <- identifyCommunicationPatterns(cellchat, pattern = "outgoing", k = nPatterns)
#傳入
cellchat <- identifyCommunicationPatterns(cellchat, pattern = "incoming", k = nPatterns)

用桑基圖和氣泡圖展示每種細胞傳入/傳出的信號都是屬于哪些通路的

# 商蚁ǎ基圖
netAnalysis_river(cellchat, pattern = "outgoing")
netAnalysis_river(cellchat, pattern = "incoming")
# 氣泡圖
netAnalysis_dot(cellchat, pattern = "outgoing",dot.size = 4)
netAnalysis_dot(cellchat, pattern = "incoming",dot.size = 4)

氣泡圖的顏色是按照細胞類型來分配先口,大小按照每個通路對每個細胞類型的貢獻程度分配。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蜻拨,一起剝皮案震驚了整個濱河市池充,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缎讼,老刑警劉巖收夸,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異血崭,居然都是意外死亡卧惜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門夹纫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咽瓷,“玉大人,你說我怎么就攤上這事舰讹∶┙” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵月匣,是天一觀的道長钻洒。 經(jīng)常有香客問我奋姿,道長,這世上最難降的妖魔是什么素标? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任称诗,我火速辦了婚禮,結果婚禮上头遭,老公的妹妹穿的比我還像新娘寓免。我一直安慰自己,他們只是感情好计维,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布袜香。 她就那樣靜靜地躺著,像睡著了一般享潜。 火紅的嫁衣襯著肌膚如雪困鸥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天剑按,我揣著相機與錄音疾就,去河邊找鬼。 笑死艺蝴,一個胖子當著我的面吹牛猬腰,可吹牛的內容都是我干的。 我是一名探鬼主播猜敢,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼姑荷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缩擂?” 一聲冷哼從身側響起鼠冕,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胯盯,沒想到半個月后懈费,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡博脑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年憎乙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叉趣。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡泞边,死狀恐怖,靈堂內的尸體忽然破棺而出疗杉,到底是詐尸還是另有隱情阵谚,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站梢什,受9級特大地震影響闻牡,放射性物質發(fā)生泄漏。R本人自食惡果不足惜绳矩,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玖翅。 院中可真熱鬧翼馆,春花似錦、人聲如沸金度。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猜极。三九已至中姜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跟伏,已是汗流浹背丢胚。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留受扳,地道東北人携龟。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像勘高,于是被迫代替她去往敵國和親峡蟋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容