显示每个图的图例
rm(list=ls())
options(warn = -1)
suppressPackageStartupMessages(library(knitr))
suppressPackageStartupMessages(library(cowplot))
suppressPackageStartupMessages(library(gridExtra))
suppressPackageStartupMessages(library(png))
suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(kableExtra))
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(vioplot))
suppressPackageStartupMessages(library(googleVis))
suppressPackageStartupMessages(library(reticulate))
suppressPackageStartupMessages(library(patchwork))
suppressPackageStartupMessages(library(egg))
suppressPackageStartupMessages(library(ggvis))
old=theme_set(theme_bw()+theme(strip.background = element_rect(fill="white"),
panel.background = element_blank(),
panel.grid =element_blank()))
theme_use=theme(legend.key.size = unit(1,"cm"),
legend.key.width = unit(0,'cm'),
legend.text = element_text(size=16),
legend.title = element_text(size=20),
legend.key.height = unit(1.0,"cm"),
axis.text.x = element_blank(),
axis.text.y = element_blank())
options(repr.plot.width=12,repr.plot.height=5)
gg_color_hue <- function(n) {
hues = seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
op=par(mar=c(5,4,6,4))
color_celltype=c('#1CE6FF','#FF34FF','#FF4A46','#008941','#A30059','#FF2F80','#0000A6','#63FFAC','#004D43','#8FB0FF','#4FC601','#3B5DFF','#4A3B53','#61615A','#BA0900','#6B7900','#00C2A0','#FFAA92','#FF90C9','#B903AA')
image(1:length(color_celltype),1, as.matrix(1:length(color_celltype)),col=color_celltype,ylab="",xlab="",axes=F)
axis(3,at=seq(1:length(color_celltype)),labels=color_celltype,las=2,lwd=0)
options(repr.plot.width=12,repr.plot.height=5)
op=par(mar=c(5,4,6,4))
col.set.update <- c("#c10023", "#008e17", "#fb8500", "#f60000", "#FE0092", "#bc9000","#4ffc00", "#00bcac", "#0099cc",
"#D35400", "#00eefd", "#cf6bd6", "#99cc00", "#aa00ff", "#ff00ff", "#0053c8",
"#f2a287","#ffb3ff", "#800000", "#77a7b7", "#00896e", "#00cc99", "#007CC8")
image(1:length(col.set.update),1, as.matrix(1:length(col.set.update)),col=col.set.update,ylab="",xlab="",axes=F)
axis(3,at=seq(1:length(col.set.update)),labels=col.set.update,las=2,lwd=0)
getplotdata=function(adata,reduction.use="AAA"){
reduction_data=py_to_r(adata$obsm[[paste0("X_",reduction.use)]])
embed_data=
df=py_to_r(adata$obs)
if(reduction.use=="tsne"){
df$tSNE_1=reduction_data[,1]
df$tSNE_2=reduction_data[,2]
}else if(reduction.use=="umap"){
df$UMAP1=reduction_data[,1]
df$UMAP2=reduction_data[,2]
}
return(df)
}
## 注意这个geom_point(size=pt.size)用于设置点的大小,这个
getplot=function(df_desc,by.group = "res",ggtitle0 = "DESC",pt.size = 0.5,reduction.use = "AAA"){
if(reduction.use=="tsne"){
dim1="tSNE_1"
dim2="tSNE_2"
}else if(reduction.use=="umap"){
dim1="UMAP1"
dim2="UMAP2"
}
p= ggplot(df_desc,aes_string(x=dim1,y=dim2,color=by.group))+ geom_point(size=pt.size)+ ggtitle(ggtitle0)+
theme(plot.title = element_text(hjust = 0.5,face = "bold",size=20))+
guides(color = guide_legend(override.aes = list(size=5)))+
theme(legend.text = element_text(size=10))
return(p)
}
datadirpath="."
########################################################
reduction.use = "umap"
结果如下
method ="ground_truth"
filename_true=paste0(datadirpath,"/","muraro_true.h5ad")
ad=import("anndata",convert = FALSE)
adata_true=ad$read_h5ad(filename_true)
print(adata_true)
df_true=getplotdata(adata_true,reduction.use = reduction.use)
method ="scHSC"
filename_scHSC=paste0(datadirpath,"/","muraro_schsc.h5ad")
adata_scHSC=ad$read_h5ad(filename_scHSC)
print(adata_scHSC)
df_scHSC=getplotdata(adata_scHSC,reduction.use = reduction.use)
method ="DCA"
filename_dca=paste0(datadirpath,"/","muraro_dca.h5ad")
adata_dca=ad$read_h5ad(filename_dca)
print(adata_dca)
df_dca=getplotdata(adata_dca,reduction.use = reduction.use)
method ="desc"
filename_desc=paste0(datadirpath,"/","muraro_desc.h5ad")
adata_desc=ad$read_h5ad(filename_desc)
print(adata_desc)
df_desc=getplotdata(adata_desc,reduction.use = reduction.use)
method ="scDeepcluster"
filename_scDeepcluster=paste0(datadirpath,"/","muraro_scdeepcluster.h5ad")
adata_scDeepcluster=ad$read_h5ad(filename_scDeepcluster)
print(adata_scDeepcluster)
df_scDeepcluster=getplotdata(adata_scDeepcluster,reduction.use = reduction.use)
method ="sczidesk"
filename_sczidesk=paste0(datadirpath,"/","muraro_sczidesk.h5ad")
adata_sczidesk=ad$read_h5ad(filename_sczidesk)
print(adata_sczidesk)
df_sczidesk=getplotdata(adata_sczidesk,reduction.use = reduction.use)
显示图例
resolution_use="0.8"
reduction.use="umap"
desc_use=paste0("desc_",resolution_use)
df_desc[,desc_use]=factor(as.numeric(as.character(df_desc[,desc_use])))
ari=mclust::adjustedRandIndex(df_desc[,'true_label'],df_desc[,desc_use])
#pdesc_1=getplot(df_desc,by.group = desc_use,ggtitle0 = paste0("Cluster","(ARI=",round(ari,3),")"),pt.size = 0.2)+theme(plot.title = element_text(color="red"))
df_desc$res=df_desc[,desc_use]
pdesc_1=getplot(df_desc,by.group = "pred_label",ggtitle0 = "DESC",pt.size = 0.5,reduction.use = reduction.use)+theme(plot.title = element_text(color="red"))+
scale_color_manual(values=colorRampPalette(col.set.update)(15))+
coord_cartesian()
pdesc_2=getplot(df_desc,by.group = "true_label",ggtitle0 = "Celltype",pt.size = 0.5,reduction.use = reduction.use)+coord_cartesian()+
scale_color_manual(values=colorRampPalette(color_celltype[1:13])(13))
pdesc_3=getplot(df_desc,by.group = "true_label",ggtitle0 = "tech",pt.size = 0.5,reduction.use = reduction.use)+
scale_color_manual(values=colorRampPalette(color_celltype[1:13])(13))+
coord_cartesian()
#pdesc_4=getfeature.plot(x,pt.size = 0.5,cols.use = c("red","grey"))[[1]]+coord_cartesian()
dim1="UMAP_1"
dim2="UMAP_2"
options(repr.plot.width = 15, repr.plot.height = 5)
p=ggarrange(pdesc_1,pdesc_2,pdesc_3, ncol = 3,nrow=1) # library(egg)
## 保存高分辨率图片
不带图例
resolution_use="0.8"
reduction.use="umap"
desc_use=paste0("desc_",resolution_use)
df_desc[,desc_use]=factor(as.numeric(as.character(df_desc[,desc_use])))
ari=mclust::adjustedRandIndex(df_desc[,'true_label'],df_desc[,desc_use])
#pdesc_1=getplot(df_desc,by.group = desc_use,ggtitle0 = paste0("Cluster","(ARI=",round(ari,3),")"),pt.size = 0.2)+theme(plot.title = element_text(color="red"))
df_desc$res=df_desc[,desc_use]
pdesc_1=getplot(df_desc,by.group = "pred_label",ggtitle0 = "DESC",pt.size = 0.5,reduction.use = reduction.use)+theme(plot.title = element_text(color="red"))+
scale_color_manual(values=colorRampPalette(col.set.update)(15))+theme_use+theme(legend.position = "none")
coord_cartesian()
pdesc_2=getplot(df_desc,by.group = "true_label",ggtitle0 = "Celltype",pt.size = 0.5,reduction.use = reduction.use)+coord_cartesian()+
scale_color_manual(values=colorRampPalette(color_celltype[1:13])(13))+theme_use+theme(legend.position = "none")
pdesc_3=getplot(df_desc,by.group = "true_label",ggtitle0 = "tech",pt.size = 0.5,reduction.use = reduction.use)+
scale_color_manual(values=colorRampPalette(color_celltype[1:13])(13))+theme_use+theme(legend.position = "none")
coord_cartesian()
#pdesc_4=getfeature.plot(x,pt.size = 0.5,cols.use = c("red","grey"))[[1]]+coord_cartesian()
dim1="UMAP_1"
dim2="UMAP_2"
options(repr.plot.width = 15, repr.plot.height = 5)
p=ggarrange(pdesc_1,
pdesc_2,
pdesc_3,
ncol = 3,nrow=1) # library(egg)
## 保存高分辨率图片
print("hello world")