DOI: 10.5061/dryad.9s4mw6mrz
title: How spatiotemporal cognition and movement of seed-dispersing animals influence plant distribution

description: The scenarios discussing the evolution of the spatiotemporal cognitive
 abilities of vagile plant eaters generally assume that their movement
 strategies are linked to their cognitive abilities, which are themselves
 shaped by the distribution patterns of plants considered invariant over
 long time periods. Yet, if plant distribution patterns are likely to
 remain unchanged over short time periods, they may change over long time
 periods as a result of animal exploitation. In particular, animals can
 shape the environment by dispersing plant seeds. Using an agent-based
 model simulating the foraging behaviour of a seed disperser endowed with
 spatiotemporal knowledge of resource distribution, I investigated whether
 resource spatiotemporal patterns could be influenced by the level of
 spatiotemporal cognition involved in foraging. This level of
 spatiotemporal cognition represented how well the agent predicted resource
 locations and phenology. I showed that seed-dispersing agents moving based
 on spatiotemporal memory could affect resource distribution in the
 long-term through routine movements between known patches, with a larger
 effect the higher the level of spatiotemporal cognition. The level of
 engineering also resulted from the conjunction of two additional forces:
 the agent’s movement strategy (e.g., including opportunistic visits to
 plants encountered en route or not) and competition for space between
 plants. In turn, resource landscape modifications affected the benefits of
 spatiotemporal memory. This could create eco-evolutionary feedback loops
 between animal spatiotemporal cognition and the distribution patterns of
 plant resources. Combined with previous works, the results emphasise that
 spatiotemporal cognition is a cause and a consequence of resource
 heterogeneity.
