Closed ixxmu closed 2 months ago
在上期的推文细胞类群marker基因识别及可视化结尾的时候,提到了五种基本可视化Marker基因的方式
那这期一起来了解一下DoHeatmap
函数的参数设置,以及在可视化marker基因有什么可以调整修改的地方。
用到的数据,还是seurat官网pbmc-3k的示例数据
走完基本的降维聚类分群,然后使用FindAllMarkers
分析获取全部亚群的marker基因,然后选择top5的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)
#五种方式可视化marker基因
DoHeatmap(pbmc,features = g) + NoLegend()
直接可视化的结果图有些可以调整的点:
因为默认参数的标签的角度是angle = 45
所以是向右倾斜的,导致Platelet标签会显示不全
#改变标签的排列顺序
pbmc$cell_type <- factor( x= pbmc$cluster_by_counts ,c("Naive CD4 T", "CD14+ Mono", "Memory CD4 T",
"B", "CD8 T","FCGR3A+ Mono", "Platelet", "NK", "DC"))
#调整倾斜角度和颜色
DoHeatmap(pbmc,features = g,group.by = "cell_type",group.colors = mycolors,
size = 3,angle = -50,hjust=0.8) +
scale_fill_gradientn(colors = c("white","grey","firebrick3"))
使用group.colors调整分组颜色——可以设置和umap图一样的颜色,使用scale_fill_gradientn调整热图的颜色,一般设置三个颜色
正好看到群里有朋友在问,为什么选了top5基因进行可视化的时候,通常会发现展示的时候只剩下3到4个基因?
之前做细胞类群注释top5基因的dotplot的时候经常发现剩3个4个基因,我以为是这一步2000筛除了
因为DoHeatmap
中默认slot = "scale.data" ,也就是用的数据是ScaleData后的结果数据集。而FindAllMarkers
中默认slot = "data" ,也就是用的数据是NormalizeData后的数据集。
因此就可能会造成DoHeatmap画热图时,不在前2000个高变基因中的marker不出现在热图中。可以基于top基因重新scale,并且抽样展示,不展示全部的细胞
#基于top基因重新scale并随机抽样
pbmc.Scale <- ScaleData(subset(pbmc,downsample=100),features = g )
DoHeatmap(pbmc.Scale,
features = g,
group.by = "cell_type",size = 3,
assay = 'RNA', label = T)+
scale_fill_gradientn(colors = c("white","grey","firebrick3"))
一般是默认展示图例的,如果不想展示的话可以加上NoLegend(),选择不展示图例
DoHeatmap(pbmc.Scale,
features = g,
group.by = "cell_type",size = 3,
assay = 'RNA', label = T)+NoLegend()+
scale_fill_gradientn(colors = c("white","grey","firebrick3"))
这期推文主要整理了一下DoHeatmap的常用参数,以及基于DoHeatmap的参数我们可以进行的一些图片调整与美化。
很多朋友在进行热图可视化的时候,会选择用到Complexheatmap包,进行美化。那下期可以一起来学习一下使用Complexheatmap绘制热图。
https://mp.weixin.qq.com/s/s46KSqHdTYYIwRRQEGf_MQ