Post

Cell type proportion을 표현하는 방법 02

Pie chart

지난번에는 찾은 cell type의 비율을 bar plot으로 정리하는 코드를 작성했었는데

👉 cell type proportion barplot으로 표현하기 포스트

이번에는 pie chart로 정리해보자.

예시 데이터

같은 데이터 level1(coarse)과 level2(fine) 두 단계로 나눠서 cell type annotation마침. level2 에 대해서 proportion을 구하고 pie chart로 정리해 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
library(scales) # percent 표기
library(ggrepel)
library(ggplot2)

## load the data
GEX.seurOBJ <-readRDS("GEX.seurOBJ.labeled.rds")
# create a dataset
df<-data.frame(table(GEX.seurOBJ$Annot.L2))
colnames(df)[1] <- "CellTypes.Annot.L2"
df$amount <- round(df$Freq/ncol(seurOBJ)*100,digits=2)

df2 <- df %>% 
  mutate(csum = rev(cumsum(rev(Freq))), 
         pos = Freq/2 + lead(csum, 1),
         pos = if_else(is.na(pos), Freq/2, pos))

# pie chart
bp<- ggplot(df, aes(x="", y=Freq, fill=CellTypes.Annot.L2))+ geom_bar(width = 1, stat = "identity")
pie <- bp + coord_polar("y", start=0) +  theme_void()  + 
#  scale_fill_manual(values=c('#81D4FA','#3C87CC','#97DCE8','#F53093','#9437FF',"#B65FCF",'#ED7D32','#F8A929','#FBD907','#DB6F6F','#B71E1E','#808080','#A6A6A6','#945200')) +
  geom_label_repel(data = df2, aes(y = pos, label = paste0(amount, "%")),
                   size = 4.5, nudge_x = 1, show.legend = FALSE) 
ggsave("pie.total.Annot.L2.png")

results

reference

This post is licensed under CC BY 4.0 by the author.

© Subin Cho. Some rights reserved.

Using the Chirpy theme for Jekyll.