The 2000 Science article “Crossing the Hopf Bifurcation in a Live Predator-Prey System” by Fussmann et. al. measured predator-prey population dynamics modulated by a third parameter. It recorded population fluctuations of planktonic rotifers (Brachionus calyciflorus, the predators) and green algae (Chlorella vulgaris, the prey) over runs of 50-250 days in carefully stabilized chemostats. The nutrient nitrogen was also added to the systems and held at a constant. The dilution rate delta (the fraction of the system’s volume that was replaced daily) was varied in each of the trial runs.
The study found that for extreme values of delta the populations were static and stable – either dying off or converging to constants – but in an intermediate range the populations exhibited the delayed oscillations that are classic dynamics in predator-prey systems.
The paper can be found here; a PDF is available on in the GitHub repo corresponding to this report.
In this ongoing project, we look at the population data from the perspective of topology, and in particular perform topological data analysis. We conjecture that the data from this study exhibit interesting topology; it has a nice shape.
Our primary interest in this particular report is to conduct the initial exploratory data analysis.
Prof Gregor Fussmann generously shared the data from the 2000 study. There were 14 runs of the experiment, at different values of delta (the dilution rate). Populations of rotifers and algae were sampled daily over varying lengths of time. The following figure shows the sampling days for the different runs; the y-axis gives the mean delta for each run of the experiment.
It is possible to see all the population measurements at once, for the 14 different runs. In the following 3D visualization (interactive in HTML), the y-axis is the algae population, the z-axis is the rotifer population, and the x-axis marks out the 14 different values of delta used in the 14 runs.
Based on the finding of the Fussmann et all paper, we conjecture that this data forms a sort of 3D bubble (see this report about TDA using simulated data). For example, the following figure shows the population data for the mean delta value of 0.8923, corresponding to trial “5r3”.
We can analyze the persistent homology of this 2D dataset, using the R package “TDA”. The following barcode detects the 1D homology corresponding to the “circle” that is evident in the data. (See this report about TDA for more examples of how to interpret a persistent homology barcode.)
Before we can run the persistent homology algorithm on the entire population dataset, we need to take into account the different lengths of the trial runs. For example, in the following figure we see the population data from the “5y3high” trial with mean delta value of 0.6717.
The data does not show a nice circle, but this is because there are 120 days of measurement (the “5r3” trial has only 18 days). The populations oscillate but drift enough over this time, to obscure any circles in noise.
The following figure shows a 20-day slices of this dataset (days 72 – 92), and we can see that there is indeed a circle corresponding to the classic delayed population dynamics.
In order to explore the data and begin to find reasonable ways to subset the days used in different trials, we made a Shiny app:
https://lukewolcott.shinyapps.io/PredPreyCycleByRestrictingDays/
Using this, we can look through trials that use delta in the intermediate range, and think about how to choose perhaps a 20- or 30-day window. (Note that some of the shorter trials were over about 20 days.) What is a good objective way to do this?
After doing this, and subsetting the different trials, we plan to look at the resulting 3D dataset, and then run the persistent homology algorithm on it to see if we can detect that “bubble” in the data.