
MBW:Stochastic modeling of Pseudomonos syringae growthFrom MathBioContentsIntroductionFor this project, I attempted to recreate the results that were produced in the article entitled: "Stochastic Modeling Of Pseudomonos syringae growth in the phyllosphere"^{[1]} Biological ExperimentA mixture of Pseudoomonas syringae (often called P. syringae in paper) was sprayed onto 14 day old bean plants. The bacteria can be potentially harmful to plants as seen in the figure below. Part of the initial study was to better understand the growth of this bacteria on crop plants.This pathogen has been studied since the 1900’s and can ruin many plants such as: tomatoes, olives and bean plants. Part of the initial study was to better understand the growth of this bacteria on crop plants. This pathogen has been studied since the 1900's and can ruin many plants such as: tomatoes, olives and bean plants. Mathematical MotivationAs the author quite plainly states, and with many mathematical modeling projects, "The aim of this work is to use a mathematical model to help understand(sic) the mechanisms" with in this case the mechanisms being growth of P. syringae on a leaf. Many other papers have been written on aggregates and cover a variety of different topics, from aggregates to social situations. One quite well known example would be “From Individuals to Aggregations: the Interplay between Behavior and Physics”^{[2]} which studies and looks at a variety of aggregates on a both micro and macro scale. See Figure 2 for bluefin tuna school aggregate example. This paper not only chooses to investigate the aggregate formation but looks after examining basic results goes on to examine what happens as the initial distribution parameters change (due to nutrients) and as migration increases. After looking around at other examples of bacterial growth, many authors may chose to use a probability distribution to model the data, but this article has aimed at understanding how it would arrive at such a distribution instead to understand the underlying mechanisms of the aggregate growth As the authors quite planely state their motive: "Rather than fitting a distribution to the experiemental data, we have opted for a dynamic approach that may allow us to elucidate the mechanisms that generate the observed behavior by Dulla and Lindow" While there may be some short comings in attempting to model this, it does allow for a much deeper understanding of how the aggregates came to be and many of the underlying biological actions that cause such a pathogen to resemble a specific distribution (in this case the [log normal distribution]. Mathematical ModelThis model consists of three basic parts, the logistic birthdeath process^{[3]}, the carrying capacity and the migration rate. A diagram of basic model is pictured below with no migration on top and migration on bottom. Stochastic Model rather than DeterministicThe model they choose is stochastic, the authors explicitly state that they they will not discuss a deterministic model. Since all aggregates grow differently and independently, this creates a high degree of stochasticity which is not possible to do for many deterministic models. One precise reason they are using a stochastic process to model the experimental data is that you cannot say for certain when a cell will divide within a set amount of time, only that it has a certain probability of doing so. Definitions
Assumptions
Parameters
Equations
Simulation ResultsArticles Simulation
Simulation vs Experimental
My ResultsAt first, I was able to recreate simulation in Simbiology, and with deterministic results, extremely similar to articles stochastic results except no variability (no birth and death fluctuation, population would reach carrying capacity and become flat). After finally being able to get stochastic results to work with a carrying capacity in Simbiology, I was able to very similarly recreate the results one of the authors showed me and my histograms were very similar to theirs as well with both deterministic and stochastic results. Matlab Code for my Simulation Results% Create SimBiology Model. m1 = sbiomodel('untitled'); % Add component(s) to SimBiology Model. c1 = addcompartment(m1, 'unnamed'); s1 = addspecies(c1, 'N'); r1 = addreaction(m1, 'N > 2 N'); % Add kinetic law object to the reaction. k1 = addkineticlaw(r1, 'MassAction'); % Add component(s) to SimBiology Model. p1 = addparameter(k1, 'k1', 1.0); % Configure properties. set(k1, 'ParameterVariableNames', {'k1'}); % Add component(s) to SimBiology Model. r2 = addreaction(m1, '2 N > null'); % Add kinetic law object to the reaction. k2 = addkineticlaw(r2, 'MassAction'); % Add component(s) to SimBiology Model. p2 = addparameter(k2, 'k2', 1.0); % Configure properties. set(k2, 'ParameterVariableNames', {'k2'}); set(s1, 'InitialAmount', 1.0); set(p2, 'Value', 0.1); set(p1, 'Value', .4); % Initialize configset for analysis run. cs = getconfigset(m1, 'default'); % RUNSIMULATION simulate SimBiology model, m1. % Run simulation. data = sbiosimulate(m1, cs, [], []); % Assign variable name to object. cs1 = getconfigset(m1, 'default'); % Configure properties. set(cs1, 'SolverType', 'ssa'); % Initialize configset for analysis run. cs = getconfigset(m1, 'default'); % Configure properties. % time set(cs1, 'StopTime', 50.0); set(cs1, 'TimeUnits', 'hour'); % Run simulation. data = sbiosimulate(m1, cs, [], []); % Configure properties. set(p1, 'Value', 10.0); % Initialize configset for analysis run. cs = getconfigset(m1, 'default'); % RUNSIMULATION simulate SimBiology model, m1. % Run simulation. data = sbiosimulate(m1, cs, [], []); %carrying capacity % number of simulations: num = 25; for j=1:num mu = lognrnd(2.71,1.78); set(p2, 'Value', 0.1/mu); [t X] = sbiosimulate(m1); plot(t, X) hold on end ylabel('Population') xlabel('Time') axis([0 50 0 1800]) Suggestions for ModelWhile the model went on to further study Starvation driven migration, in which migration only occurred in colonies with greater than 50 cells to (so that only colonies with presumably fewer nutrients available would cause migration), an interesting model would be to compute it so that migration can happen at all times but becomes much more frequent close to carrying capacity. For the most part, cell colonies either died within first 23 steps (because of stochasticity) or reached carrying capacity and stabilized. Is this how real plant colonies occur or is there more fluctuation (taking advantage of susceptibility in plant)? Step size was in 1 hour increments, is there a more realistic option Conclusion
References and Further Reading
Along with the references, I found many links to good resources on a variety of topics covered (although I did not use all of these in my simulations): Matlab code that helped me understand how to implement stochastic process without Simbiology: [1] A slideshow introduction to Markov Chain and Sampling, very interesting: [2] Monte Carlo Methods using Matlab, very indepth and covers some parameter estimation : [3] Logistic Growth Models: [4] "A Short Course and Introduction to Dynamical Systems in Biomathematics" with great information and example Matlab files at end: [5] 