EcoEvoModelZoo.jl is a Julia package that offers a collection of eco-evolutionary models written in a consistent style using ParametricModels.jl. Although these models are inspired from theoretical modelling works, they have been carefully implemented to be compatible with automatic differentiation and can be smoothly integrated with Machine Learning frameworks such as Flux.jl and PiecewiseInference.jl. This allows for the testing, refinement and validation of the models using real data from empirical systems.
The long-term goal of EcoEvoModelZoo.jl is to provide high-performance eco-evolutionary models that combine the strengths of theoretical and data-driven models. Our vision is to use EcoEvoModelZoo.jl models in conjunction with ML techniques to enhance our understanding of living systems and provide robust biodiversity forecasts.
EcoEvoGraph
: Eco-evolutionary model on spatial graph, based on Boussange & Pellissier. 2022.AkessonModel
: Multi-trophic eco-evolutionary model on lattices, based on Akesson et al. 2021.
EcosystemModelMcCann
: 3-species chaotic model based on McCann 1994.EcosystemModelOmnivory
: omnivory variant of McCann 1994, based on McCann 1997.
SimpleEcosystemModel
: generalized version ofEcosystemModelMcCann
with N-species. Can be used to reproduce e.g. the 5-species ecosystem model from Post et al. 2000
ResourceCompetition
: plankton ecosystem model based on Huisman et al. 1999 Nature.ResourceCompetitionSmoothMin
: variant ofResourceCompetition
where Leibig's law is replaced by imperfect substituable resources (smooth minimum).
Please reach out if you are interested in this project!
If you want to share a new model, we recommend following these guidelines:
- Models should be in a separate .jl file and include a test file. They should be of type AbstractModel from ParametricModels.jl.
- Models should include documentation to explain the purpose of the model, how to use it, and any resulting outcomes.
- Code should be concise, neat, and self-explanatory, with minimal boilerplate.
- Please ensure that it is compatible with automatic differentiation.
You can contribute by:
- Adding or improving documentation for existing models.
- Writing detailed tutorials for a model
The idea of EcoEvoModelZoo
was inspired by the machine learning model zoo of Flux.jl.