利用棒棒糖图展示单细胞marker基因表达量

今天小果想用棒棒糖图来展示单细胞marker基因在不同细胞群里的表达量情况,展示出的效果非常不错,单细胞数据来自以前推文单细胞数据分析结果,有需要的可以系统学习一下单细胞数据分析流程,话不多说开始今天的分享,代码如下:

  1. 安装需要的R包

install.packages(“BiocManager”)

BiocManager::install(“Seurat”)

install.packages(“ggsci”)

install.packages(“reshape2”)

install.packages(“tidyverse”)

install.packages(“ggplot2”)

  1. 导入需要的R包

library(Seurat)

library(ggsci)

library(reshape2)

library(tidyverse)

library(ggplot2)

3.开始绘图

#需要展示的marker基因

gene <- c(“CD3E”,”MS4A1″,”GNLY”,”CD14″)

#计算平均表达量

Idents(pbmc) <- “seurat_clusters”

AveExpression <- AverageExpression(pbmc, assays = “RNA”, features = gene,verbose = TRUE) %>% .$RNA %>%as.data.frame

#将行名转换为列

AveExpression$Gene <- rownames(AveExpression)

#长宽数据转换

df <- melt(AveExpression,id.vars= “Gene”)

colnames(df) <- c(“Gene”, “Cluster”, “Expression”)

#对表达量进行设置

df$Expression[which(df$Expression>10)] <- 10 ####设置平均表达量大于10的值为10

#开始绘图

p1 <- ggplot(df,aes(x=Gene, y=Expression))+

geom_hline(yintercept = seq(0, 10, 2.5),linetype = 2, color = “lightgray”,size=1)+

geom_segment(aes(x=Gene,xend=Gene,y=0,yend=Expression),color=”lightgray”,size = 1.5)+

geom_point(size=3,aes(color=Gene))+

scale_color_npg() +

theme_bw()+

theme(panel.grid =element_blank()) +

labs(x=””,y=”Gene expression”)

#分面

p1 <- facet(p1, facet.by = “Cluster”,ncol = length(unique(df$Cluster)),panel.labs.font = list(size = 12),panel.labs.background = list(fill = “#a6cee3”))

#调整主题

p1 <- p1 + scale_y_continuous(position = “right”)+ ####用来将y轴移动位置

theme(axis.text.y = element_text(size=12, colour = “black”))+

theme(axis.text.x = element_blank())+ ## 删去X轴所有刻度标签

theme(axis.title.y = element_text(size=12, colour = “black”))+

theme(axis.title.x = element_blank())+

theme(legend.position = “right”,

panel.border = element_blank(),## 去掉最外层的正方形边框

axis.ticks.x = element_line(color = NA))

Dingtalk_20230313092449

小果今天的分享就到这里,单细胞数据分析需要在性能好的服务器进行数据分析,小果安利本公司服务器,已安装所有单细胞分析软件和R包,有需要的可以联系小果,下期再见奥。