packages <- c(
    "tidyverse",
    "printr",
    "ggthemes",
    "readr",
    "miR34AasRNAproject",
    "grid",
    "gtable",
    "broom"
)
purrr::walk(packages, library, character.only = TRUE)
rm(packages)
projectUrl <- "https://github.com/GranderLab/miR34a_asRNA_project/raw/master/inst"
dataUrl <- "https://github.com/GranderLab/miR34a_asRNA_project/raw/master/"



Introduction

As p53 is a well-known regulator of senescence, growth, and apoptosis and has been shown to specifically important under conditions of cellular stress, such as starvation. Therefore, we investigated whether overexpression of miR34a AS affects growth rate under normal and starvation conditions by measuring changes in confluency over time.



Methods



Cell culture and confluency quantification

10^4 PC3 cells, either miR34a asRNA overexpressing or WT, were seeded in 96 well plates. After attachment (3-4h) media was replaced with either RPMI (Gibco, life technology) (supplemented with 2mM L-glutamine, 50ug/ml Penicillin-Streptomycin and 10% Fetal Calf Serum) or HBSS. Cells were incubated in Spark Multimode Microplate reader for 48 hours at 37°C with 5% CO2 in a humidity chamber. Confluency was measured every hour.



Analysis

Fold confluency was then calculated as % confluency / % confluency time 0 for each condition and the mean of the 3 technical replicates was subsequently calculated for each of the 3 biological replicates. A polynomial regression model was then constructed modeling the fold confluency as the dependent variable and time and cell line as independent variables. Reported P values are derived from the t-test, testing the null hypothesis that the coefficient estimate of the cell line covariate is equal to 0.



Results

Example confluence measurment

url <- fileMap(type = "png")["Supplementary Figure 5a"][[1]]
knitr::include_graphics(file.path(projectUrl, url))
Representative pictures from the growth analysis shown in Figure 3C. The green color indicates the surface covered by cells as detected by the analysis software.



Example phase contrast

url <- fileMap(type = "png")["Supplementary Figure 5b"][[1]]
knitr::include_graphics(file.path(projectUrl, url))
A representative phase contrast picture from the 12 hour time point of the growth analysis in Figure 3C.



data <- getData("Figure 3c")

#normalize to first time point for control (Mock)
.normFun <- function(
  data,
  Confluency,
  Treatment,
  Biological.Replicate,
  Technical.Replicate,
  Cell.line
){
  bool1 <- data$Treatment == Treatment
  bool2 <- data$`Biological Replicate` == Biological.Replicate
  bool3 <- data$`Technical Replicate` == Technical.Replicate
  bool4 <- data$Time == 0
  bool5 <- data$`Cell line` == Cell.line
  bool <- bool1 & bool2 & bool3 & bool4 & bool5
  Confluency / pull(data, Confluency)[bool]
}

data <- data %>%
  group_by(Treatment, `Biological Replicate`, `Technical Replicate`, Time, `Cell line`) %>%
  mutate(
    normConfluency = .normFun(
      data,
      Confluency,
      Treatment,
      `Biological Replicate`,
      `Technical Replicate`,
      `Cell line`
    )
  ) %>%
  ungroup()

#calculate mean for each technical replicate
data <- data %>%
  group_by(Treatment, `Biological Replicate`, Time, `Cell line`) %>%
  summarize(
    techMean = mean(normConfluency)
  ) %>%
  ungroup()

#linear model
model.data <-  data %>%
  mutate(Time = as.numeric(Time)) %>%
  group_by(Treatment) %>%
  do(glance(lm(techMean ~ poly(Time, 24) +`Cell line`, data = .))) %>%
  ungroup() %>%
  rename(pValue = p.value) %>%
  pFormat(.) %>%
  select(-pValue) %>%
  rename(p.value = pFormat)

as.data.frame(model.data)

growth.lm <- data %>%
  mutate(Time = as.numeric(Time)) %>%
  group_by(Treatment) %>%
  do(tidy(lm(techMean ~ poly(Time, 24) +`Cell line`, data = .))) %>%
  ungroup() %>%
  rename(pValue = p.value) %>%
  pFormat(.) %>%
  select(-pValue) %>%
  rename(p.value = pFormat)

