单细胞差异基因炫酷展示:南丁格尔玫瑰图(鸡冠花图)

差异基因展示图

    这个图分别选取了两组差异基因相比上调与下调的基因来进行绘图。简言之,展示了每一个出现在差异基因表中的差异基因在不同celltype中共表达的情况,每一格代表一个celltype,红色代表上调的基因,蓝色代表下调的基因。如何做出来的差异基因比较,见我主页的另一片文章《单细胞多组差异基因上下调统计热图展示代码示例》。

    代码展示环节:

    首先加载r包与数据:

```

library(dplyr)

library(reshape2)

library(ggplot2)

library(colorspace)  #加载渐变色的包

library(patchwork)

data <- read.csv("P0_VS_AD.csv",sep = ",",row.names = 1) %>% .[.$p_val_adj < 0.05,]

data_up <- data[data$avg_log2FC > 0.25,]

data_down <-data[data$avg_log2FC <= -0.25,]

up <- as.data.frame.array(table(data_up$gene,data_up$cluster))

```

    这样,我们就得到了上调的基因在每个celltype的出现情况:


up数据展示

    随后,我们选取共同出现次数为7,8,9,10,11的基因来绘图。

```

up$sum <- apply(up,1,sum)

up <- up[up$sum %in% c("7","8","9","10","11"),] %>% .[order(as.numeric(.$sum)),-c(12)] #筛选&排序

up <- as.data.frame(t(up))

up$celltype <- rownames(up)

```

    现在的数据可以用来画图,列是基因,行是celltype。

上调基因在celltype中分布

    利用ggplot绘图:

```

data <- melt(up,id.vars = 'celltype')

color1 <- rev(colorspace::sequential_hcl(n = 11, palette = "Red"))

p1 <- ggplot(data,aes(variable,value,fill=celltype))+

  scale_fill_manual(values=color1) +

  geom_bar( position = "stack",stat = "identity",width = 0.7)+theme_bw()+

  coord_polar()+

  theme(axis.text.x = element_text(vjust = 1, hjust = 1,angle = 45),

        axis.text.y = element_blank(),

        axis.line = element_blank(),

        axis.title  = element_blank(),

        axis.ticks = element_blank(),  #  删除坐标线

        panel.grid.major = element_blank(),

        panel.grid.minor = element_blank(),

        panel.border = element_blank())

```


成图展示

    同理,下调的也是这样,把上调与下调的加起来就得到了刚开始展示的图。

```

down <- as.data.frame.array(table(data_down$gene,data_down$cluster))

down$sum <- apply(down,1,sum)

down <- down[down$sum %in% c("7","8","9","10","11"),] %>% .[order(as.numeric(.$sum)),-c(12)]

down <- as.data.frame(t(down))

down$celltype <- rownames(down)

data <- melt(down,id.vars = 'celltype')

color1 <- rev(colorspace::sequential_hcl(n = 11, palette = "Blue"))

p2 <- ggplot(data,aes(variable,value,fill=celltype))+

  scale_fill_manual(values=color1) +

  geom_bar( position = "stack",stat = "identity",width = 0.7)+theme_bw()+

  coord_polar()+

  theme(axis.text.x = element_text(vjust = 1, hjust = 1,angle = 45),

        axis.text.y = element_blank(),

        axis.line = element_blank(),

        axis.title  = element_blank(),

        axis.ticks = element_blank(),  #  删除坐标线

        panel.grid.major = element_blank(),

        panel.grid.minor = element_blank(),

        panel.border = element_blank())

p <- p1 + p2

ggsave("deg_gene.pdf",p,width = 20,height = 10)

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容