Team:TU Darmstadt/Model/Biofilm Modeling

image/svg+xml - O O



Introduction

Microbial growth varies depending on environmental conditions. Laboratory experiments are necessary to determine the optimal growth conditions for the biofilm’s special purposes, and thus ultimately to save time and money in the production (growth phase) of our biofilm. This year, we had to find an alternative approach to gather these data, as wet lab work was not possible.
Therefore, we developed biofilm software tool in the programming language Python in collaboration with iGEM Hannover 2020. Depending on the environmental conditions (e.g. temperature, substrate concentration), the program delivers values that are representative for the quality of the biofilm (e.g. cell density, cell distribution). Thus, it is possible to estimate which growth conditions are to be considered and which are not. In addition, we have extended the model in such a way that adhesive forces of the cells can be calculated. This allows an estimation about the maximum water flow strength in the later place of application, a sewage treatment plant, without the biofilm losing a significant number of cells through abrasion. To verify our computations, it is necessary to analyze the data. One important aspect is, whether the bacterial growth fits the expectations. To examine the results, we plotted the bacteria number as a function of the time.

Theoretical Background

Growthplot

Since the goal of the simulation is to provide a detailed insight into bacterial growth, a simple growth plot would not be sufficient. To calculate growth factor and generation time, transformation of the data was necessary. A standard procedure would be the semi-logarithmic representation of the exponential phase.
$$ \mathrm {Formula \: 1:}\:N = N_0 * e^{kt} $$ $$ \mathrm {Formula \: 2:}\:ln(N) = kt + ln(N_0)$$ The result is a straight-line equation. The slope of this line is the growth coefficient. To be able to calculate the generation time it is necesary to apply the following relation.
$$ \mathrm {Formula \: 3:}\:generationtime = ln(2) / k $$ We considered only bacteria numbers which differ from the starting number to keep the bias from non-exponential growth phases low[1].

Histograms and Kernel Density Function

A good way to analyze distributed values is to display them in a histogram. In some cases it is good to display the height of the bars as normalized values. In this case normalized refers to the sum of the histograms' area is equal to one. Furthermore, a probability density function (pdf) was computed using a kernel density estimator (kde)[2]. Although we used seaborn's kde function, it is necessary to give a quick overview on the theory. A kde computes the value of the pdf at position x using the following formula and the Kernelfunction \(K()\).
$$ \mathrm {Formula \: 4:}\:\hat{f}_h(x) = \frac {1}{nh} * \sum_{i=1}^n K((x-x_i)/ h) $$ Xi gives the value of the i-th observation and h is the bandwidth of the kernels and n the number of observations[3].

Results

The first plot in the sliders was from a simulation with the following parameters:
"num_initial": 4, "time_step": 120, "window_size": [2000, 2000], "duration": 600
while the second plot was from a simulation using the following parameters:
"num_initial": 3, "time_step": 210, "window_size": [2000, 2000], "duration": 660

When it comes to analyzing our simulation results, growth kinetics play an important role. In the upper plot you can see the bacteria number as a function of time. One can already conclude from looking at the curve whether the resulting values follow basic growth kinetic. The following plot shows a semi logarithmic curve. We calculated the growth coefficient and the generation time with the linear Regression model from sklearn[4]. The calculated generation times of ~3518 s (first run) and ~4080 s (second run) differ by 982 s and 420 s from the generation time found in literature (4500 s). The difference is smaller than the standard deviation (1215 s) implying our results were reasonably close to literature values [5]. For future projects this could help to choose a fast-growing bacteria strain.

figure
figure
Figure 1: Growth Plot. The upper plot displays a bacteria growth kinetic while the lower plot displays the logarithmized curve together with the generationtime and the slope.


Bacterium length is a specific parameter for different species. Although bacteria differ in length, there is an underlying distribution centered around a mean value[5]. An easy way to verify the values is to plot them in a histogram. There are papers displaying bacteria length as a probability density function. So, we decided to add a probability density function (pdf) to our plot. We realized this by using the seaborn displot function which allowed us to combine a histogram with a pdf[2]. Our results showed a right drift in the distribution. This seems normal as the literature suggests that there is a right drift in the length distribution [5]. In conclusion our simulated data has a high similarity with literature values [5].

figure
figure
Figure 2: Histogram of Bacteria's Length. The hight of the bars represents the normed proportion of bacteria. The curve is the length's probability density function.


The left plot shows the special distribution of bacteria on a surface in two dimensions while the left plot indicates the underlying density of occurrence of bacteria. The bacteria spawned randomly in a range of 200 – 400 microns from the origin for the x and y-axis. As you can see the bacteria were drifting off due to environmental influence (gravity force, Van der Waals Force) as well as random movement of the bacteria itself. As our software is capable of simulating different bacteria types with different parameters, this plot indicates which parameters lead to optimal surface coverage depending on the application.

figure
figure
Figure 3: Density Plot. The left plot displays each bacteria position marked by a cross. The right plot displays the two dimensional probability density function. Lighter areas represent higher densitys.


On this plot we can see the normalized number of bacteria over the velocity. The probability density function (pdf) was calculated using seaborns build in kernel density estimator. We plotted the number of bacteria over velocities to show which velocity our bacteria are approaching in our biofilm formation. As you can see below the bacteria are approaching velocities between 0.1 μm/s and 0.8 μm/s.

figure
figure
Figure 4: Histogram of the Bacteria's Velocity.The hight of the bars represents the normed proportion of bacteria. The curve is the velocity's probability density function.


The forces acting on a bacterium give insight into environmental conditions. Adhesion forces may indicate biofilm formation. Also, a high stokes drag force indicates extracellulae polymeric substances (EPS) in the environment. High forces may indicate bacteria living in the biofilm.

figure
figure
Figure 5:Mean Force of the Bacteria. The left plot displays each bacterium's force acting on it while the right plot displays the mean force acting on a bacterium.

Conclusion

The results show that our model was able to model biofilm growth for B. subtilis. Our collaboration partners verified the results for E. coli. This indicates that the model is able to simulate different bacteria species. If you want to learn more about the model, feel free to visit team Hannover and the our GitHub repository.