description: # How spatiotemporal cognition and movement of seed-dispersing animals
 influence plant distribution
 [https://doi.org/10.5061/dryad.9s4mw6mrz](https://doi.org/10.5061/dryad.9s4mw6mrz) ## Description of the data and file structure This repository contains simulated data only. Detailed explanations of the simulations can be found in the associated manuscript (DOI: 10.1111/oik.10931). Here you will find the output of the simulations (i.e. the data) and the script to run and analyse these simulations. ### Files and variables **What are the data?** All results of the simulations are included in the attached zip file (note that a fixed seed was used, unless I forgot, and should the simulations be run, the same results would be obtained). #### Main: all simulations for the main text. Each file name can be understood as: Performed test_p and value of the perceptual ranges_r and value of the spatial knowledge rate_t and value of the temporal knowledge rate_r and value of the simulation round_file type #### SensitivityXXX: The sensitivity simulations to the XXX parameter/condition. Each file name can be understood as: Performed test_p and value of the perceptual ranges_r and value of the spatial knowledge rate_t and value of the temporal knowledge rate_r and value of the simulation round_file type You will have several file types: **1. Efficiency:** The records at the end of the simulation of the forager's efficiency. It includes the columns: * Run_simulation = Id of the simulation * Length_run = Duration of the simulation, in arbitrary time units (tu) * Cycle_length = Duration (in tu) of a "cycle" (i.e. "year") * Fruiting_length = Duration (in tu) of the fruiting period at patch level * Map_size = Length of the sides of the map, in spatial units (su) * Ntrees = Number of patches ("trees") in the environment * Distribution_homogeneous_at_start = Whether the distribution of trees was homogeneous (1) or not (0) * Nclusters_trees = Number of patch clusters if inhomogeneous distribution * Spread_clusters_trees = How dispersed are the resources in the distribution (variance in a Gaussian distribution centred on the x or y coordinates). * Maxyieldfood = Maximum amount of food a patch can yield * Speed = Speed (in su/tu) at which the agent was moving * Torpor_duration = Duration (in tu) of the torpor period * No_return_time = Duration (in tu) for which a forager could not target a previously visited patch * Value_if_unknown_temporality = In case of no temporal knowledge, what value of food would be considered? * What_rule_to_move = Whether to target the nearest or farthest path if both are of equal interest * intensityCompetitionForSpace = Value of competition for space between patches (from 0 = low competition to 1 = high competition) * moveOnlyToFruitingTrees = Whether to move only to perceived fruiting trees on the way to the target (TRUE) or not (FALSE) * moveOnlyToTarget = Whether to move only to the perceived fruiting tree on the way to the target (TRUE) or not (FALSE) * linear = Whether the amount of food was increased and decreased linearly (TRUE) or by jumps (FALSE) * learning = Learning rule when dispersing the seed (learned seed position or another patch from the map, see main text for explanation) * Dispersal_probability = Probability by tu that the seed will be dispersed * Time_delay_Dispersal = Duration (in tu) after which seeds could be dispersed * Perception_range = Range (in su) for which the agent could perceive the environment (i.e. identify patch locations). * Temporal_knowledge_rate = Number of patches for which phenology is known * Spatial_knoledge_rate = Number of patches for which location is known * Number_events_with_no_food = Number of tu for which the agent was in torpor state * Tot_food_eaten = Amount of food eaten over the whole simulation. * Tot_dist_traveled = Total distance travelled (in su) over the whole simulation.  **2. EfficiencyContinuous:** The records of efficiency of the forager over the simulation: it includes the two columns time, and efficiency. Efficiency is the ratio between the amount of food collected, and the distance traveled. **3. Map_XXX:** The map distribution of the patches at time XXXX. This includes the columns x, y, startFruit, endFruit, i.e. the x coordinate, the y coordinate, the time of start of fruiting (in decimal tu), and the time of end of fruiting. **4. Routine:** The list of visited trees. Capital T is the true target, t is trees that were encountered en route to the initial target ## Code/software **What are all these scripts?** These scripts are the one used to perform the simulations and analyse their outputs. It is important to note that these are WORKING scripts, intended to facilitate verification, which means that their cleanup is not complete. Therefore, the scripts may contain code not used in the present analyses (e.g. some spatial indices tested but not finally used). If you find an error, that would be a shame, but I would be glad to be aware. Please contact me at [benjamin.robira@normalesup.org](mailto:benjamin.robira@normalesup.org) **R scripts:** * A: the script testing the Rcpp functions * B: the script testing the spatial point distribution quantification indices (to set up benchmarks) * C: the script testing the quantification of autocorrelation in fruiting date (to set up benchmarks) * 0: the script listing all parameters (and their values) * 1 to 5: the scripts that run the simulation for different spatio-temporal knowledge * 6: the script that processes the output of simulations 1 to 5 * 7a, b, c, d, e: the scripts that run the simulation for other questions (change of movement rule, distance competition, ...) * 8: the script that processes the output of the simulations of 7 * 9: the script to access the variance in fruiting dates over the course of simulations * 10: the script that runs the sensitivity test on sensory range - toolbox: my private toolbox which contains various useful functions for data processing. Any reuse should include a request to me at [benjamin.robira@normalesup.org](mailto:benjamin.robira@normalesup.org) (and it will surely be answered positively! I just want to know how it is distributed. I also update it regularly, so this may become an outdated version). - createLegendYAxisPlot: the script that creates the graphic legend (i.e. the black circles) on the Y-axis of some plots - RiotteLambert_2017_f: Functions adapted (or simply copied) from Riotte-Lambert, Louise, Simon Benhamou, and Simon Chamaillé-Jammes. "From randomness to traplining: a framework for the study of routine movement behavior." Behavioral Ecology (2016): arw154. Their use is acknowledged in the manuscript by referring to the paper. I also contacted the first author for this. **Rcpp scripts:** * FunctionsRcpp.cpp : This script contains all the Rcpp code that executes the simulations (independent functions and then the wrap up). **Other:** * CreateSingularityImage: the console command used in Ubuntu terminal to create the singularity image which was used to run the analysis on the cluster * R.sif: the singularity image ## Access information Other publicly accessible locations of the code: * The code is also available (and perhaps better organised and described as this can be updated) at my github: [https://github.com/benjaminrobira/ModelZoochoryCognition](https://github.com/benjaminrobira/ModelZoochoryCognition)