PlotPercent <- function(seurat_object,factor.1,factor.2,tag,path_out){
meta_data_new <- seurat_object@meta.data[,match(c(factor.1,factor.2),colnames(seurat_object@meta.data))]
print(head(meta_data_new))
plot_data <- table(meta_data_new)
plot_data <- as.data.frame(plot_data)
assign(paste0(factor.1,"_percent_by_",factor.2),ggplot(plot_data,aes(get(factor.2),Freq,fill=get(factor.1)))+geom_col(position = 'fill')+labs(x = factor.2, y = 'cell_percentage'))
assign(paste0(factor.2,"_percent_by_",factor.1),ggplot(plot_data,aes(get(factor.1),Freq,fill=get(factor.2)))+geom_col(position = 'fill')+labs(x = factor.1, y = 'cell_percentage'))
ggsave(paste0(tag,"_",factor.1,"_percent_by_",factor.2,".png"),get(paste0(factor.1,"_percent_by_",factor.2)),path=path_out)
ggsave(paste0(tag,"_",factor.2,"_percent_by_",factor.1,".png"),get(paste0(factor.2,"_percent_by_",factor.1)),path=path_out)
wide_data <- spread(plot_data,key="patient_id",value="Freq")
rownames(wide_data) <- wide_data$cell_type
wide_data <- wide_data[,-1]
all <- apply(wide_data,2,sum)
wide_data <- rbind(wide_data,total=all)
ratio_cell <- data.frame(row.names=rownames(wide_data))
for (i in seq(ncol(wide_data))){
sample_constitute <- unlist(lapply(wide_data[,i],function(x) {x/wide_data[nrow(wide_data),i]}))
ratio_cell[[colnames(wide_data)[i]]] <- sample_constitute
}
write.xlsx(ratio_cell,file = paste0(path_out,"/",tag,"_",factor.1,"_percent_by_",factor.2,'_constitute_percent.xlsx'),rowNames=T,colNames=T,quot=F,sep='\t',overwrite=T)
}
绘制比例图并输出比例数据
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、加载包 二、读入数据 注意: PCA和聚类树图一般用原始的表达矩阵数据 三、pca分析 四、将pca数据和分组...
- 不久前有小伙伴留言,需要绘制相关性热图的示例数据,的确是我个人的疏忽,以后尽量附带示例数据,关注个人公众号R语言数...
- 当需要显示数据的占比情况时,根据场景需要,写了个带动画效果的线形与圆形比例Demo,以供参考. 主要方法:(1)线...