前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scRNA分析| DoHeatmap 美化,dittoSeq ,scillus 一行代码出图,你PICK谁?

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

作者头像
生信补给站
发布2023-08-25 10:31:28
1.6K0
发布2023-08-25 10:31:28
举报
文章被收录于专栏:生信补给站

单细胞常见的可视化方式有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 即可获取

代码语言:javascript
复制
library(Seurat)
library(tidyverse)
library(viridis)
library(RColorBrewer)

load("sce.anno.RData")
head(sce2,2)

二 Seurat 调整,美化

1,计算marker 基因

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

代码语言:javascript
复制
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 的一些函数进行美化

代码语言:javascript
复制
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 进行绘图

代码语言:javascript
复制
mat <- GetAssayData(pbmc,slot = 'scale.data')

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

ComplexHeatmap|绘制单个热图-I

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

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

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

四 dittoSeq 绘制

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

代码语言:javascript
复制
#BiocManager::install("dittoSeq")
library(dittoSeq)
dittoHeatmap(sce2, top5$gene,
             annot.by = c("celltype", "sample","AUCell"))

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

五 scillus 绘制

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

代码语言:javascript
复制
#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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信补给站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,计算marker 基因
  • 2,优化颜色,标签
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档