前情回顧
在這個月的前幾期推文中,主要基于單細(xì)胞數(shù)據(jù)使用小提琴圖可視化marker基因進(jìn)行了整理:
VlnPlot結(jié)果及常用參數(shù)淺析
基于VlnPlot參數(shù)及ggplot2美化小提琴圖
也有一期答讀者問——小提琴圖有點(diǎn)無圖是何緣由?
這期就一起來學(xué)習(xí)一下畫目的基因的小提琴圖并計算顯著性!
小提琴圖可視化并計算顯著性用途
在單細(xì)胞數(shù)據(jù)分析中,通過小提琴圖可視化和顯著性計算可以幫助研究者直觀且統(tǒng)計地評估目的基因在不同細(xì)胞群體中的表達(dá)差異
展示基因在不同細(xì)胞群體的表達(dá)分布:小提琴圖可以直觀地展示基因在各個細(xì)胞亞群中的表達(dá)水平和分布情況。
小提琴圖能夠反映不同群體中表達(dá)的中位數(shù)、四分位數(shù)及表達(dá)值的變化范圍。特別是在復(fù)雜的細(xì)胞亞群中,這種分布展示非常有助于發(fā)現(xiàn)基因的差異性表達(dá)。
確定基因在不同亞群中的特異性表達(dá):通過顯著性計算可以明確目的基因是否在特定細(xì)胞亞群中顯著表達(dá)。
例如,通過t檢驗或非參數(shù)檢驗(如Wilcoxon檢驗)來比較不同亞群間的表達(dá)水平,幫助篩選出與特定功能或病理狀態(tài)相關(guān)的細(xì)胞群體。
為后續(xù)功能研究提供線索:顯著性差異的基因表達(dá)通常可以看到基因可能在不同細(xì)胞群體的生物功能或疾病過程中起關(guān)鍵作用。
所以當(dāng)我們需要查看單細(xì)胞不同分組,或者不同細(xì)胞亞群中某個目標(biāo)基因的表達(dá)情況并且比較的時候,就可以計算一下顯著性
基于小提琴圖可視化目標(biāo)基因
還是以pbmc數(shù)據(jù)為例,展示NKG7基因在不同細(xì)胞亞群中的表達(dá)情況,計算并展示不同分組間的顯著性
載入需要的數(shù)據(jù)
#給亞群命名
new.cluster.ids <- c("Naive CD4 T", "CD14+ Mono", "Memory CD4 T",
"B", "CD8 T","FCGR3A+ Mono", "NK", "DC", "Platelet")
names(new.cluster.ids) <- levels(pbmc)
# 修改Idents中分群編號為細(xì)胞類型
pbmc <- RenameIdents(pbmc, new.cluster.ids)
DimPlot(pbmc, reduction = "umap", label = TRUE,
repel = T,pt.size = 0.5) + NoLegend()
pbmc$cluster_by_counts=Idents(pbmc)
pbmc$celltype=Idents(pbmc)
#計算marker基因
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25, verbose = FALSE)
top5 = pbmc.markers %>% group_by(cluster) %>% top_n(n = 5, wt = avg_log2FC)
g = unique(top5$gene)
可視化NKG7在不同分群表達(dá)情況
# 使用VlnPlot生成NKG7的分組小提琴圖,并去掉圖例
p <- VlnPlot(object = pbmc, features = 'NKG7', pt.size = 0) +
NoLegend() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))

從小提琴圖中可以看到NKG7基因在"CD8 T"以及"NK"中表達(dá)較高, 在"FCGR3A+ Mono"和"DC"中表達(dá)也較其余幾個分組高,可以計算一下這幾個分組間的顯著性,然后比較
顯著性計算和可視化
使用ggpubr
包中的stat_compare_means
函數(shù)在圖形上顯示不同組之間的顯著性檢驗結(jié)果。
調(diào)用常見的統(tǒng)計檢驗方法(例如t檢驗、Wilcoxon秩和檢驗、ANOVA等)來比較不同組之間的數(shù)值差異,并返回顯著性標(biāo)記。
根據(jù)comparisons
參數(shù)中定義的組別對來計算兩兩顯著性。例如,如果comparisons = list(c("Group1", "Group2"))
,則只比較“Group1”和“Group2”之間的顯著性。 若未指定具體組對,并且數(shù)據(jù)包含多個組,會默認(rèn)進(jìn)行全局比較。
根據(jù)選擇的檢驗方法,stat_compare_means
會在數(shù)據(jù)內(nèi)部執(zhí)行相關(guān)的顯著性檢驗,返回每組對的p值。
根據(jù)計算得到的p值,生成對應(yīng)的顯著性標(biāo)記(如*
、**
、***
、****
),并根據(jù)p值范圍控制標(biāo)記顯示:
- ns:表示“不顯著”(not significant),即 p 值 > 0.05,表明兩組之間的差異沒有統(tǒng)計學(xué)顯著性。
- *:表示 p 值 ≤ 0.05,表明兩組之間的差異具有統(tǒng)計學(xué)顯著性。
- ***:表示 p 值 ≤ 0.001,差異極顯著。
- ****:表示 p 值 ≤ 0.0001,差異非常顯著。
可以通過參數(shù)label = "p.signif"
(僅顯示顯著性標(biāo)記)或label = "p"
(顯示具體的p值)進(jìn)行控制。
1. 選擇需要比較的分組進(jìn)行顯著性計算和展示
#根據(jù)需要選擇進(jìn)行比較的分組
my_comparisons <- list( c("CD8 T", "FCGR3A+ Mono"), c("FCGR3A+ Mono", "NK"), c("NK", "DC"))
library(ggpubr)
# 將VlnPlot轉(zhuǎn)換為ggplot對象,然后添加顯著性比較
p + stat_compare_means(comparisons = my_comparisons,method = "t.test")+
ylim(-2, 15)

2. 用*號顯示顯著性標(biāo)記,不顯示具體數(shù)值
#用*號顯示顯著性標(biāo)記,不顯示具體數(shù)值
p + stat_compare_means(comparisons = my_comparisons,method = "t.test",label = "p.signif")+
ylim(-2, 15)

3. stat_summary()將每個組的均值顯示為紅點(diǎn)
#stat_summary()將每個組的均值顯示為紅點(diǎn),便于對比哪個組的平均表達(dá)水平更高。
p + stat_compare_means(comparisons = my_comparisons,method = "t.test",label = "p.signif")+
ylim(-2, 15)+
stat_summary(fun = mean, geom = "point", color = "red", size = 3)

stat_summary 是ggplot2包中的一個函數(shù),可用于在圖中添加統(tǒng)計摘要(例如均值、標(biāo)準(zhǔn)差、中位數(shù)等),可以將將指定的統(tǒng)計計算結(jié)果(如平均值或中位數(shù))直接疊加到現(xiàn)有的圖層上
如果在計算出不同分組的顯著性之后,不能直接看出來哪個組比哪個組高,可以tat_summary()將每個組的均值顯示為紅點(diǎn),便于對比
文末友情宣傳
如果你也想做單細(xì)胞轉(zhuǎn)錄組數(shù)據(jù)分析,最好是有自己的計算機(jī)資源哦,比如我們的2024的共享服務(wù)器交個朋友福利價仍然是800,而且還需要有基本的生物信息學(xué)基礎(chǔ),也可以看看我們的生物信息學(xué)馬拉松授課,你的生物信息學(xué)入門課。