单细胞单细胞组学单细胞测序

单细胞聚类图形填充

2020-05-25  本文已影响0人  静小沐

单细胞填坑快2年了,虽说经常遇到一些薅头发的时候,但却总是割舍不掉。嗨,打啥感情牌呀,进入主题。在单细胞转录组分析中,目前使用的最广的软件是基于R的Seurat,具体安装方式大家可以参考我之前的简书。Seurat的画图算法大体上都是基于ggplot的,但有些好看的图是没法用其函数进行实现,那么接下来我们上菜吧!

  1. 点图
    在Seurat软件包中,DimPlot函数基本上能较好地展示我们常见的一些分析需求。我们看一下他的函数解释:
DimPlot(
       dims = c(1, 2),                  
       cells = NULL,                ###绘制您想展示的细胞集                   
       cols = NULL,                ###颜色
       pt.size = NULL,            ###点的大小
       reduction = NULL,        ###降维可视化方法,一般是tsne或者umap
       group.by = NULL,        ###颜色填充的依据
       split.by = NULL,          ###一个坐标轴中展示一种split的元素,类似于分页图
       shape.by = NULL,        ###形状填充的依据
       order = NULL,            ###对一些覆盖的idents(细胞群id)进行优先展示
       label = FALSE,            ###在图中显示群名标签
       label.size = 4,            ###群名标签字体大小
       repel = FALSE,           ###Repel 标签
       cells.highlight = NULL,         ###高亮某种类型的细胞群
       cols.highlight = "#DE2D26",   ###高亮的颜色
       sizes.highlight = 1,            ###高亮的大小
       na.value = "grey50",         ###未高亮的细胞群颜色
       combine = TRUE,          ###是否将所有图形放在一起
       ncol = NULL,               ###展示多少列的图形
       ...
     )

以上参数的选择能帮您绘制各式各样的点图。
接下来我们采用第三方软件来增加点图的丰度~
推荐一个画图函数,ggscatter。接下来看看他们能做什么吧。我这里不提供测试数据,大家可自行去查找一些数据,但是脚本的格式是一样的。首先,我们来看一下下面这张经典的分析T细胞的t-SNE图。


Image.png

这个图是不是很好看?看看如何用ggscatter来实现它吧。
第一步:获取数据

pbmc@meta.data$Barcode <-rownames(pbmc@meta.data)
x<-as.data.frame(pbmc@reductions$umap@cell.embeddings) 
x$Barcode <-rownames(x)
y <-data.frame(pbmc@meta.data[,c('Barcode','seurat_clusters','tech')])
lab <-merge(x,y,barcode='Barcode')
color<-hue_pal()(13)   ###R绘图的默认色
lab$seurat_clusters <-factor(lab$seurat_clusters,levels=0:12)   ##按照cluster id进行排序

数据格式如下所示:


Image2.png

接下来绘制上图。

pdf('test_umap.pdf',w=12,h=8)
p8 <- ggscatter(lab, x = "UMAP_1", y = "UMAP_2",
color = "seurat_clusters", shape = "tech",palette = color,fill= "seurat_clusters",ellipse = TRUE,size=0.8,ellipse.level = 0.95,ellipse.alpha=0)
p8
dev.off()

ggscatter函数的参数介绍有个大神已经描述的很详细的了,大家可以移步Davey1220进行查看。
上图需要设置的一个参数为palette=c() 椭圆填充颜色的列表
ellipse=T,表示添加椭圆。size为点的大小。ellipse.level 正态概率中有多少对象在这个椭圆中,即椭圆的大小。ellipse.alpha为填充颜色的透明度,alpha = 0表示没有填充颜色。

图形如下所示:


Image3.png

个人觉得图形仍然不是很好看,各位看官自己掂量吧~~

上一篇 下一篇

猜你喜欢

热点阅读