scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图

简介: scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图



类似2021年CELL 文章Single-cell landscape of the ecosystem in early-relapse hepatocellular carcinoma,单细胞文献的Fig1一般会有细胞类型的全局umap图,分样本 和 分组的umap图 ,以及分样本 和 分组的细胞类型比例柱形图。

本推文介绍一下如何实现,涉及(1)颜色调整 ;(2)标签顺序设定 ;(3)pathwork组图拼图


一 调整umap图

读取scRNA分析|Marker gene 可视化 以及 细胞亚群注释--你是如何人工注释的?中注释后的RData文件 ,然后查看一下

library(Seurat) 
library(tidyverse)
library(patchwork) #拼图
#读取数据
load("sce.anno.RData")
head(sce2@meta.data)
table(sce2@meta.data$celltype)


1.1 设置颜色

colour=c("#DC143C","#0000FF","#20B2AA","#FFA500","#9370DB","#98FB98","#F08080","#1E90FF","#7CFC00","#FFFF00",  
         "#808000","#FF00FF","#FA8072","#7B68EE","#9400D3","#800080","#A0522D","#D2B48C","#D2691E","#87CEEB","#40E0D0","#5F9EA0",
         "#FF1493","#0000CD","#008B8B","#FFE4B5","#8A2BE2","#228B22","#E9967A","#4682B4","#32CD32","#F0E68C","#FFFFE0","#EE82EE",
         "#FF6347","#6A5ACD","#9932CC","#8B008B","#8B4513","#DEB887")
t1 <- DimPlot(sce2, reduction = 'umap', 
              cols = colour , #设置颜色
              repel = T,  #label不重叠
              label.size = 5, #调整label的大小
              label = TRUE,  #是否展示label
              pt.size = 0.5) 
t2 <- DimPlot(sce2, reduction = 'umap', 
        group.by = "sample",
        cols = colour , label = F, pt.size = 0.5) 
t1 + t2

颜色比默认时候好很多 ;但是分样本umap图的标签顺序是MET样本在上 PT样本在下,想更改一下 ,可以使用以下设置factor的方式进行。

注:group.by 选择metadata中的某列 即可以进行展示了 。当然可以添加你想展示的各种score,表达量,时序结果等等。 还有一个 split.by 函数 ,也很有用,可以自行试一下。


1.2 设置标签顺序

标签顺序可以自定义为自己想展示的顺序

#设置sample的顺序
sce2@meta.data$sample <- factor(sce2@meta.data$sample, 
                                 levels=c("P01", "P02","P03", "P04" , "P05","P06","P07" ,"P08", "P09" ,"P10" ,
                                          "MET01" ,"MET02","MET03" ,"MET04" ,"MET05" ,"MET06"
) )
#设置group顺序
sce2@meta.data$group <- factor(sce2@meta.data$group, 
                                levels=c("PT", "MET") )
Idents(sce2) <- "celltype"
p1 <- DimPlot(sce2, reduction = 'umap', 
        cols = colour , #设置颜色
        repel = T,  #label不重叠
        label.size = 5, #调整label的大小
        label = TRUE,  #是否展示label
        pt.size = 0.5) 
p2 <- DimPlot(sce2, reduction = 'umap', 
              group.by = "sample",
              cols = colour , 
              label = F, pt.size = 0.5) 
p3 <- DimPlot(sce2, reduction = 'umap', group.by = "group",cols = colour , 
              label = F, pt.size = 0.5) 
#简单的拼图
p1 / (p2 + p3)


二 细胞比例柱形图

绘制细胞比例柱形图的话,只需要根据metadata中的样本(分组)和细胞类型(cluster) ,table后获得长数据,然后ggplot2绘制即可

