This is a companion website describing the data analysis underlying the article Subpopulations of sensorless bacteria drive fitness in fluctuating environments.

This project consists for a large part of single-cell experiments done using microfluidics:

In addition, we used an array of other techniques and analysis:

Available material includes:

Mother Machine experiments

In typical experiments, E. coli is grown in a Dual-Input Mother Machine where glucose and lactose alternate every 4 hours:

Dataset description

mygl <- myframes %>% ungroup() %>% 
  filter(!discard_top, !discard_start) %>% 
  mutate(label=rename_conds(condition)) %>% 
  # start from the total number of observations
  group_by(condition, label, date, pos, gl) %>%
  summarise(n_obs=n()) %>%
  # add the number of dividing cells
  left_join(myframes %>%
              ungroup() %>% 
              filter(!discard_top, end_type=='div') %>% 
              group_by(date, pos, gl, id) %>% 
              filter(!any(discard_start)) %>% 
              slice(1) %>% 
              group_by(date, pos, gl) %>% 
              summarise(n_div_cells=n()) ) %>%
  # add the number of frames
  left_join(myframes %>%
              group_by(date, pos, gl) %>% 
              summarise(nframes=max(frame)) )
(mytables[['expts_list']] <- mygl %>% ungroup() %>% 
   # mutate(condition=factor(condition, levels=unique(condition_acq_times$condition)) ) %>% 
   group_by(condition, label, date) %>%
   summarise(n_lanes=length(unique(interaction(date, pos, gl))),
             # n_div_cells=sum(is.na(n_div_cells)),
             n_div_cells=sum(n_div_cells),
             n_obs=sum(n_obs) ) %>% 
   left_join(
     mycells_switching %>% 
       ungroup %>% 
       filter(! date %in% discarded_dates) %>% 
       group_by(condition, date) %>%
       summarise(
         n_switch=n(),
         n_lags=sum(!is.na(lag_200)),
         n_discard=sum(logl_time_slope_before <= min_growth_rate, na.rm=TRUE) ) %>% 
       mutate(n_discard=ifelse(condition=='switch_gly_lac', NA, n_discard) )
   )
) %>% 
  filter(! date %in% discarded_dates) %>% 
  knitr::kable() %>% 
  kableExtra::kable_styling() %>% 
  identity()
condition label date n_lanes n_div_cells n_obs n_switch n_lags n_discard
glucose glucose 20150616 31 2021 92270 NA NA NA
glucose glucose 20150617 30 1920 91276 NA NA NA
lactose lactose 20150624 30 1649 86776 NA NA NA
lactose lactose 20150630 30 1671 85949 NA NA NA
mg1655 mg1655 20150812 6 364 17283 NA NA NA
switch_04h memory 4h 20150703 28 1431 76295 462 445 3
switch_04h memory 4h 20150708 30 1600 88410 536 511 6
switch_06h memory 6h 20151204 30 1848 107195 548 524 10
switch_08h memory 8h 20180206 31 NA 66894 332 312 1
switch_12h memory 12h 20180207 30 1517 84568 353 340 3
switch_12h memory 12h 20180216 30 1633 82626 344 329 4
switch_16h memory 16h 20160912 39 2437 134488 444 419 8
switch_20h memory 20h 20161014 34 2224 133238 382 355 10
switch_24h memory 24h 20161007 31 2343 135928 350 334 6
switch_glcLac_lac glcLac lac 20171114 31 842 47798 180 171 0
switch_glcLac_lac glcLac lac 20180108 31 804 50630 174 170 4
switch_gly_lac glyc > lac 20170919 26 139 28832 137 123 NA
switch_gly_lac glyc > lac 20170920 29 NA 32475 142 132 NA
switch_lac001_10h lac001 10h 20190614 24 580 27973 115 105 1
switch_lac001_6h lac001 6h 20190605 38 528 25028 193 178 1
switch_lacIoe lacIoe 20180116 31 796 55447 177 161 0
switch_lacIoe lacIoe 20180214 31 761 46967 157 142 1
switch_lacIoe_preIPTG10uM lacIoe preIPTG10uM 20180604 33 410 28272 174 160 1
switch_lacIoe_withIPTG10uM lacIoe withIPTG10uM 20180119 30 572 37135 162 158 0
switch_lacIPTG5uM lacIPTG5uM 20180316 32 572 35363 182 172 0
switch_lactose_priming lactose priming 20161212 39 269 28142 230 214 3
switch_late late 20180516 30 2370 104792 166 155 0
switch_preIPTG5uM preIPTG5uM 20180514 31 385 28585 178 167 0
switch_preIPTG5uM preIPTG5uM 20180531 29 410 26780 170 161 0
switch_ramp40min ramp40min 20171121 30 371 29252 164 154 1
switch_ramp40min ramp40min 20180319 32 496 33684 195 185 1
switch_withIPTG1uM withIPTG1uM 20161130 41 442 36900 225 212 0
switch_withIPTG5uM withIPTG5uM 20161207 32 438 28738 178 175 2
switch_withIPTG5uM withIPTG5uM 20180122 30 431 27985 173 168 0

Colophon

Package versions are managed with renv and can be found in the corresponding lockfile.