How spatiotemporal cognition and movement of seed-dispersing animals influence plant distribution
Data files
Nov 15, 2024 version files 2.14 GB
-
allData_archived.zip
2.14 GB
-
README.md
7.45 KB
Abstract
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.
README: How spatiotemporal cognition and movement of seed-dispersing animals influence plant distribution
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
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 (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