[ANN] EcologicalNetworksDynamics.jl: simulate the temporal dynamics of complex ecological networks

Together with @iago-lito, we’re delighted to present our new package.

In short, EcologicalNetworksDynamics.jl offers a robust toolkit in Julia for researchers, and curious Julia users, to simulate and analyse the temporal dynamics of complex ecological networks. This package enables users to explore the dynamic complexities within these systems with both speed and ease.

Context

Ecological networks describe intricate webs of interactions between species, encompassing predator-prey relationships, competitive interactions (think of two species fighting for a common resource), and more. Understanding the dynamics of these complex networks is at the core of community ecology. However, numerical exploration of the behaviour of these communities suffers from the lack of a common simulating framework that allows their dynamics to be run with ease. EcologicalNetworksDynamics.jl fills this gap by offering a common platform for ecologists to efficiently simulate the dynamics of complex ecological communities.

Key features of EcologicalNetworksDynamics.jl

  1. Model parameterization: Customize the community parameters, that is mostly species biological rates. However, sensible defaults are sourced from the literature to allow a straightforward simulation workflow.
  2. Variety of modelling choices: Many ecological studies focus solely on feeding interactions within food webs, overlooking critical interactions like plant facilitation or competition. These interactions play a significant role in shaping community properties. Therefore, our package enables modelling of these interactions alongside food webs. Moreover, we offer flexibility in other modelling choices, including options for plant growth (implicit logistic or explicit nutrient dynamics) and the impact of temperature on species’ biological rates.
  3. Temporal Dynamics: Simulate the temporal evolution of species biomasses over time, capturing changes in species richness, and network structure, for instance.
  4. Analysing Tools: Use built-in functions to analyse properties of community structure and dynamics.

Toy example

To get started, simply install the package via the Julia package manager (note that we recommend to use Julia v1.10):

using Pkg
Pkg.add("EcologicalNetworksDynamics")

Then you can run the dynamics of simple species communities with:

using EcologicalNetworksDynamics, Plots
fw = Foodweb([1 => 2, 2 => 3]) # 1 eats 2, and 2 eats 3.
m = default_model(fw) # Parameterize the model with default values.
B0 = [0.1, 0.1, 0.1] # The 3 species start with a biomass of 0.1.
t = 100 # The simulation will run for 100 time units.
out = simulate(m, B0, t)
plot(out)

Here is what you should obtain:

plot

A more detailed documentation is available online.

Afterword

This package comes alongside a technical article that dives into its different features, do not hesitate to have look at it if you’re curious.

Feedbacks and contributions (below or on GitHub) are of course very welcome. :slight_smile:

Anyway, whether you’re an ecologist, or simply an enthusiast, we hope you will enjoy using EcologicalNetworksDynamics.jl to explore the complex behaviour of ecological networks.

8 Likes