EvoDynamics.jl: a framework for modeling eco-evolutionary dynamics

Genotype-phenotype maps are usually complex. Studies connecting the mechanisms driving genome and phenome evolution have been done mostly in isolation. Because of the rarity of studies considering the mapping between the genotypes to phenotypes, simulations explicitly taking into account the complex genotype-phenotype architecture are incipient (Meyer & Birney, 2018). EvoDynamics.jl aims to connect genomes and phenomes in a flexible way enabling the exploration of many scenarios connecting the two.

Genotype-phenotype mapping occurs within a species, but between species interactions do occur in ecosystems. Yet, the genotype-to-phenotype-to-biodiversity connection is mostly unexplored. The second aim of EvoDynamics.jl is to tackle the genotype-phenotype coupling not only within a species but also between species. This is particularly important for understanding the role of the genetic-phenotype architecture for biodiversity responses to global change.
Coupling genomes to phenomes is full of challenges. This is because evolutionary dynamics, i.e., changes in allele frequencies, selective pressure on phenotypes, multi-level and antagonistic selection, among others, are functions of innumerable evolutionary and ecological processes across levels, time and space, such as interactions among genes, genotypes and phenotypes, phenotypes and abiotic environment, and complex species interactions (Ellegren & Galtier, 2016;Loeuille, 2010;Melián et al., 2018;Schoener, 2011).
Evolutionary modeling have mostly focused on genes and genomic processes from a variety of angles. Ecological modeling, on the other side, have mostly focused on species level interactions with other species and the environment. EvoDynamics.jl attempts to connect the two by integrating genomic and phenotypic processes within and between species. Such a connection is not easy to manage analytically. To address this complexity, in-silico simulations can provide new ideas and synthesis for a wide range of researchers and interdisciplinary teams aiming to join complex processes occurring in the genotype-phenotype interface to biodiversity patterns.
EvoDynamics.jl can enrich the range of applications and questions previously addressed in eco-evolutionary dynamics. For example, the relationship between genetics and species diversity could not be explored by explicitly accounting for the genetic-phenotypic architecture within and between each species. Our package allows defining a detailed genotype-phenotype architecture that was not possible with other packages. By accounting for the architecture within and between species, we can now explore such a connection. Similar problems like the causes of gradients in genetic and species diversity, the factors affecting population structure, and the effect of human actions on species and genetic variation (Leigh et al., 2021) can also be explored using EvoDynamics.jl.

Statement of need
EvoDynamics.jl is an open source framework for studying the link between ecological and evolutionary systems, i.e. eco-evolutionary interactions (Post & Palkovacs, 2009). The summary of the aims are: 1) to make it possible for non-programmers to connect micro to macro in evolution and ecology, 2) through an agent-based model with explicit genotype-phenotype architectures, the package allows one to couple biological levels to understand their robustness to predict biodiversity patterns, and 3) to provide a tool to ease the reproducibility, replication and extension of the results (Alston & Rick, 2021). This framework will not only make building complex simulations accessible to a large fraction of biologists who are not programmers, but also promote best practices in building reproducible models to make it accessible to other researchers.
There is a large number of frameworks for studying genetic diversity. Currently, 236 genetic simulators are listed on the National Cancer Institute's website. These tools can be divided into two classes of backward-time (also knows as coalescent-based) and forward-time simulators (e.g. Guillaume & Rougemont (2006) 2021)). Forward-time model are more powerful in handling complex evolutionary scenarios. Frameworks to explore trait dynamics also exist (e.g, Jhwueng (2020)).
EvoDynamics.jl is a forward-time simulator based on agents with complex genotype-phenotype architectures that model complex genome processes like epistasis, pleiotropy, and gene expression in the context of stochastic mutation-recombination-migration dynamics. In addition, the agents can be connected between different types, i.e., species, producing arbitrarily complex ecological networks, and any type of species-species interactions, i.e., mutualism, commensalism, parasitism, competition. To our knowledge, this is the only framework that connects genotypephenotype maps to biodiversity, while also accounting for complex species interactions.
Being written in the Julia language, it is both high-performance and easily accessible to users to investigate the implementation of the code and to modify it, if needed. This is in contrast with most of the packages that are written in a low-level language (e.g. C++) and sometimes have an interface in an high-level language (e.g. Guillaume & Rougemont (2006) 2021)). Additionally, EvoDynamics.jl is built on top of Agents.jl package (Datseris et al., 2022), which gives users great flexibility in defining any kind of data they want to collect. EvoDynamics.jl is being used in a couple of studies (in prep.) to understand the interplay between the genotypic and phenotypic architectures to understand biodiversity patterns and species coexistence.