ABMEv.jl: Agent Based Model for Evolutionary Dynamics
ABMEv.jl is a package aimed at simulating the evolutionary dynamics of a population in a multidimensional space. The population is modelled at the individual level. Individuals experience four elementary events : birth, death, mutation and migration.
- ABMEv.jl hence falls in the realm of Agent Based Model.
ABMEv.jl provides a numerical laboratory for evolutionary dynamics, supplying
- flexible types for individuals, which can
- evolve over any combination of space
- store ancestors trait,
- flexible types for evolutionary spaces, comprising multidimensional discrete and continuous sets, as well as graphs,
- the possibility for the user to provide any birth and death functions,
- several algorithms for the simulations,
- utility functions to analyse simulation results.
Features
Agents consist of sets of traits in some combination of evolutionary spaces. An evolutionary space can represent for example a geographical landscape, a trait space, or genetic structure. Spaces can be of any dimensions, discrete or continuous, bounded or unbounded. They can equally consist of graphs. Vector spaces are used to define birth and death processes, as well as mutation processes.
Specificities
- ABMEv.jl allows to keep track of agents' trait lineages
- ABMEv.jl enables to run evolutionary dynamics on graphs!
Getting started
julia> using ABMEv
Tutorial
We strongly advise to have a look at the tutorial section. All the scripts of the examples can be found here.
- A first model of meta population
- Changing environments
- Modelling Sympatric speciation
- Environmental Gradient
- Modelling agents with a genetic structure
How it works
General workflow to launch any simulation is the following
- Define the combination of vector spaces you are interested in.
- Define birth and death function, that depend on agents position in the space
- Define mutation function
- Define initial population state and time
- Run the simulation according to some updating algorithm
- Obtain a summary of the population state
Available algorithms
As of now, three types of simulation algorithm can be used:
References
Similar packages
Agents.jl This package is oriented towards general ABM modelling, and thus is not as efficient and easy to deploy as ABMEv.jl for simulating stochastic models of structured populations.