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

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.

How it works

General workflow to launch any simulation is the following

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.