Skip to main content

Enhancing An Ecological Network Dynamics Simulation

Department

Ecology and Evolutionary Biology

Summary

The principal investigator (PI) wanted to incorporate a feature from a predator-prey dynamics simulator written by a colleague for a recent project into a plant-pollinator dynamics simulator the PI developed for an earlier paper. The team was able to help the PI identify and overcome a critical design problem that stood in the way of adding the desired feature to her program.

Key Benefits to the Lab

  • Reworked version of the simulation directly enabled pursuing new lines of research
  • Successfully adapting the original simulation model allowed directly comparing new results with previous outcomes

Details

Both programs were ecological network simulators, but the colleague's program was able to model dynamic networks since it was capable of adding and removing species from the network population over the course of a simulation. The PI's program could only model static networks, meaning the network population and interspecies connections were fixed for the duration of a simulation. The PI wanted to extend the functionality of her original program to explore how her own simulation model behaved when simulating similarly dynamic networks.

Due to the PI only considering static networks when implementing the original program, many parts of the code implicitly assumed that the network population and connectivity would remain the same over the course of a simulation. After reviewing the code on her own, the PI initially believed that adding support for dynamic networks would require having to change the underlying simulation model, limiting her ability to directly compare any new results with those from her earlier paper.

After an in-depth review of the program with the PI, our team was able to determine that the critical parts of the program, such as the routine used to advance the state of a simulation over time, could be generalized to work with arbitrary networks. We were able to extract and enhance these portions of the code and use them to develop a new version of the program that did not have the unintended constraints of its predecessor. As a result, the new program could model both static and dynamic networks using the same underlying simulation model as the original version.