#分样本
sample_table <- as.data.frame(table(sce2@meta.data$sample,sce2@meta.data$celltype))
names(sample_table) <- c("Samples","celltype","CellNumber")
plot_sample<-ggplot(sample_table,aes(x=Samples,weight=CellNumber,fill=celltype))+
  geom_bar(position="fill")+
  scale_fill_manual(values=colour) + 
  theme(panel.grid = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        axis.line.x = element_line(colour = "black") ,
        axis.line.y = element_line(colour = "black") ,
        plot.title = element_text(lineheight=.8, face="bold", hjust=0.5, size =16)
  )+labs(y="Percentage")+RotatedAxis()
plot_sample
#分组
group_table <- as.data.frame(table(sce2@meta.data$group,sce2@meta.data$celltype))
names(group_table) <- c("group","celltype","CellNumber")
plot_group<-ggplot(sce2@meta.data,aes(x=group,fill=celltype))+
  geom_bar(position="fill")+
  scale_fill_manual(values=colour) + 
  theme(panel.grid = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        axis.line.x = element_line(colour = "black") ,
        axis.line.y = element_line(colour = "black") ,
        plot.title = element_text(lineheight=.8, face="bold", hjust=0.5, size =16)
  )+labs(y="Percentage")
plot_group
plot_sample + plot_group + 
  plot_layout(widths = c(2, 1))

ggplot2绘制就意味着可以根据自己的需求随意调整

三 patchwork拼图


上两部分最后都涉及到了拼图,最终把所有结果合在一起,并添加A B的标识 ,建议通过小括号来区分优先级 。

简单的汇总一下pathwork的拼图规则:

(1)+ 运算符进行图形拼接(并不提供任何布局信息,并列)

(2)|:图形并列放置,即按行排列

(3) /:图形竖直堆叠,即按列排列

(4)plot_layout中的widths 和 heights 控制图形的 宽和高

(5)tag_level 用于控制标签的格式,格式包括:

  • 1:阿拉伯数字
  • a:小写字母
  • A:大写字母
  • i:小写罗马数字
  • I:大写罗马数字


相关文章
|
缓存 监控 数据可视化
linux查看内存信息
在Linux中检查内存使用:`free -h`或`-m`显示简洁内存统计;`cat /proc/meminfo`获取详细信息;`top`或`htop`(如果安装)实时监控进程内存占用;`vmstat`查看虚拟内存统计;`sar -r`(需要sysstat)报告系统内存活动。图形工具如Gnome System Monitor提供可视化界面。
567 4
|
SQL XML Java
【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)
【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)
168 1
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是一款R包,专注于GO富集分析的可视化,提供多种图表类型如GOBar、GOBubble、GOCircle、GOChord和GOVenn等。这些函数允许用户轻松修改参数,定制颜色、大小和排序,实现数据的直观展示。示例代码展示了如何使用这些功能创建不同类型的图形,并提到了一个配套的shiny应用。`GOplot`简化了复杂的数据可视化过程,适合快速高效地展示差异分析结果。
585 0
|
移动开发 关系型数据库 atlas
空间转录组|数据读入,标准数据形式外,还有哪些&quot;天残地缺&quot;可以读取
空间转录组|数据读入,标准数据形式外,还有哪些&quot;天残地缺&quot;可以读取
2092 0
|
人工智能 数据可视化
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
1563 1
|
数据挖掘
2-华大时空组学分析软件 Spateo 空转数据基础分析用法示例
本分分享了使用华大时空组学分析软件 Spateo进行聚类、DE等简单空间转录组分析的用法示例,以供参考
1625 1
|
机器学习/深度学习 算法 PyTorch
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
1929 0
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
|
存储 数据可视化 Shell
单细胞免疫组库VDJ|从数据下载开始完成cellranger vdj分析(1)
单细胞免疫组库VDJ|从数据下载开始完成cellranger vdj分析(1)
777 0
|
数据挖掘
Seurat::DotPlot 样式美化-Facet方法添加X轴注释标签
本文示例了 Seurat::DotPlot 气泡图通过 GGPLOT Facet 美化展示效果的代码过程,以供参考学习
1029 0