單細胞繪圖系列:
- Seurat繪圖函數(shù)總結(jié)
- 使用ggplot2優(yōu)化Seurat繪圖
- scRNAseq靈活的點圖繪制:FlexDotPlot
- 富集分析結(jié)果雷達圖
- DoHeatmap的優(yōu)化+ComplexHeatmap繪制帶特定基因的單細胞熱圖
- 不同單細胞群之間的相關性分析
- 單細胞RunPCA()結(jié)果解讀+DimHeatmap的用法
- 桑基圖:不同分辨率下的細胞分群可視化
做單細胞分析的時候,我們常規(guī)畫的火山圖和RNAseq的分析其實是一樣的。見火山圖EnhancedVolcano痴突。但是因為單細胞自身特性導致展运,它兩個分組的細胞數(shù)量太多漠酿,很大概率會導致p值過于顯著蒂窒,無限接近于0的情況帖努,導致火山圖的結(jié)果很詭異棠众。
最近在文獻里看到了這樣的火山圖
單細胞測序揭示病毒性心肌炎細胞圖譜和轉(zhuǎn)錄網(wǎng)絡:
CD177調(diào)節(jié)腫瘤浸潤Treg細胞的功能和穩(wěn)態(tài):
這種展現(xiàn)方式可以忽略這個統(tǒng)計學指標p值琳疏,因為反正都是統(tǒng)計學顯著的,大于0.01即可闸拿,p值再小也不是我們關心的重點空盼。
繪制方法
用pbmc3k數(shù)據(jù)集做演示
library(Seurat)
library(patchwork)
library(clusterProfiler)
library(org.Mm.eg.db) ##加載小鼠
library(org.Hs.eg.db) ##加載人類
library(tidyverse)
pbmc <-readRDS("pbmc.rds")
table(pbmc$cell_type)
object.markers <- FindMarkers(pbmc, ident.1 = 'Memory CD4 T',ident.2 = 'Naive CD4 T',
group.by = 'cell_type',logfc.threshold = 0,min.pct = 0,pseudocount.use = 0.01)
object.markers$names <- rownames(object.markers)
#sig_dge.all <- subset(object.markers, p_val_adj<0.05&abs(avg_log2FC)>0.15) #所有差異基因
#View(sig_dge.all)
library(dplyr)
object.markers <- object.markers %>%
mutate(Difference = pct.1 - pct.2)
library(ggplot)
library(ggrepel)
ggplot(object.markers, aes(x=Difference, y=avg_log2FC)) +
geom_point(size=0.5, color="#999999") +
geom_label_repel(data=subset(object.markers, avg_log2FC >= 1 & Difference >= 0.2 & pct.2 <= 0.05), aes(label=names), label.padding = 0.1, fill="tomato2", segment.size = 0.25, size=2.5)+
theme_classic()
ggsave("TopMarkerVol1.pdf", height=8, width=8)
object.markers$group=0
for (i in 1:nrow(object.markers)){
if (object.markers$avg_log2FC[i] >= 1 & object.markers$Difference[i] >= 0.2 & object.markers$pct.2[i] <= 0.05){
object.markers$group[i]='up'
}
else if(object.markers$avg_log2FC[i] <= -1 & object.markers$Difference[i] <= -0.2 & object.markers$pct.1[i] <= 0.05){
object.markers$group[i]='down'
}
else {
object.markers$group[i]='no'
}
}
ggplot(object.markers, aes(x=Difference, y=avg_log2FC)) +
geom_point(size=0.5,aes(color=group)) +
scale_color_manual(values=c('blue','grey','red'))+
geom_label_repel(data=subset(object.markers, group !='no'), aes(label=names), segment.size = 0.25, size=2.5)+
geom_vline(xintercept = 0.0,linetype=2)+
geom_hline(yintercept = 0,linetype=2)+
theme_classic()
ggsave("TopMarkerVol2.pdf", height=8, width=8)