as.data.frame(growth.lm)
p <- ggplot(data = NULL) +
  geom_smooth(
    data = data,
    aes(
      x = Time,
      y = techMean,
      group = `Cell line`,
      colour = `Cell line`
    ),
    method = "lm", 
    formula = y ~ poly(x, 24),
    alpha = 0.2,
    size = 0.5,
    show.legend = TRUE
  ) +
  facet_grid(. ~ Treatment) +
  scale_x_discrete(breaks = seq(0, 35, 5)) +
  scale_y_continuous(breaks = c(1, 1.2, 1.4, 1.6)) +
  labs(
    x = "Time (hours)", 
    y = "Fold confluency",
    title = "miR34a asRNA's role in growth regulation."
  ) + 
  guides(
    colour = guide_legend(title = "Cell line", override.aes = list(size = 3))
  )

markdown <- p +
  geom_label(
    data = filter(growth.lm, term == "`Cell line`lncTAM34a"),
    aes(x = 2, y = 1.64, label = paste0("estimate=", round(estimate, digits = 4))),
    fill = "white", label.size = 0, label.padding = unit(0.01, "lines"),
    position = position_dodge(width = 0.9), show.legend = FALSE,
    fontface = "bold", family = "Arial Unicode MS", size = 3, hjust = 0
  ) +
  geom_label(
    data = filter(growth.lm, term == "`Cell line`lncTAM34a"),
    aes(x = 2, y = 1.62, label = paste0("std.error=", round(std.error, digits = 4))),
    fill = "white", label.size = 0, label.padding = unit(0.01, "lines"),
    position = position_dodge(width = 0.9), show.legend = FALSE,
    fontface = "bold", family = "Arial Unicode MS", size = 3, hjust = 0
  ) +
  geom_label(
    data = filter(growth.lm, term == "`Cell line`lncTAM34a"),
    aes(x = 2, y = 1.6, label = paste0("p=", p.value)),
    fill = "white", label.size = 0, label.padding = unit(0.01, "lines"),
    position = position_dodge(width = 0.9), show.legend = FALSE,
    fontface = "bold", family = "Arial Unicode MS", size = 3, hjust = 0
  )

plotRmarkdown(markdown)

pdf <- p +
  geom_label(
    data = filter(growth.lm, term == "`Cell line`lncTAM34a"),
    aes(x = 2, y = 1.68, label = paste0("estimate=", round(estimate, digits = 4))),
    fill = "white", label.size = 0, label.padding = unit(0.01, "lines"),
    position = position_dodge(width = 0.9), show.legend = FALSE,
    fontface = "plain", family = "Arial Unicode MS", size = 2, hjust = 0
  ) +
  geom_label(
    data = filter(growth.lm, term == "`Cell line`lncTAM34a"),
    aes(x = 2, y = 1.64, label = paste0("std.error=", round(std.error, digits = 4))),
    fill = "white", label.size = 0, label.padding = unit(0.01, "lines"),
    position = position_dodge(width = 0.9), show.legend = FALSE,
    fontface = "plain", family = "Arial Unicode MS", size = 2, hjust = 0
  ) +
  geom_label(
    data = filter(growth.lm, term == "`Cell line`lncTAM34a"),
    aes(x = 2, y = 1.6, label = paste0("p=", p.value)),
    fill = "white", label.size = 0, label.padding = unit(0.01, "lines"),
    position = position_dodge(width = 0.9), show.legend = FALSE,
    fontface = "plain", family = "Arial Unicode MS", size = 2, hjust = 0
  )

figure <- plotPDF(pdf)

path <- file.path("~/GitHub/miR34a_asRNA_project/inst", fileMap(type = "pdf")["Figure 3c"][[1]])
ggsave(
  plot = figure,
  filename = path,
  device = cairo_pdf,
  height = 60,
  width = 83,
  units = "mm"
)
The effects of miR34a asRNA overexpression on growth in normal and starvation conditions in the PC3 prostate cancer cell line. Fold confluency (% confluency / Time 0 % confluency) is indicated on the y-axis. Colored lines indicate the polynomial regression model where mean fold confluency from 3 independent experiments was modeled as a function of time and cell line. The grey shadows illustrate the 95% confidence interval for the regression. Estimates, standard error (std.error), and P values for the cell line covariate for each model are indicated in the upper left hand corner.



Conclusions

miR34a asRNA overexpression causes a minor decrease in cell growth under normal conditions (RPMI) although under conditions of cellular stress through starvation, this effect is increased.





sessionInfo()


GranderLab/miR34a_asRNA_project documentation built on May 26, 2019, 7:26 a.m.