scRNA分析| DoHeatmap 美化,dittoSeq ,scillus 一行代码出图,你PICK谁?

学术   其他   2023-07-18 09:00   北京  

单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap几种 ,Seurat均可以实现,但文献中的图大多会精美很多。比如

惊艳umap图: scRNA复现|所见即所得,和Cell学umap,plot1cell完成惊艳的细胞注释umap图

DimPlot美化 scRNA分析 | 定制 美化FeaturePlot 图,你需要的都在这,

DotPlot美化scRNA分析| 和SCI学 定制化聚类点图(Dotplot ),含二行代码出图方式

本次介绍DoHeatmap 热图的美化。

(1)Seurat优化

(2)dittoSeq 一键式 热图

(3)scillus 一键式 热图

一 载入R包,数据 


仍然使用之前注释过的sce.anno.RData数据 ,后台回复 anno 即可获取

library(Seurat)library(tidyverse)library(viridis)library(RColorBrewer)
load("sce.anno.RData")head(sce2,2)

二 Seurat 调整,美化 


1,计算marker 基因

首先计算marker基因,然后使用seurat的DoHeatmap 函数绘制初始热图

all_markers <- FindAllMarkers(object = sce2)
top5 <- all_markers %>% group_by(cluster) %>% top_n(5, avg_log2FC)##Seurat 初始热图 DoHeatmap(sce2,top5$gene)

相较文献可调整(1)anno的标签有无以及大小(2)热图的颜色(3)聚类与否(4)是否添加sample,group 以及 评分等anno中相关信息的注释

2,优化颜色,标签

基于seurat的基础上,同样也可以使用ggplot2 的一些函数进行美化

DoHeatmap(sce2, label = F , # 不加label          features = as.character(unique(top5$gene)),             group.by = "celltype",            assay = "RNA",            group.colors = c("#C77CFF","#7CAE00","#00BFC4","#F8766D","#AB82FF","#90EE90","#00CD00","#008B8B","#FFA500"))+ #设置组别颜色  scale_fill_gradientn(colors = c("navy","white","firebrick3"))#设置热图颜色

至于是否聚类,更多meta信息的注释,交给后续选手了!

三 "定制"热图 


提取单细胞矩阵,然后使用pheatmap 或者 complexheatmap 进行绘图

mat <- GetAssayData(pbmc,slot = 'scale.data')

注意使用scale后的数据,该方法需要一些基础知识的组合,以及时间的调整,但绝对是值得的。一些绘图细节可以参考

ComplexHeatmap|绘制单个热图-I 

pheatmap|暴雨暂歇,“热图”来袭!!! 

scRNA分析| 和SCI学 定制化聚类点图(Dotplot ),含二行代码出图方式

下面同样给出封装比较好的2个现有R包,都可以一个函数完成多种美化内容,自行选取一个即可。

dittoSeq 绘制 


使用dittoSeq 中的dittoHeatmap函数,速且简单的完成热图绘制以及多个meta信息的注释

#BiocManager::install("dittoSeq")library(dittoSeq)dittoHeatmap(sce2, top5$gene,             annot.by = c("celltype", "sample","AUCell"))

可以使用??dittoHeatmap 查看更多的参数 或者 参照文末的链接,自定义热图的颜色,anno的颜色,是否聚类等。

五 scillus 绘制 


scillus-R 包也是一个神器,这里只展示热图的绘制,更多的单细胞可视化参考文末的参考链接。

#devtools::install_github("xmc811/Scillus", ref = "development")library(Scillus)#使用和umap一致的颜色  my36colors <-c('#E5D2DD', '#53A85F', '#F1BB72', '#F3B1A0', '#D6E7A3', '#57C3F3', '#476D87',               '#E95C59', '#E59CC4', '#AB3282', '#23452F', '#BD956A', '#8C549C', '#585658',               '#9FA3A8', '#E0D4CA', '#5F3D69', '#C5DEBA', '#58A4C3', '#E4C755', '#F7F398',               '#AA9A59', '#E63863', '#E39A35', '#C1E6F3', '#6778AE', '#91D0BE', '#B53E2B',               '#712820', '#DCC1DD', '#CCE0F5',  '#CCC9E6', '#625D9E', '#68A180', '#3A6963',               '#968175')
plot_heatmap(dataset = sce2, markers = top5$gene, sort_var = c("celltype","sample"), anno_var = c("celltype","sample","percent.mt","AUCell"), anno_colors = list("Set2", # RColorBrewer palette my36colors,  # color vecto "Reds",                                "Greens"))

使用和umap一致的颜色,方便对比。anno_colors 接受一个list对象,根据anno_var 中的注释变量的情况,选择连续或者分类的颜色。


参考资料:

https://scillus.netlify.app/vignettes/plotting.html

https://bioconductor.org/packages/devel/bioc/vignettes/dittoSeq/inst/doc/dittoSeq.html

◆ ◆ ◆  ◆ 

精心整理(含图PLUS版)|R语言生信分析,可视化(R统计,ggplot2绘图,生信图形可视化汇总)

RNAseq纯生信挖掘思路分享?不,主要是送你代码!(建议收藏)

生信补给站
生信,R语言, Python,数据处理、统计检验、模型构建、数据可视化,我输出您输入!
 最新文章