LSHTM_analysis/scripts/functions/bp_lineage.R

172 lines
6.7 KiB
R

########################################
# Lineage and within SNP count barplot
########################################
lin_count_bp <- function( lf_data
, x_categ = ""
, y_count = ""
, bar_fill_categ = ""
, display_label_col = ""
, bar_stat_stype = "identity"
, x_lab_angle = 90
, d_lab_size = 5
, d_lab_hjust = 0.5
, d_lab_vjust = 0.5
, d_lab_col = "black"
, my_xats = 20 # x axis text size
, my_yats = 20 # y axis text size
, my_xals = 22 # x axis label size
, my_yals = 22 # y axis label size
, my_lls = 22 # legend label size
, bar_col_labels = c("Mutations", "Total Samples")
, bar_col_values = c("grey50", "gray75")
, bar_leg_name = ""
, leg_location = "top"
, y_log10 = FALSE
, y_scale_percent = FALSE
, y_label = c("Count", "SNP diversity")
) {
g = ggplot(lf_data
, aes( x = factor( eval(parse(text = x_categ)), ordered = T )
, y = eval(parse(text = y_count))
, fill = eval(parse(text = bar_fill_categ)) ) )
OutPlot = g + geom_bar( stat = bar_stat_stype
, position = position_stack(reverse = TRUE)
#, alpha = 1
#, colour = "grey75"
) +
theme(axis.text.x = element_text(size = my_xats
, angle = x_lab_angle)
, axis.text.y = element_text(size = my_yats
, angle = 90
, hjust = 1
, vjust = 0)
, axis.title.x = element_text(size = my_xals
, colour = "black")
, axis.title.y = element_text(size = my_yals
, colour = "black")
, legend.position = leg_location
, legend.text = element_text(size = my_lls)) +
geom_label(aes(label = eval(parse(text = display_label_col)))
, size = d_lab_size
, hjust = d_lab_hjust
, vjust = d_lab_vjust
, colour = d_lab_col
, show.legend = FALSE
#, check_overlap = TRUE
, position = position_stack(reverse = T)) +
scale_fill_manual(values = bar_col_values
, name = bar_leg_name
, labels = bar_col_labels) +
labs(title = ""
, x = ""
, y = y_label
, colour = "black")
if (y_log10){
OutPlot = OutPlot +
scale_y_continuous(trans = "log10"
, labels = trans_format("log10", math_format(10^.x) ) )
}
if (y_scale_percent){
OutPlot = OutPlot +
#scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
scale_y_continuous(labels = scales::percent) +
labs(title = ""
, x = ""
, y = y_label
, colour = "black")
}
return(OutPlot)
}
############################
# Lineage diversity barplot
############################
# lin_diversity_bp <- function( wf_data
# , x_categ = "sel_lineages"
# , y_count = "snp_diversity"
# , bar_stat_stype = "identity"
# , display_label_col = "snp_diversity_f"
# , x_lab_angle = 90
# , d_lab_size = 5
# , d_lab_hjust = 0.5
# , d_lab_vjust = 0.5
# , d_lab_col = "black"
# , my_xats = 20 # x axis text size
# , my_yats = 20 # y axis text size
# , my_xals = 22 # x axis label size
# , my_yals = 22 # y axis label size
# , my_lls = 22 # legend label size
# , bar_leg_name = ""
# , leg_location = "top"
# , y_scale_percent = TRUE
# , y_label = "SNP diversity" )
#
# {
# g = ggplot(wf_data
# , aes( x = factor( eval(parse(text = x_categ)), ordered = T )
# , y = eval(parse(text = y_count)) ) )
#
# OutPlot = g + geom_bar( stat = bar_stat_stype
# , position = position_stack(reverse = TRUE)
# ) +
#
# theme(axis.text.x = element_text(size = my_xats
# , angle = x_lab_angle)
# , axis.text.y = element_text(size = my_yats
# , angle = 90
# , hjust = 1
# , vjust = 0)
# , axis.title.x = element_text(size = my_xals
# , colour = "black")
# , axis.title.y = element_text(size = my_yals
# , colour = "black")
# , legend.position = leg_location
# , legend.text = element_text(size = my_lls)) +
#
# geom_label(aes(label = eval(parse(text = display_label_col)))
# , size = d_lab_size
# , hjust = d_lab_hjust
# , vjust = d_lab_vjust
# , colour = d_lab_col
# , show.legend = FALSE
# #, check_overlap = TRUE
# , position = position_stack(reverse = T))
# # return(OutPlot)
#
# if (y_scale_percent){
#
# OutPlot = OutPlot +
# scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
# labs(title = ""
# , x = ""
# , y = y_label
# , colour = "black")
#
# return(OutPlot)
# }
# return(OutPlot)
# }
# ggp <- ggplot(bar_sel, aes(sel_lineages, snp_diversity)) +
# geom_bar(stat = "identity")
# ggp + scale_y_continuous(labels = scales::percent_format(accuracy = 1)
# #, limits = c(0,1)
# , breaks = seq(0, 30, 5)
# )