Package: geonomics
A Python package for simulation of genomic evolution on complex and dynamic landscapesGeonomicsallows users to build and run arbitrarily complex, forward-time,
agent-based, and spatially explicit simulations for landscape genomics. It is
designed to allow even novice Python users to create sophisticated simulations with
minimal code, while also allowing advanced users a high level of extensibility
and customizability.We will continue to expand and add functionality in future versions. Please
contact us with questions, suggestions, or requests!Main FeaturesThe following is a short list of highlights. For the full monty, please see
thehomepage,
thedocs,
and theoriginal methods paper.a model object, which serves as the primary user interface and which
contains all other model componentsa landscape object consisting of an arbitrary number of environmental
raster layersa community object consisting of an arbitrary number of species objects,
each consisting of an arbitrary number of individualsan optional genomic-architecture object, upon which individuals’ genomes
are basedspatialized logistic growth regulating local population densitiesthe capability to model realistic movement and offspring dispersal
across conductance surfacesneutral and non-neutral evolution capabilities, with spatially contingent
selectiondemographic- and environmental-change capabilitiesthe capability to run an arbitrary number of iterations of a modelthe capability to sample data and a variety of statistics at any desired
timesteps during a model runnumerous visualization methods to aid in model design, exploration,
analysis, and presentationInstallationGeonomics can be installed withpip:pipinstallgeonomicsQuickstartFor impatient beginners, the following code will run Geonomics’ default model:>>> import geonomics as gnx
>>> mod = gnx.run_default_model(delete_params_file=False)This will build and rungeonomics’ default model, return itsModelobject
asmod, and leave its parameters file in your current working directory under
the name ‘GNX_default_model_params.py’.For patient folks, the following diagrams should provide more insight, and thedocumentationprovides full details.DetailsProcedural DiagramUsers can run Geonomics models in as few as three steps.Create and edit a parameters file: After importing geonomics asgnx,
users can run the functiongnx.make_parameters_file()function, feeding in
a series of arguments to indicate the desired number and type of landscape layers,
number and parameterization of species, data and statistics to be recorded, and parameters
file name. Users can then edit the default parameter values in the resulting file to parameterize
their model. Within the parameters file, they have the option of referencing external files
to be used by their model, including static raster files or directories of raster time series, as well
as a CSV file defining a custom genomic architecture.Use the parameters file to create a model: After setting up their parameters file, users can
call thegnx.make_model()function, providing their parameters file’s name as an argument. This
will create a newgnx.Modelobject, containing agnx.Landscapewith the defined number of layers,
and agnx.Communitywith the defined number of species composed of starting individuals. The landscape,
species, and individuals will all be described by a number of characteristics, in accordance with the values
defined in the parameters file.Run the model: Users can then call the model’smod.runormod.walkmethods, to either run their model
to completion or run it manually for some number of time steps. Each time step will include, as applicable,
movement, mating, mortality, environmental and demographic change, and data-writing operations. For more detail
on these operations, see the conceptual diagram that follows.Conceptual DiagramOperations during the main phase of a Geonomics model run. In the center is a
species on a multi-layer landscape that includes a selection layer (above) and
a movement and carrying capacity layer (below). Surrounding the landscape is a
flow-diagram of the major operations during a time step. Operations in dashed
boxes are optional.movement: During the movement stages (top-left), individuals move
along movement vectors drawn from various distribution options.mating: During the mating stage (top-right), an individual (purple outline) randomly
chooses a mate (green outline) from all potential mates within its mating radius
(dashed circle). The resulting offspring (dashed outline)  disperses from its
parents’ midpoint along a randomly drawn dispersal vector.mortality: During the mortality stage (bottom-right), deaths are modeled as a Bernoulli
process, with the probability of mortality being a product of density-dependence
and selection on all traits.changes: During the changes stage (bottom-left), demographic change events
(not pictured) and environmental change events (represented as a
series of change rasters corresponding to scheduled time steps,
t1, t2, …, tn), take place.AttributionThis package was written by Drew Ellison Terasaki Hart, as part of his PhD work.
It is available to freely distribute and modify, with proper
attribution, under the MIT License. Should you have any questons or
concerns, please feel free to get in touch! (drew <dot> hart <at> berkeley <dot> edu)Should you use Geonomics for research, education, or any other purpose, please
cite as:Terasaki Hart, D.E., Bishop, A.P., Wang, I.J. 2021. Geonomics:
forward-time, spatially explicit, and arbitrarily complex
landscape genomic simulations. Manuscript submitted for publication...::::::::::::::::::::::...::::::::::::::::::::::::::::::::.....::::::::::::::::::::::::::::::::::::::...::::::::::::::::::::::::::::::::::::...::::::::::::::::::::::::::...55555:3333:0000044440000044441111116666655555..553300004444400004444116655....553300004444400004444441166555555..555553333000044444000044444116655..5553300004444000044441166555...55555:3333:0000044440000044441111116666655555....:::::::::::::::::::::::::...::::::::::::::::::::::....:::::::::::::::....::::::..::..DisclaimerGeonomicsclaims no affiliation with the philosophy and economic ideologyGeorgism, sometimes referred to as
‘geonomics’.Rather, it is a portmanteau ofgeography and genomics.
We thought it sounded neat, and found it delightfully confusing.