午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

單細(xì)胞空間轉(zhuǎn)錄組|使用CellChat.v2做單細(xì)胞空間轉(zhuǎn)錄組細(xì)胞通訊分析(單樣本)

 生信探索 2024-04-28 發(fā)布于云南

簡介

CellChat V2現(xiàn)在支持從多個空間解析轉(zhuǎn)錄組學(xué)數(shù)據(jù)集中推斷細(xì)胞間的通信。CellChat需要輸入細(xì)胞(Spot)的的基因表達(dá)信息和空間位置數(shù)據(jù),并通過整合基因表達(dá)與空間距離信息以及信號配體、受體及其輔因子之間相互作用的先驗知識(CellChat的數(shù)據(jù)庫DB,支持人、小鼠、斑馬魚),來建模細(xì)胞間通信的概率。

輸入數(shù)據(jù)

在從空間分辨轉(zhuǎn)錄組學(xué)數(shù)據(jù)推斷空間鄰近的細(xì)胞間通訊時,用戶還需提供Spot/細(xì)胞質(zhì)心的空間坐標(biāo)/位置。此外,為了濾除超出分子最大擴(kuò)散范圍(如約250微米)的細(xì)胞間通訊,CellChat需要計算以微米為單位的細(xì)胞質(zhì)心到質(zhì)心的距離。因此,對于僅提供像素坐標(biāo)的空間技術(shù),CellChat會通過要求用戶提供轉(zhuǎn)換系數(shù),將空間坐標(biāo)從像素轉(zhuǎn)換為微米。

因此輸入的數(shù)據(jù)有

  • data_input 細(xì)胞(Spot)的基因表達(dá)信息) 標(biāo)準(zhǔn)化的基因表達(dá)量矩陣,行基因列細(xì)胞
  • meta (細(xì)胞和樣本的信息):一個數(shù)據(jù)框,行是細(xì)胞列可以是樣本名(samples)、細(xì)胞標(biāo)簽、組織類型、分組等信息;
  • coordinates** (細(xì)胞(Spot)的空間坐標(biāo)信息): 一個數(shù)據(jù)框,每一行是一個細(xì)胞或Spot的x,y軸位置
  • spatial.factors (空間距離因子): 一個數(shù)據(jù)框,包括兩個因子,ratiotol;ratio的作用是將像素坐標(biāo)轉(zhuǎn)換成微米坐標(biāo);tol是 tolerance factortol作為比較質(zhì)心間距離與交互范圍時增強(qiáng)穩(wěn)健性的耐受因子。其值可設(shè)定為細(xì)胞/點大小的一半,單位為微米。若細(xì)胞/點大小未知,我們提供了一個名為computeCellDistance的函數(shù)來計算細(xì)胞質(zhì)心間的距離。此時,tol可取最小質(zhì)心間距離的一半。需要注意的是,CellChat并不需要精確的耐受因子,它主要用于判斷當(dāng)一對細(xì)胞的距離大于交互范圍但小于“交互范圍 + tol”時,是否仍視為空間鄰近。
  • contact.range: 一個給定的交互范圍值(單位:微米),用于限制依賴接觸的信號傳遞。對于單細(xì)胞分辨率的空間轉(zhuǎn)錄組學(xué),contact.range大致等于估計的細(xì)胞直徑(即細(xì)胞質(zhì)心間距離),這意味著依賴接觸或旁分泌的信號傳遞僅發(fā)生在兩細(xì)胞相互接觸時。通常,contact.range設(shè)為10,這是一個典型的人類細(xì)胞大小。然而,對于低分辨率的空間數(shù)據(jù),如10X Visium數(shù)據(jù),應(yīng)將其設(shè)為細(xì)胞質(zhì)心間距離(例如,對于10X Visium數(shù)據(jù),contact.range = 100)??梢允褂?code style="background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05);width: auto;margin-left: 2px;margin-right: 2px;padding: 2px 4px;border-style: none;border-width: 3px;border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);border-radius: 4px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;">computeCellDistance函數(shù)來計算質(zhì)心間距離。
  • contact.knn.k除了提供contact.range外,用戶還可以選擇提供contact.knn.k值,以便將依賴接觸的信號傳遞限制在k最近鄰(knn)范圍內(nèi)。

