mosaic_2020/boxplot_stat_function.R

101 lines
No EOL
3 KiB
R

#!/usr/bin/Rscript
getwd()
setwd("~/git/mosaic_2020/")
getwd()
############################################################
# TASK: boxplots with stats
############################################################
doMyPlots <- function(x, title = "TEST") {
mediators = levels(as.factor(x$mediator))
plots <- list()
for (i in mediators) {
cat("Plotting:", i, "\n")
single=x[x$mediator==i,]
max_y = max(single$value, na.rm = T)
cat("Plotting:", i, "max_y:", max_y, "\n")
#----------
# boxplot
#----------
p2 = ggboxplot(single
, x = "timepoint"
, y = "value"
, color = "obesity"
#, palette = c("blue", "red")
, palette = c("#00BFC4", "#F8766D")) +
theme(axis.text.x = element_text(size = 15)
, axis.text.y = element_text(size = 15
, angle = 0
, hjust = 1
, vjust = 0)
, axis.title.x = element_blank()
, axis.title.y = element_blank()
, legend.position = "none"
, plot.subtitle = element_text(size = 20, hjust = 0.5)
, plot.title = element_text(size = 20, hjust = 0.5)) +
labs(title = i)
#--------
# stats
#---------
stat_npa2 <- single %>%
group_by(timepoint, mediator) %>%
wilcox_test(value ~ obesity, paired = F) %>%
add_significance("p")
stat_npa2
stat_npa2 <- stat_npa2 %>%
add_xy_position(x = "timepoint", dodge = 0.8)
p2 = p2 + stat_pvalue_manual(stat_npa2
#, y.position = max_y
, label = "{p} {p.signif}"
, hide.ns=T
, tip.length = 0)+
scale_y_continuous(expand = expansion(mult = c(0.05, 0.25))) +
scale_x_discrete()
plots[[i]] <- p2
}
return(plots)
}
###############################################################
#============
# test
#============
source("boxplot_linear.R")
#=============
# Output:
#=============
outfile_bp = paste0("boxplots_TEST", ".pdf")
output_boxplot_stats = paste0(outdir_plots, outfile_bp); output_boxplot_stats
pdf(output_boxplot_stats, width=22, height=16)
med_names = c("eotaxin3", "il12p70", "itac", "il13")
lf_test = lf_fp_npa[lf_fp_npa$mediator%in%med_names,]
foo=doMyPlots(lf_test)
#baz=cowplot::plot_grid(plotlist=foo, align = 'hv', ncol=2, nrow=2)
baz
dev.off()
#=========================
# entire sample_type data
#=========================
my_sample_type = "NPA"
outfile_bp = paste0("boxplots_stats_", my_sample_type, ".pdf")
output_boxplot_stats = paste0(outdir_plots, outfile_bp); output_boxplot_stats
pdf(output_boxplot_stats, width=22, height=16)
bar=doMyPlots(lf_fp_npa)
#bang=cowplot::plot_grid(plotlist=bar, align = 'hv', ncol=7, nrow=5)
#bang
dev.off()