Browse Source

Cambio a pie chart para Visor IC.

main
marcelcosta 2 years ago
parent
commit
e95caafe28
1 changed files with 125 additions and 31 deletions
  1. +125
    -31
      BDAccess/app.R

+ 125
- 31
BDAccess/app.R

@ -829,45 +829,139 @@ server <- function(input, output) {
output$visorplot<-renderPlot({
if (input$nhc == 3){
pops<-sqlFetch(dta, "POPULATIONS")
g_pop<-pops %>% dplyr::filter(samples == input$id) %>% gather(pop,value,-samples) %>%
mutate(pop=factor(pop, levels=c("CD45pos_Alive","T_cells","CD8","CD4","DN","NK", "B_cells",
"CD45neg_LDneg","EpCAMneg_HLAIneg","EpCAMneg_HLAIpos","EpCAMpos_HLAIpos"))) %>%
ggplot(aes(pop, value))+
geom_bar(stat="identity", color="black", fill="grey70")+
labs(title = input$id, y="% parent", x="")+
theme_bw()+
theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5))
tl<-sqlFetch(dta, "IC") %>% filter(samples == input$id)
data<-sqlFetch(dta, "IC") %>% filter(samples == input$id)
data1<-data %>% gather(phen, value, -samples, -Population)
data1$phen<-gsub("p","+",data1$phen)
data1$phen<-gsub("n","-",data1$phen)
data1$phen<-gsub("_"," ",data1$phen)
data1$phen<-gsub("n","-",data1$phen, fixed = T)
data1$phen<-gsub("p","+",data1$phen, fixed = T)
data1$phen<-gsub("_"," ",data1$phen)
data1[data1$value < 0.5, "phen"]<-"Other"
data1$phen<-gsub("[A-Z]*-*[0-9T]- *", "", data1$phen)
data1$phen<-gsub("+ $", "", data1$phen)
data1$phen[data1$phen == ""]<-"All Negative"
# data1<-data1 %>% filter(value > 0.5)
data1["phen1"]<-"PD1"
data1[!grepl("PD1+", data1$phen),"phen1"]<-NA
data1["phen2"]<-"TIM3"
data1[!grepl("TIM3+", data1$phen),"phen2"]<-NA
data1["phen3"]<-"CTLA4"
data1[!grepl("CTLA4+", data1$phen),"phen3"]<-NA
mtl<-melt(tl, variable.name = "Receptors")
mtl$Receptors<-as.character(mtl$Receptors) #Para poder depurar bien el texto, lo pasamos a tipo character
mtl$Receptors<-gsub("n","-",mtl$Receptors, fixed = T)
mtl$Receptors<-gsub("p","+",mtl$Receptors, fixed = T)
mtl$Receptors<-gsub("_"," ",mtl$Receptors)
mtl[mtl$value < 1, "Receptors"]<-"Other"
mtl$Receptors<-gsub("[A-Z]*-*[0-9T]- *", "", mtl$Receptors)
mtl$Receptors<-gsub("+ $", "", mtl$Receptors)
mtl$Receptors[mtl$Receptors == ""]<-"All Negative"
data1["phen4"]<-"TIGIT"
data1[!grepl("TIGIT+", data1$phen),"phen4"]<-NA
mtl$Receptors<-factor(mtl$Receptors)
mtl$Population<-factor(mtl$Population, levels = c("CD8", "CD4"))
data1["phen5"]<-"LAG3"
data1[!grepl("LAG3+", data1$phen),"phen5"]<-NA
# colorCount<-length(unique(mtl$Receptors))
# getPalette = colorRampPalette(RColorBrewer::brewer.pal(12, "Set3"))
data1<-data1 %>% arrange(desc(value))
data2<-data1 %>% filter(!phen %in% c("All Negative","Other"))
data1<-rbind(data2, data1 %>% filter(phen %in% c("All Negative","Other")) %>% arrange(desc(phen)))
color<-c(c("CTLA4+ LAG3+ PD1+ TIGIT+ TIM3+"="black","All Negative"="white","Other"="grey50", "PD1+"="#C07AFF", "CTLA4+"="#3EB3DE","TIM3+"="#5EF551","LAG3+"="#DEBB3E","TIGIT+"="#FA7055"),
data_cd8<-data1 %>% filter(Population == "CD8")
data_cd4<-data1 %>% filter(Population == "CD4")
data_cd8$ymax<-cumsum(data_cd8$value)
data_cd8$ymin<-c(0, head(data_cd8$ymax, n=-1))
data_cd4$ymax<-cumsum(data_cd4$value)
data_cd4$ymin<-c(0, head(data_cd4$ymax, n=-1))
data1<-rbind(data_cd8, data_cd4)
color<-c(c("CTLA4+ LAG3+ PD1+ TIGIT+ TIM3+"="black","All Negative"="grey90","Other"="grey50", "PD1+"="#C07AFF", "CTLA4+"="#3EB3DE","TIM3+"="#5EF551","LAG3+"="#DEBB3E","TIGIT+"="#FA7055"),
c("CTLA4+ PD1+"="#6666FF","PD1+ TIM3+"="#849CA8", "LAG3+ PD1+"="#C47F9F","PD1+ TIGIT+"="#D259AA", "CTLA4+ TIM3+"="#4ED498", "CTLA4+ LAG3+"="#8EB78E", "CTLA4+ TIGIT+"="#9C929A", "LAG3+ TIM3+"="#9ED848", "TIGIT+ TIM3+"="#ACB353", "LAG3+ TIGIT+"="#EC964A"),
c("CTLA4+ PD1+ TIGIT+"="#B86B6A","CTLA4+ PD1+ TIGIT+ TIM3+"="#B81515","LAG3+ PD1+ TIGIT+"="#007D8A", "PD1+ TIGIT+ TIM3+"="#D64545", "LAG3+ PD1+ TIGIT+ TIM3+"="#0f5860", "LAG3+ TIGIT+ TIM3+"="#50cad3"))
basic.color<-color[c("PD1+","TIGIT+","TIM3+","CTLA4+","LAG3+")]
names(basic.color)<-c("PD1","TIGIT","TIM3","CTLA4","LAG3")
# Make the plot
g1<-ggplot(data1)+
facet_wrap(.~Population)+
geom_rect(aes(ymax=ymax, ymin=ymin, xmax=4.5, xmin=0), fill=color[data1$phen])+
geom_rect(aes(ymax=ymax, ymin=ymin, xmax=5.4, xmin=5, fill=factor(phen1, levels=c("PD1","TIGIT","TIM3","CTLA4","LAG3"))))+
geom_rect(aes(ymax=ymax, ymin=ymin, xmax=5.9, xmin=5.5, fill=factor(phen4, levels=c("PD1","TIGIT","TIM3","CTLA4","LAG3"))))+
geom_rect(aes(ymax=ymax, ymin=ymin, xmax=6.4, xmin=6, fill=factor(phen2, levels=c("PD1","TIGIT","TIM3","CTLA4","LAG3"))))+
geom_rect(aes(ymax=ymax, ymin=ymin, xmax=6.9, xmin=6.5, fill=factor(phen3, levels=c("PD1","TIGIT","TIM3","CTLA4","LAG3"))))+
geom_rect(aes(ymax=ymax, ymin=ymin, xmax=7.4, xmin=7, fill=factor(phen5, levels=c("PD1","TIGIT","TIM3","CTLA4","LAG3"))))+
scale_fill_manual(values = basic.color, na.value="#FFFFFF00", drop=F, limits=c("PD1","TIGIT","TIM3","CTLA4","LAG3"), name="IC")+
coord_polar(theta="y") + # Try to remove that to understand how the chart is built initially
xlim(c(0, 8)) +# Try to remove that to see how to make a pie chart
theme_classic()+
theme(strip.background = element_blank(),
strip.text = element_text(size=12, face="bold"),
axis.line = element_blank(),
axis.ticks = element_blank(),
plot.margin = margin(-200,0,0,0),
axis.text = element_blank())
# df.color<-data.frame("phen"=names(color), "color"=color)
# df.color<-rbind(
# df.color %>% filter(!phen %in% c("All Negative","Other")) %>% arrange(phen),
# df.color %>% filter(phen %in% c("All Negative","Other")) %>% arrange(desc(phen))
# )
#
# g2<-ggplot(df.color, aes(phen, 1))+
# geom_tile(fill=df.color$color)+
# scale_x_discrete(limits=df.color$phen)+
# ggtitle("Phenotype Combination")+
# theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5),
# axis.text.y = element_blank(),
# axis.ticks = element_blank(),
# axis.title = element_blank(),
# panel.background = element_blank())+
# coord_equal()
# g_IC<-ggpubr::ggarrange(g1,g2,ncol=1)
g_IC<-g1
g_IC<-ggplot(mtl, aes(samples, value, fill=Receptors))+
geom_bar(stat="summary", fun="sum",color="black")+
labs(x="Patient", y="% CD8+", fill="")+
facet_grid(.~Population)+
scale_fill_manual(values = color[levels(mtl$Receptors)[levels(mtl$Receptors) %in% unique(mtl$Receptors)]])+
theme_bw()+
theme(axis.text.x=element_text(angle=45, hjust=1))
pops<-sqlFetch(dta, "POPULATIONS")
g_pop<-pops %>% dplyr::filter(samples == input$id) %>% gather(pop,value,-samples) %>%
mutate(pop=factor(pop, levels=c("CD45pos_Alive","T_cells","CD8","CD4","DN","NK", "B_cells",
"CD45neg_LDneg","EpCAMneg_HLAIneg","EpCAMneg_HLAIpos","EpCAMpos_HLAIpos"))) %>%
ggplot(aes(pop, value))+
geom_bar(stat="identity", color="black", fill="grey70")+
labs(title = input$id, y="% parent", x="")+
theme_bw()+
theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5))
# tl<-sqlFetch(dta, "IC") %>% filter(samples == input$id)
#
# mtl<-melt(tl, variable.name = "Receptors")
# mtl$Receptors<-as.character(mtl$Receptors) #Para poder depurar bien el texto, lo pasamos a tipo character
# mtl$Receptors<-gsub("n","-",mtl$Receptors, fixed = T)
# mtl$Receptors<-gsub("p","+",mtl$Receptors, fixed = T)
# mtl$Receptors<-gsub("_"," ",mtl$Receptors)
# mtl[mtl$value < 1, "Receptors"]<-"Other"
# mtl$Receptors<-gsub("[A-Z]*-*[0-9T]- *", "", mtl$Receptors)
# mtl$Receptors<-gsub("+ $", "", mtl$Receptors)
# mtl$Receptors[mtl$Receptors == ""]<-"All Negative"
#
# mtl$Receptors<-factor(mtl$Receptors)
# mtl$Population<-factor(mtl$Population, levels = c("CD8", "CD4"))
#
# # colorCount<-length(unique(mtl$Receptors))
# # getPalette = colorRampPalette(RColorBrewer::brewer.pal(12, "Set3"))
#
# color<-c(c("CTLA4+ LAG3+ PD1+ TIGIT+ TIM3+"="black","All Negative"="white","Other"="grey50", "PD1+"="#C07AFF", "CTLA4+"="#3EB3DE","TIM3+"="#5EF551","LAG3+"="#DEBB3E","TIGIT+"="#FA7055"),
# c("CTLA4+ PD1+"="#6666FF","PD1+ TIM3+"="#849CA8", "LAG3+ PD1+"="#C47F9F","PD1+ TIGIT+"="#D259AA", "CTLA4+ TIM3+"="#4ED498", "CTLA4+ LAG3+"="#8EB78E", "CTLA4+ TIGIT+"="#9C929A", "LAG3+ TIM3+"="#9ED848", "TIGIT+ TIM3+"="#ACB353", "LAG3+ TIGIT+"="#EC964A"),
# c("CTLA4+ PD1+ TIGIT+"="#B86B6A","CTLA4+ PD1+ TIGIT+ TIM3+"="#B81515","LAG3+ PD1+ TIGIT+"="#007D8A", "PD1+ TIGIT+ TIM3+"="#D64545", "LAG3+ PD1+ TIGIT+ TIM3+"="#0f5860", "LAG3+ TIGIT+ TIM3+"="#50cad3"))
#
# g_IC<-ggplot(mtl, aes(samples, value, fill=Receptors))+
# geom_bar(stat="summary", fun="sum",color="black")+
# labs(x="Patient", y="% CD8+", fill="")+
# facet_grid(.~Population)+
# scale_fill_manual(values = color[levels(mtl$Receptors)[levels(mtl$Receptors) %in% unique(mtl$Receptors)]])+
# theme_bw()+
# theme(axis.text.x=element_text(angle=45, hjust=1))
ggpubr::ggarrange(g_pop, g_IC, heights = c(0.4, 0.6), ncol = 1)
}
})

Loading…
Cancel
Save