modified bp with option for adding stats and boxplplots. Moved old one to redundant

This commit is contained in:
Tanushree Tunstall 2021-09-02 12:50:24 +01:00
parent 826d3c72b7
commit fcb4b85747
8 changed files with 443 additions and 102 deletions

View file

@ -0,0 +1,97 @@
library(ggpubr)
###################################################################
####################################
lf_bp_with_stats <- function(lf_df
, x_grp = "mutation_info"
, y_var = "param_value"
, facet_var = "param_type"
, n_facet_row = 1
, y_scales = "free_y"
, p_title = ""
, colour_categ = ""
, colour_bp_strip = "khaki2"
, stat_grp_comp = c("DM", "OM")
, stat_method = "wilcox.test"
, my_paired = FALSE
, bp_width = c("auto", 0.5)
, dot_size = 3
, dot_transparency = 0.3
, stat_label = c("p.format", "p.signif")
, my_ats = 22 # axis text size
, my_als = 20 # axis label size
, my_fls = 20 # facet label size
, my_pts = 22 # plot title size
) {
if (bp_width == "auto"){
bp_width = 0.5/length(unique(lf_df[[x_grp]]))
cat("\nAutomatically calculated boxplot width, using bp_width:\n", bp_width, "\n")
}else{
cat("\nBoxplot width value provided, using:", bp_width, "\n")
bp_width = bp_width
}
my_comparisonsL <- list( stat_grp_comp )
bp_statP <- ggplot(lf_df, aes(x = eval(parse(text = x_grp))
, y = eval(parse(text = y_var)) )) +
facet_wrap(~ eval(parse(text = facet_var))
, nrow = n_facet_row
, scales = y_scales) +
geom_violin(trim = T
, scale = "width"
#, position = position_dodge(width = 0.9)
, draw_quantiles = c(0.25, 0.5, 0.75)) +
# geom_boxplot(fill = "white"
# , outlier.colour = NA
# #, position = position_dodge(width = 0.9)
# , width = bp_width) +
# geom_point(position = position_jitterdodge(dodge.width = 0.5)
# , alpha = 0.5
# , show.legend = FALSE
# , aes(colour = factor(eval(parse(text = colour_categ))) )) +
# ggbeeswarm (better than geom_point)
geom_beeswarm(priority = "density"
#, shape = 21
, size = dot_size
, alpha = dot_transparency
, show.legend = FALSE
, cex = 0.8
, aes(colour = factor(eval(parse(text = colour_categ))) )) +
theme(axis.text.x = element_text(size = my_ats)
, axis.text.y = element_text(size = my_ats
, angle = 0
, hjust = 1
, vjust = 0)
, axis.title.x = element_text(size = my_ats)
, axis.title.y = element_text(size = my_ats)
, plot.title = element_text(size = my_pts
, hjust = 0.5
, colour = "black"
, face = "bold")
, strip.background = element_rect(fill = colour_bp_strip)
, strip.text.x = element_text(size = my_fls
, colour = "black")
, legend.title = element_text(color = "black"
, size = my_als)
, legend.text = element_text(size = my_ats)
, legend.direction = "vertical") +
labs(title = p_title
, x = ""
, y = "")+
stat_compare_means(comparisons = my_comparisonsL
, method = stat_method
, paired = my_paired
, label = stat_label[1])
return(bp_statP)
}