Nutrient-rich spatial refuges buffer against extinction and promote evolutionary rescue in evolving microbial populations
Data files
Nov 14, 2024 version files 55.11 KB
-
3.2.1_Pop_Density_Data.csv
9.07 KB
-
3.2.2_Competitions.csv
12.41 KB
-
3.2.3_Salt_Resistance_Data.csv
18.57 KB
-
3.2.5_Motility_Data.csv
2.02 KB
-
Kelbrick_Supplementary_Table_1_Mutations.csv
3.93 KB
-
README.md
9.11 KB
Abstract
Microbial populations are often exposed to long-term abiotic disturbances, which can reduce population viability and cause local extinction. Eco-evolutionary theory suggests that spatial refuges can facilitate persistence and evolutionary rescue. However, one drawback of spatial refuges is reduced exposure to nutrients such as carbon and oxygen, suggesting the protective effect of refuges depends on the interplay between environmental conditions and the degree of stress. Here, we test this general idea using mathematical modelling, and experimental evolution of the model bacterium Pseudomonas fluorescens SBW25 under salinity stress. As our model predicted, we find that the ability of spatial refuges to rescue evolving populations from extinction crucially depends on nutrient availability. Populations evolving under salinity stress where nutrient-rich spatial refuges were available, harboured clones that displayed enhanced salt resistance, indicating that nutrient-rich spatial refuges can facilitate evolutionary rescue. Furthermore, while control-salinity-evolved populations adapted to spatial structure by evolving enhanced motility (likely through parallel mutations in PFLU_4551, a predicted aerotaxis response regulator), this phenotype was constrained under high salinity, because increased motility negates the benefits of a spatial refuge. Our results reveal a general interplay between spatial refuges and nutrient availability that could be leveraged to reduce extinction risk in natural populations.
https://doi.org/10.5061/dryad.05qfttfch
Data and Code/software
Details: The datasets and code in this archive detail the requirements to replicate the statistical and genomics analysis outlined in the associated paper. The use of each section of code is outlined in their respective files.
Software: Analyses were performed using R v4.2.3. The code uses functions of dplyr, tidyverse, and ggplot2. The key packages used for the analyses are ‘nlme’ (linear models) and ‘vegan’ v 2.6-4 (MANOVA). Variant calling was performed using the breseq C++ computational pipeline (version 0.37.1) in a Linux environment and the SBW25 reference sequence (accession: AM181176).
Data/Code: The data and corresponding code are grouped accordingly:
Measuring population density over time
This data and analysis are used to determine the population density of the bacterium Pseudomonas florescence over the course of a 20-day evolution experiment grown in high/low salinity, high/low nutrients, and agitated/static growth conditions. This study shows that populations only survive the full 20 days when exposed to high salinity if there are also static growth conditions and high nutrients.
R code: 3.2.1_Pop_Density
Data: 3.2.1_Pop_Density_Data.csv
The Variables in this dataset are:
-
Time Point: the time point in days at which CFU counts were taken
-
Organism: the bacteria being studied (PF = Pseudomonas florescence)
-
Agitation: whether the bacteria culture was grown under shaken (“yes”) or static (“no”) conditions (independent variable)
-
Salinity: whether the bacteria culture was grown under “High” or “Low” salinity (independent variable)
-
Nutrient: whether the bacteria culture was grown in “High” or “Low” nutrient media (independent variable)
-
Replicate: The experimental replicate
-
Base.CFU.ml: The population density in colony forming units (CFU) per ml (dependent variable)
Population competitions
This data and analysis details how to determine which bacterial population is fitter (i.e., better adapted) when the two populations are competed at a 1:1 ratio. In this study, we showed that some populations were fitter than the reference strain when grown under high salinity, only if they were also evolved under high salinity for 20 days.
R code: 3.2.2_Competitions
Data: 3.2.2_Competitions.csv
The Variables in this dataset are:
-
Population: The evolved population replicate number (1-6)
-
Evo: Whether a clone has undergone an evolutionary treatment (Evo), or was an ancestral clone (Anc).
-
Experimental_Replicate: The experimental replicate of the assay.
-
Salt_Growth: Whether the population were grown under control (“No”) or High (“Yes”) salt during the experiment (Independent variable)
-
Start__Test_CFU_ml: The starting population density for each evolved population, given as the number of colony-forming units (CFU) per ml.
-
Start_ Ref_CFU_ml: The starting population density for each reference population (which the evolved population is in competition with), given as the number of colony-forming units (CFU) per ml.
-
Start_Df: The dilution factor used when inoculating cultures onto agar plates to obtain starting CFU counts.
-
Start_Spread: The volume of bacterial culture spread onto an agar plate to obtain starting CFU counts.
-
Start_Test_CFU: The number of CFUs on an agar plate for the starting evolved populations.
-
Start_Ref_CFU: The number of CFUs on an agar plate for the starting reference populations.
-
End_Test_CFU_ml: The number of CFUs on an agar plate for the end evolved populations.
-
End_ Ref_CFU_ml: the number of CFUs on an agar plate for the end reference populations.
-
End_Df: The dilution factor used when inoculating cultures onto agar plates to obtain end CFU counts.
-
End_Spread: The volume of bacterial culture spread onto an agar plate to obtain end: CFU counts.
-
End_Test_CFU: The number of CFUs on an agar plate for the end evolved populations.
-
End_Ref_CFU: The number of CFUs on an agar plate for the end reference populations.
Malthusian parameters are used to identify if the evolved clones (test) are fitter than the reference clones.
-
mT = Start__Test_CFU_ml/End_Test_CFU_ml
-
mR = Start__Ref_CFU_ml/End_Ref_CFU_ml
-
S = In(mT)-In(mR): The relative fitness (S) of evolved populations
*note: “Start” refers to variables used to calculate to initial population density of populations used in the competition experiment. “End” refers to variables used to calculate the population density after the competition experiment, i.e., the population density of each bacterial clone after incubation.
Measuring the salt resistance of evolved clones
This data and analysis detail how to determine if a bacterial clone is better adapted to growth under high or low salinity. In this study, it was shown that clones where were evolved under high salinity subsequently grew better (higher OD) under high salinity compared to control salinity levels.
R code: 3.2.3_Salt_resistance
Data: 3.2.3_Salt_Resistance_Data.csv
The Variables in this dataset are:
-
Population: The evolved replicate population each clone was originated from (1-6)
-
Clone: The clone number isolated from each evolved population (1-9)
-
Salt_growth: Whether the clones were grown under “Low” or “High” salt during the experiment (Independent variable)
-
Salt_evo: Whether a clone had been previously evolved under “High” or “Low” salinity (independent variable).
-
Evo: Whether a clone has undergone an evolutionary treatment (evo), or was an ancestral clone (anc).
-
Rep: The experimental replicate of the assay.
-
OD: The Optical density (wavelength: 600 nm) of bacterial populations after growth under high or low salt (dependent variable)
*na: refers to non-applicable, due to ancestors not having a clone number.
Identifical and analysis of genetic mutations
This data and analysis detail how to identify mutations in evolved bacterial clones using the breseq bioinformatics pipeline and identify if the identified mutations are statistically associated with treatment. In this case, mutations in the gene PFLU_4551 were identified as significant.
Breseq code: 2.2.4_breseq code
R code: 3.2.4_Mutational_Analysis
Data: Kelbrick_Supplementary_Table_1_Mutations.csv
The Variables in this dataset are:
-
Clone: A unique ID given to each clone, and is universal between the datasets
-
Salinity: whether a clone had been previously evolved under “High” or “Low” salinity (independent variable).
-
Mutation type: The type of mutation identified: DEL = Deletion; SNP = Single Nucleotide polymorphism; INS = Insertion.
-
Codon change: a change in a codon that changes the amino acid sequence of an associated protein
-
AA change: the amino acid (AA) that changes based on the “Codon change” variable
-
Gene name: the name of the gene in which the mutation was detected
-
Gene position: the position of the gene within the bacterial genome
-
Mutation position: the position of the mutation within the bacterial genome
-
Gene product: the protein/function or the gene product.
*n/a: indicates no value due to no codon and amino acid change (not applicable).
Identifying differences in swimming and swarming motility in evolved clones
This data and analysis detail how to determine if a bacterial swimming or swarming motility differs depending on the evolutionary treatment - in this case, motility differs due to mutations in the gene PFLU_4551 only observed in the control salinity treatment.
R code: 3.2.5_Motility
Data: 3.2.5_Motility_Data.csv
The Variables in this dataset are:
-
ID: A unique ID given to each clone, and is universal between the datasets
-
experimental_rep: the replicate number for the motility assay (1-3)
-
swim_mm: distance bacteria swam in mm (dependent variable)
-
swarm_mm: distance bacteria swarmed in mm (dependent variable)
-
evo_rep: the evolutionary replicate population number each clone was isolated from
-
clone: the number given to each clone that was isolated from each evolutionary replicate (numbered 1-9).
-
Salt: whether a clone evolved under “high” or “control” salt concentrations (independent variable)
-
Evo: whether a clone was from an evolved population (evo) or an ancestral clone (anc).
-
Gene: The name of a mutated gene that may impact cellular motility (independent variable).
-
mutation_category: the type of mutation found in the “Gene” variable.
*n/a: indicates the values in a cell are not applicable to this dataset, usually in the case of the ancestral clones that were not evolved under selective conditions, or in the case of clones that did not have mutations in any notable genes.
Access information
Genomes are available at BioProject ID: PRJNA1142763.