背景前提:
1:一个Cluster和剩下的所有细胞的差异分析,反映的是各个Cluster的特征;
2:组间差异分析(类似经典组学差异比较;需要样品送齐)
意义:
1:找出每个聚类中的‘“高表达”的Market基因;与后续细胞鉴定中用到的Marker基因不一样,但是可以作为依据。
2:组间的差异比较,结合后续的KEGG,GO功能富集分析;揭示样本(组间)功能差异
输入信息:
seurat_obj :Seurat对象
分组信息
part1:筛选cluster中的‘“高表达”的Market基因:
#FindAllMarkers函数:保留在目标cluster中上调,且至少在10%的细胞中表达的基因。log2-foldchange阈值为0.26
markers_all <- FindAllMarkers(object = seurat_obj, assay = "RNA", slot = "data",
logfc.threshold = 0.26, test.use = "wilcox", min.pct = 0.1, only.pos = TRUE, verbose = TRUE)
#进一步筛选 校正p值≤0.01、“平均log2 fold change”≥0.26的基因
markers_sig <- subset(markers_all, pct.1 >= 0.1 & pct.2 >= 0.1 & p_val_adj <= 0.01 & avg_log2FC >= 0.26)
火山图、热图、柱形图展示:
分簇火山图
#火山图差异显著标识: Q值<0.01
markers_df$color <- factor(ifelse(markers_df$Qvalue < 0.01, "red", "blue"),levels=c('red','blue'))

火山图
分面百分比火山图
# X轴:pct.1 - pct.2 :
markers_df$xpct <- markers_df$pct.1 - markers_df$pct.2

基因在目标簇 vs 其他簇的表达细胞百分比差异

热图

柱形图
cluster中差异基因 (top10)的结果展示:气泡图,山脊图,小提琴图,聚类图;

气泡图

山脊图
part2:前面是基于cluster的整体维度、后续介绍了分组差异基因的维度:
组间的差异比较:
# 使用lapply生成所有可能的组间差异组合
vs_comb <- lapply(seq_along(vs),function(x){list(g1=vs[x],g2=vs[-x])})
#核心函数:FindMarkers
markers <- FindMarkers(seurat_obj,ident.1=comb$g1,ident.2=comb$g2,group.by=group)
#筛选显著差异基因(p_val ≤ 0.05),每个分组取前3的基因为marker基因
markers_sig <- subset(markers, p_val <= 0.05)
top3_genes <- head(unique(df[order(abs(df$avg_log2FC),decreasing=T),'Gene']),3)
#FeaturePlot 根据筛选的marker基因绘制umap聚类图
p <- FeaturePlot(seurat_obj[,seurat_obj@meta.data[[group]]%in%vs], features=top3_genes, reduction="umap", split.by=group, alpha=0.5, cols=c("grey", "red"))

top3基因的聚类图