library(Seurat) ########################################################## ####DOTPLOT WITH STATISTIC FROM LIVER#### # Create function PlotStellare <- function(obs1=obs1, features1=features1, valueG="NewlablesG", i="CD8 T cells", group.by0 ="Clonetype2.Group", controGroup="SIINFEKL", noCtrlvsAll=T){ obs1 <- SetIdent(obs1, value = valueG) pa1 <- DotPlot(obs1, features = features1, idents = i, dot.scale=15, split.by = group.by0, cols="RdBu", scale=T)+RotatedAxis() df1 <- pa1$data contro0<- paste0(i,"_",controGroup) a1 <- sub(paste0(i,"_"),"",unique(df1$id)) dfcombo <- NULL for (ix in a1){if(ix!=controGroup){ m.Combo <- FindMarkers(obs1, ident.1 = ix,ident.2=controGroup, group.by = group.by0, subset.ident = i,features = features1, min.pct=0.01, logfc.threshold=0, min.cells.feature=1, min.cells.group=1) }else{ m.Combo <- FindMarkers(obs1, ident.1 = ix, group.by = group.by0, subset.ident = i,features = features1, min.pct=0.01, logfc.threshold=0, min.cells.feature=1, min.cells.group=1) if(noCtrlvsAll){m.Combo$p_val_adj <- 1} } m.Combo <- m.Combo[match(features1,rownames(m.Combo)),] m.Combo$ix <- ix dfcombo <- rbind(dfcombo,m.Combo)} df2 <- cbind(df1,dfcombo) data.frame(df2$id,df2$ix) df2$stars <- ifelse(df2$p_val_adj< 0.001,"***", ifelse(df2$p_val_adj< 0.01,"**", ifelse(df2$p_val_adj< 0.05,"*",""))) df2$id <- factor(x = df2$id, levels = paste0(i,"_",rev(a1))) a <- ggplot(df2, aes(y=id, x=features.plot, size=pct.exp ,color=avg.exp.scaled)) + geom_point() + scale_size_area(max_size=15) + scale_colour_gradient2(low="blue",mid="darkgrey",high="darkred") + #"#CCCCFF" labs(y='',x='')+ geom_text(aes(label=stars,vjust=0.8),col="black",size=4)+ theme_classic()+ theme(axis.text.y = element_text(color = "Black"))+ theme(axis.text.x = element_text(angle=45, hjust=1, color = "Black"))+ theme(axis.line.x=element_line(color="Black"))+ theme(axis.line.y=element_line(color="Black"))+ ggtitle(paste0(unique(obs1$Tissue),".",i," vs ",controGroup)) return(a)} plotRadar <- function(i){ ploTData<- rbind(max1,min1,get(i)) id <- sub(".db","",i) radarchart(ploTData, title = id, pcol=colors_border, pfcol=colors_in, plwd=2, plty=1, cglcol="grey", cglty = 1, cglwd=0.8) } #function to plot radarplot