讀入Seurat空轉(zhuǎn)數(shù)據(jù)

using替代library加載包

using(Seurat,magrittr,CellChat)

讀入注釋好的空轉(zhuǎn)數(shù)據(jù),文末掃碼加群獲取本文數(shù)據(jù)

load("visium_mouse_cortex_annotated.RData")
srt <- visium.brain

準(zhǔn)備CellChat所需的輸入數(shù)據(jù)

細(xì)胞(Spot)的基因表達(dá)信息

data_input <- SeuratObject::GetAssayData(srt, layer = "data", assay = "SCT")

細(xì)胞和樣本的信息

meta <- srt@meta.data %>%
    dplyr::select(orig.ident, label) %>%
    dplyr::rename(samples = orig.ident, labels = label)

空間坐標(biāo)信息

coordinates <- SeuratObject::GetTissueCoordinates(srt, scale = NULL, cols = c("imagerow""imagecol"))

spatial_factors  (空間距離因子)

spot_diameter_fullres <- jsonlite::fromJSON("spatial/scalefactors_json.json")$spot_diameter_fullres
# 理論上10X Visum的spot直徑大小(單位微米)
spot_size <- 65
conversion_factor <- spot_size / spot_diameter_fullres
spatial_factors <- data.frame(ratio = conversion_factor, tol = spot_size / 2)
d_spatial <- CellChat::computeCellDistance(coordinates = coordinates, ratio = spatial_factors$ratio, tol = spatial_factors$tol)
# 10X Visum 約為100微米
min(d_spatial[d_spatial != 0]) # 99.52178

創(chuàng)建CellChat對象

cellchat <- CellChat::createCellChat(object = data_input, meta = meta, group.by = "labels", datatype = "spatial", coordinates = coordinates, spatial.factors = spatial_factors)
cellchat@DB <- CellChat::subsetDB(CellChatDB.mouse)

預(yù)處理

future::plan("multisession", workers = 8)
cellchat %<>% CellChat::subsetData()

識別高表達(dá)的基因

cellchat %<>% CellChat::identifyOverExpressedGenes()

識別高表達(dá)受體或配體

cellchat %<>% CellChat::identifyOverExpressedInteractions(variable.both = FALSE)

(可選)projectData將基因表達(dá)數(shù)據(jù)投影到蛋白質(zhì)-蛋白質(zhì)相互作用(PPI)網(wǎng)絡(luò)上。具體來說,使用擴(kuò)散過程根據(jù)高可信度實驗驗證的蛋白質(zhì)-蛋白質(zhì)網(wǎng)絡(luò)中定義的鄰居來平滑基因的表達(dá)值。當(dāng)分析測序深度較淺的單細(xì)胞數(shù)據(jù)時,此函數(shù)非常有用,因為投影可以減少信號基因的缺失效應(yīng),特別是配體/受體亞基可能為零表達(dá)的情況。有人可能會擔(dān)心這種擴(kuò)散過程可能引入的潛在偏差,然而,它只會引入非常微弱的通信。默認(rèn)情況下,CellChat使用原始數(shù)據(jù)(即object@data.signaling),而不是投影數(shù)據(jù)。若要使用投影數(shù)據(jù),應(yīng)在運行computeCommunProb之前運行projectData函數(shù),并在運行computeCommunProb時將raw.use設(shè)置為FALSE。

cellchat %<>% CellChat::projectData(adjMatrix = PPI.mouse)

細(xì)胞間通信網(wǎng)絡(luò)的推斷

