library(tidyverse)
library(cowplot)
library(viridis)
library(knitr)
library(kableExtra)
knitr::opts_chunk$set(tidy.opts=list(width.cutoff=60),tidy=TRUE, echo = TRUE, message=FALSE, warning=FALSE, fig.align="center")
source("../../../../IDA/tools/plotting_tools.R")
theme_set(theme_1())
adsf
Images are available in my google drive.
WT colonies for TOTO measurement
WT controls for EtBr
WT controls for PI
WT exp w/ EtBr
WT exp w/ PI
= 60 samples
∆phz* + PYO + EtBr
∆phz* + PCN + EtBr
∆phz* + PYO + PI
∆phz* + PCN + PI
= 48 samples
= 108 samples total
First run is WT H2O and WT WT EtBr Samples
Samples were extracted as normal. Colonies were resuspended in 800uL of PBS 137(?? - check this) and agar was extracted for ~3 hours in 3mL of PBS 137. Note that some of the colonies did not break up entirely, particularly in the PI and EtBr treated colonies. However, they were all incubated in the liquid for the same amount of time, so I would expect that the phenazines were extracted reasonably well. Photos in the google drive show some of the prep and differences in colony pellets etc.
Frozen samples were thawed to room temp, then filtered with 0.2um spinX columns. 500uL of samples were then transferred into sample vials containing 500uL of PBS 137 and therefore samples were run at a 0.5 x dilution.
Samples were run using the standard Phenazine_basic_MS method on the waters LC-MS.
Here are the results from the first quantification. Let’s read in the data:
df_wt <- read_csv("../data/2019_07_23_colony_HPLC_wt_data.csv")
df_dphz <- read_csv("../data/2019_07_23_colony_HPLC_dPHZ_data.csv")
Here’s the raw WT data:
colorblind_palette <- c("#E69F00", "#56B4E9", "#000000", "#009E73",
"#F0E442", "#0072B2", "#D55E00", "#CC79A7")
ggplot(df_wt %>% filter(condition != "blank"), aes(x = condition,
y = Amount, color = condition_conc)) + geom_point() + facet_wrap(material ~
measured_phz, scales = "free") + scale_color_manual(values = colorblind_palette,
na.value = "gray")
The only thing that caught my eye here is the PYO measured in the 100uM etbr cells. You can see one value is at zero, while the other is at 4. That seems like a mistake to me - may need to requantify.
Here’s the raw ∆phz* data:
ggplot(df_dphz %>% filter(condition != "blank"), aes(x = measured_phz,
y = Amount, color = condition_conc, shape = condition)) +
geom_point() + facet_wrap(~added_phz, scales = "free") +
scale_color_manual(values = colorblind_palette, na.value = "gray")
This looks pretty good to me. Let’s go back and look at the WT sample that seemed to be a false negative.
After looking at the run the PYO peaks are closer to 6.1 min retention time instead of 6.0, so the integration algorithm missed that one peak. I figured it might have missed others, but done it in a more consistent way across samples, so I just requantified everything looking for the PYO peak near 6.1min. Here’s the second quantification of the data:
df_wt_2 <- read_csv("../data/2019_07_23_colony_HPLC_wt_data_2.csv")
df_wt_2 <- df_wt_2 %>% mutate(condition_conc = fct_relevel(condition_conc,
c("0uM", "10uM", "100uM", "200uM", "500uM"))) %>% mutate(condition = fct_relevel(condition,
c("h2o", "etbr", "dmso", "pi")))
df_dphz_2 <- read_csv("../data/2019_07_23_colony_HPLC_dPHZ_data_2.csv")
df_dphz_2 <- df_dphz_2 %>% mutate(condition_conc = fct_relevel(condition_conc,
c("0uM", "10uM", "100uM", "200uM", "500uM"))) %>% mutate(condition = fct_relevel(condition,
c("PBS", "etbr", "dmso", "pi")))
ggplot(df_wt_2 %>% filter(condition != "blank"), aes(x = condition,
y = Amount, color = condition_conc)) + geom_point() + facet_wrap(material ~
measured_phz, scales = "free") + ylim(0, NA)
ggplot(df_dphz_2 %>% filter(condition != "blank"), aes(x = condition,
y = Amount, color = condition_conc)) + geom_point() + facet_wrap(added_phz ~
measured_phz, scales = "free") + ylim(0, NA)
Focus on the PCN - PCN and PYO - PYO panels, since those are the only values that are real. The other panels just show that indeed we don’t detect significant amounts of other phenazines when they are not added to ∆phz*.
Ok, looks good, so now I’ll go ahead and convert the values into biofilm and agar concentrations and retention ratios.
df_wt_conc <- df_wt_2 %>% mutate(measured_phz_conc = case_when(material ==
"cells" ~ (Amount * 2) * (800/60), material == "agar" ~ (Amount *
2) * (8/5))) %>% group_by(measured_phz, strain, condition,
condition_conc, material) %>% mutate(mean_phz_conc = mean(measured_phz_conc))
df_wt_retRatio <- left_join(df_wt_conc %>% filter(material ==
"cells"), df_wt_conc %>% filter(material == "agar"), by = c("measured_phz",
"strain", "condition", "condition_conc", "rep"), suffix = c("_cells",
"_agar")) %>% mutate(ret_ratio = measured_phz_conc_cells/measured_phz_conc_agar) %>%
group_by(measured_phz, strain, condition, condition_conc) %>%
mutate(mean_ret_ratio = mean(ret_ratio))
df_dphz_conc <- df_dphz_2 %>% filter(added_phz == measured_phz) %>%
mutate(measured_phz_conc = case_when(material == "cells" ~
(Amount * 2) * (800/60), material == "agar" ~ (Amount *
2) * (8/5))) %>% group_by(measured_phz, strain, condition,
condition_conc) %>% mutate(mean_phz_conc = mean(measured_phz_conc))
ggplot(df_wt_conc %>% filter(condition %in% c("etbr", "h2o")),
aes(x = condition_conc, y = measured_phz_conc)) + geom_col(data = df_wt_conc %>%
filter(condition %in% c("etbr", "h2o")) %>% filter(rep ==
1), aes(x = condition_conc, y = mean_phz_conc), fill = "light gray") +
geom_point(shape = 21) + facet_wrap(material ~ measured_phz,
scales = "free") + ylim(0, NA)
ggplot(df_wt_retRatio %>% filter(condition %in% c("etbr", "h2o")),
aes(x = condition_conc, y = ret_ratio)) + geom_col(data = df_wt_retRatio %>%
filter(condition %in% c("etbr", "h2o")) %>% filter(rep ==
1), aes(x = condition_conc, y = mean_ret_ratio), fill = "light gray") +
geom_point(shape = 21) + facet_wrap(~measured_phz, scales = "free") +
ylim(0, NA)
ggplot(df_dphz_conc %>% filter(condition %in% c("etbr", "PBS")),
aes(x = condition_conc, y = measured_phz_conc)) + geom_col(data = df_dphz_conc %>%
filter(condition %in% c("etbr", "PBS") & rep == 1), aes(x = condition_conc,
y = mean_phz_conc), fill = "light gray") + geom_point(shape = 21) +
facet_wrap(material ~ measured_phz, scales = "free") + ylim(0,
NA)
ggplot(df_wt_conc %>% filter(condition %in% c("pi", "h2o", "dmso")),
aes(x = condition_conc, y = measured_phz_conc, color = condition)) +
geom_col(data = df_wt_conc %>% filter(condition %in% c("pi",
"h2o", "dmso") & rep == 1), aes(x = condition_conc, y = mean_phz_conc),
fill = "light gray", position = "dodge") + geom_point(shape = 21,
position = position_dodge(width = 1)) + facet_wrap(material ~
measured_phz, scales = "free") + ylim(0, NA)
ggplot(df_wt_retRatio %>% filter(condition %in% c("pi", "h2o",
"dmso")), aes(x = condition_conc, y = ret_ratio, color = condition)) +
geom_col(data = . %>% filter(rep == 1), aes(y = mean_ret_ratio),
fill = "light gray", position = "dodge") + geom_point(shape = 21,
position = position_dodge(width = 1)) + facet_wrap(~measured_phz,
scales = "free") + ylim(0, NA)
ggplot(df_dphz_2 %>% filter(condition %in% c("pi", "PBS", "dmso") &
measured_phz != "PCA"), aes(x = condition_conc, y = Amount,
shape = added_phz, color = condition)) + geom_point() + facet_wrap(material ~
measured_phz, scales = "free") + ylim(0, NA) + scale_shape_discrete(solid = F)
ggplot(df_dphz_conc %>% filter(condition %in% c("pi", "PBS",
"dmso")), aes(x = condition_conc, y = measured_phz_conc,
color = condition)) + geom_col(data = . %>% filter(rep ==
1), aes(y = mean_phz_conc), fill = "light gray", position = "dodge") +
geom_jitter(shape = 21, position = position_jitterdodge(dodge.width = 1)) +
facet_wrap(material ~ measured_phz, scales = "free") + ylim(0,
NA)
One issue here is colony size. We should look back at this. Another issue seems to be that DMSO strongly affects both WT and dPHZ retention.
sessionInfo()
## R version 3.5.3 (2019-03-11)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Mojave 10.14.6
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] kableExtra_1.1.0 knitr_1.23 viridis_0.5.1
## [4] viridisLite_0.3.0 cowplot_0.9.4 forcats_0.4.0
## [7] stringr_1.4.0 dplyr_0.8.1 purrr_0.3.2
## [10] readr_1.3.1 tidyr_0.8.3 tibble_2.1.3
## [13] ggplot2_3.2.0 tidyverse_1.2.1
##
## loaded via a namespace (and not attached):
## [1] tidyselect_0.2.5 xfun_0.7 haven_2.1.0 lattice_0.20-38
## [5] colorspace_1.4-1 generics_0.0.2 htmltools_0.3.6 yaml_2.2.0
## [9] rlang_0.3.4 pillar_1.4.1 glue_1.3.1 withr_2.1.2
## [13] modelr_0.1.4 readxl_1.3.1 munsell_0.5.0 gtable_0.3.0
## [17] cellranger_1.1.0 rvest_0.3.4 evaluate_0.14 labeling_0.3
## [21] broom_0.5.2 Rcpp_1.0.1 scales_1.0.0 backports_1.1.4
## [25] formatR_1.7 webshot_0.5.1 jsonlite_1.6 gridExtra_2.3
## [29] hms_0.4.2 digest_0.6.19 stringi_1.4.3 grid_3.5.3
## [33] cli_1.1.0 tools_3.5.3 magrittr_1.5 lazyeval_0.2.2
## [37] crayon_1.3.4 pkgconfig_2.0.2 xml2_1.2.0 lubridate_1.7.4
## [41] assertthat_0.2.1 rmarkdown_1.13 httr_1.4.0 rstudioapi_0.10
## [45] R6_2.4.0 nlme_3.1-137 compiler_3.5.3