单细胞seurat对象-气泡图dotplot美化-颜色配色-自定义修改

大家好,欢迎来到单细胞图片美化专辑!

第一期我们分享了如何使用标准流程获取单细胞的seurat对象,也就是pbmc.rds单细胞数据pbmc数据下载,标准处理流程获取seurat对象

第二期我们分享了如何美化featureplot单细胞featureplot美化修改-自定义修改图片样式-umap密度图画等高线

本期将分享如何美化dotplot,继续使用pbmc示例,第一期获得的pbmc对象

首先读取数据,并分组、通过findallmarkers计算marker基因

pbmc=readRDS("~/gzh/featureplot_dotplot_vlnplot/pbmc3k_final.rds")

#养成好习惯,每次setseed 在某些步骤可确保每次分析结果一致
set.seed(123)

head(pbmc@meta.data)

#我们把数据集随机分成两组 如果是你自己的数据,就按照自己的分组来。
#我这里只是为了演示不同组别的图怎么画,所以就随机分组了哈
# 随机取样1000个细胞
sampled_cells <- sample(colnames(pbmc), size = 1000, replace = FALSE)

# 将随机取样的细胞命名为'con',其余细胞命名为'exp'

# add groups
pbmc$groups <- ifelse(colnames(pbmc)  %in% sampled_cells ,'con','exp')
table(pbmc$groups)

# add celltype
pbmc$celltype <- Seurat::Idents(pbmc)

pbmc.markers=FindAllMarkers(pbmc,logfc.threshold = 1,only.pos = TRUE,densify = TRUE)

top3pbmc.markers=   pbmc.markers %>%
  group_by(cluster) %>%
  slice_max(n = 3, order_by = avg_log2FC)  #%>%dplyr::select(gene) 

top3pbmc.markers

1 最简单的气泡图dotplot

图片

DotPlot(pbmc,features = top3pbmc.markers$gene)+RotatedAxis()

1.0 split()拆分画dotplot个性化图

图片

1.0# split() 返回的是一个按照cluster拆分的gene list,格式参考下文自定义 gene listDotPlot(pbmc, features = split(top3pbmc.markers$gene, top3pbmc.markers$cluster) )+  RotatedAxis()

1.0.1 自定义dotplot marker gene list 作为输入。同时修改颜色为红-灰色渐变,对行进行聚类.顺序大家可以自行调整一下。

图片

1.01library(ggplot2)# list_genes=split(topN$gene, topN$cluster)list_genes=list(T=c("PTPRC","CD3D","CD3E", "CD3G", "CD4", "CD8A","CD8B",                    "CCR7", "LEF1", "GZMH", "GZMK"),                B=c("CD79A", "CD79B", "MS4A1", "TCL1A", "CD22", "CD19"),                mono=c("CD14",  "S100A8", "S100A9", "FCN1",'LYZ',                       "FCGR3A", "MS4A7" ),                NK=c("NKG7","GZMB", "GZMA", "CST7"),                DC=c("FCER1A", "CST3", "CLEC10A"),                platelet=c("PPBP","GP9","ITGA2B","PF4" ) )
p1=DotPlot(pbmc,           features=list_genes,           cols = c("grey", "red"),           cluster.idents = T)+  RotatedAxis()+  theme(    # 面板    panel.border = element_rect(color="black"), #面板边框    panel.spacing = unit(1, "mm"), #面板间距        # 分面标题    #strip.background = element_rect(color="red"),    strip.text = element_text(margin=margin(b=3, unit="mm")),    strip.placement = 'outlet', #        # 坐标轴线    axis.line = element_blank(),  )+labs(x="", y="")p1

1.0.2 美化上面的dotplot

图片

# https://stackoverflow.com/questions/54471816/remove-three-sides-of-border-around-ggplot-facet-strip-label

library(grid)
p <- ggplotGrob(p1)
lg <- linesGrob(x=unit(c(0,1),"npc"), y=unit(c(0,0)+0.2,"npc"),
                gp=gpar(col="black", lwd=4))

grid.newpage(); #grid.draw(lg)
for (k in grep("strip-t",p$layout$name)) {
  p$grobs[[k]]$grobs[[1]]$children[[1]] <- lg
}

grid.draw(p)

1.1dotplot修改配色颜色 横纵坐标轴翻转

图片

p <- DotPlot(pbmc, features = unique(top3pbmc.markers$gene) ,              assay='RNA' ) +   coord_flip() + #翻转  theme(panel.grid = element_blank(),         axis.text.x=element_text(angle = 45, hjust = 0.5,vjust=0.5))+ #轴标签  labs(x=NULL,y=NULL) +   guides(size = guide_legend("Percent Expression") )+ #legend  scale_color_gradientn(colours = c('#330066','#336699','#66CC66','#FFCC33')) #颜色p

1.2scCustomize包画美化的dotplot

图片

2.分面气泡图dotplot

图片

p1 <- DotPlot(pbmc,    features = split(top3pbmc.markers$gene, top3pbmc.markers$cluster),    cols = c("#ffffff", "#448444")    ) +    RotatedAxis() + # 来自Seurat    theme(         panel.border = element_rect(color = "black"),         panel.spacing = unit(1, "mm"),         axis.title = element_blank(),         axis.text.y = element_blank(),     )     p1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信小博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值