CellChat通過為每種相互作用分配一個概率值并進(jìn)行置換檢驗,推斷出具有生物學(xué)意義的細(xì)胞間通信。CellChat利用質(zhì)量作用定律,結(jié)合基因表達(dá)與已知的信號配體、受體及其輔因子之間的相互作用先驗知識,來建模細(xì)胞間通信的概率。

注意事項:推斷出的配體-受體對的數(shù)量明顯取決于計算每個細(xì)胞群體平均基因表達(dá)的方法。默認(rèn)情況下,CellChat使用一種稱為“trimean”的統(tǒng)計穩(wěn)健均值方法,與其他方法相比產(chǎn)生的交互作用較少。然而,發(fā)現(xiàn)CellChat在預(yù)測較強(qiáng)的交互作用方面表現(xiàn)出色,這對于進(jìn)一步實驗驗證時縮小關(guān)注的交互作用范圍非常有幫助。在computeCommunProb中,提供了使用其他方法(如5%和10%截斷均值)計算平均基因表達(dá)的選項。需要注意的是,“trimean”近似于25%截斷均值,這意味著如果一個群體中表達(dá)細(xì)胞的比例小于25%,則平均基因表達(dá)為零。要使用10%截斷均值,可以設(shè)置type = "truncatedMean"和trim = 0.1。為了確定trim的合適值,CellChat提供了一個名為computeAveExpr的函數(shù),可以幫助檢查感興趣的信號基因(例如,computeAveExpr(cellchat, features = c("CXCL12","CXCR4"), type = "truncatedMean", trim = 0.1))的平均表達(dá)。因此,如果研究生物過程中公認(rèn)的信號通路未被預(yù)測到,可以嘗試使用較低trim值的截斷均值來更改計算每個細(xì)胞群體平均基因表達(dá)的方法。

計算通信概率并推斷細(xì)胞通信網(wǎng)絡(luò)

為了快速查看推斷結(jié)果,用戶可以在computeCommunProb中設(shè)置nboot = 20。此時,“pvalue < 0.05”意味著沒有一個置換結(jié)果大于觀察到的通信概率。

如果研究生物過程中公認(rèn)的信號通路未被預(yù)測到,用戶可以嘗試使用較低trim值的截斷均值來更改計算每個細(xì)胞群體平均基因表達(dá)的方法。

在處理來自其他空間轉(zhuǎn)錄組學(xué)技術(shù)的數(shù)據(jù)時可能需要調(diào)整scale.distance參數(shù)。請通過?computeCommunProb詳細(xì)查看文檔說明。

在推斷依賴接觸或相鄰信號傳遞時,應(yīng)提供contact.range的值,并設(shè)置contact.dependent = TRUE。簡而言之,可以設(shè)置contact.range = 10,這是典型的人類細(xì)胞大小。然而,對于低分辨率的空間數(shù)據(jù)(如10X Visium數(shù)據(jù)),應(yīng)將其設(shè)置為中心到中心的距離(即,對于10X Visium數(shù)據(jù),contact.range = 100)。

cellchat %<>% CellChat::computeCommunProb(
    type = "truncatedMean",
    trim = 0.1,
    distance.use = TRUE,
    interaction.range = 250,
    scale.distance = 0.01,
    contact.dependent = TRUE,
    contact.range = 100
)

如果某些細(xì)胞群體中只有少數(shù)細(xì)胞,可以過濾掉這些細(xì)胞間的通信。默認(rèn)情況下,細(xì)胞間通信所需的每個細(xì)胞群體中的最小細(xì)胞數(shù)為10。

cellchat %<>% CellChat::filterCommunication(min.cells = 10)

推斷細(xì)胞間通信在信號通路水平上的情況

CellChat通過匯總與每個信號通路相關(guān)的所有配體-受體相互作用的通信概率,來計算信號通路水平上的通信概率。

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

cellchat %<>% CellChat::computeCommunProbPathway()

匯總細(xì)胞間通信網(wǎng)絡(luò)

可以通過計數(shù)鏈接數(shù)量或匯總通信概率來計算聚合的細(xì)胞間通信網(wǎng)絡(luò)。還可以通過設(shè)置sources.use和targets.use來計算特定細(xì)胞組子集之間的聚合網(wǎng)絡(luò)。

cellchat %<>% CellChat::aggregateNet()

可視化聚合的細(xì)胞間通信網(wǎng)絡(luò)。例如,使用環(huán)形圖或熱圖來展示任意兩組細(xì)胞之間交互的數(shù)量或總交互強(qiáng)度(權(quán)重)。

groupSize <- as.numeric(table(cellchat@idents))
par(mfrow = c(1,2), xpd=TRUE)
netVisual_circle(cellchat@net$count, vertex.weight = rowSums(cellchat@net$count), weight.scale = T, label.edge= F, title.name = "Number of interactions")
netVisual_circle(cellchat@net$weight, vertex.weight = rowSums(cellchat@net$weight), weight.scale = T, label.edge= F, title.name = "Interaction weights/strength")
netVisual_heatmap(cellchat, measure = "count", color.heatmap = "Blues",font.size = 18,font.size.title = 28)
netVisual_heatmap(cellchat, measure = "weight", color.heatmap = "Blues",font.size = 18,font.size.title = 28)

細(xì)胞間通信網(wǎng)絡(luò)的可視化

在推斷出細(xì)胞間通信網(wǎng)絡(luò)后,CellChat提供了多種用于進(jìn)一步數(shù)據(jù)探索、分析和可視化的功能。此處僅展示環(huán)形圖和新的空間圖。

在不同層次上可視化細(xì)胞間通信:可以使用netVisual_aggregate來可視化信號通路的推斷通信網(wǎng)絡(luò),并使用netVisual_individual來可視化與該信號通路關(guān)聯(lián)的單個配體-受體對的推斷通信網(wǎng)絡(luò)。

此處以一個信號通路作為輸入示例。通過cellchat@netP$pathways可訪問到所有顯示出顯著通信的信號通路。

par(mfrow=c(1,1), xpd = TRUE# `xpd = TRUE` should be added to show the title
netVisual_aggregate(cellchat, signaling = c("IGF") , layout = "circle")

可視化組織中的細(xì)胞通訊

par(mfrow=c(1,1))
netVisual_aggregate(cellchat, signaling = c("IGF"), layout = "spatial", edge.width.max = 2, vertex.size.max = 1, alpha.image = 0.2, vertex.label.cex = 3.5)

計算并可視化網(wǎng)絡(luò)中心性得分

# Compute the network centrality scores
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
par(mfrow=c(1,1))
netAnalysis_signalingRole_network(cellchat, signaling = c("IGF"), width = 8, height = 2.5, font.size = 10)

可以在可視化信號網(wǎng)絡(luò)時在空間轉(zhuǎn)錄組學(xué)上顯示這些信息,例如,較大的圓圈表示更大的輸入信號

par(mfrow=c(1,1))
netVisual_aggregate(cellchat, signaling = c("IGF"), layout = "spatial", edge.width.max = 2, alpha.image = 0.2, vertex.weight = "incoming", vertex.size.max = 4, vertex.label.cex = 3.5)

可視化基因表達(dá)在組織上的分布

spatialFeaturePlot(cellchat, features = c("Igf1","Igf1r"), point.size = 0.8, color.heatmap = "Reds", direction = 1)

受配體表達(dá)在組織上的分布

spatialFeaturePlot(cellchat, pairLR.use = "IGF1_IGF1R", point.size = 0.5, do.binary = FALSE, cutoff = 0.05, enriched.only = F, color.heatmap = "Reds", direction = 1)

Reference

https://htmlpreview./?https://github.com/jinworks/CellChat/blob/master/tutorial/CellChat_analysis_of_spatial_transcriptomics_data.html

承接單細(xì)胞轉(zhuǎn)錄組、空間轉(zhuǎn)錄組、scATAC-seq分析項目


掃碼加群交流與學(xué)習(xí)

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多