Skip to content

Track flower emptiness and contamination individually

Adam Reichold requested to merge individual-flowers-redux into main

Tracking contaminated flowers within a flower patch as a cohort displayed some artificial changes in prevalence patterns based on the arbitrary size of the flower patches. Our current understanding is that this is rooted in the infection/contamination probabilities having to include an implicit flower visitation rate for this construction to work.

Additionally, modulating the infection/contamination probabilities by the ratio of contaminated flowers over all flowers in a patch yields a somewhat non-local transmission dynamic as it still keeps the flower patch as the epidemiological unit whereas the individual flower would be more appropriate and align with experimental protocols reported in the literature.

The first approach to include individual flowers as entities in the simulation in !104 (closed) failed due to increasing memory consumption and computation time by a factor of twenty, e.g. 500 MB RAM usage, 50 GB of disk usage and one day of CPU usage for a single run, which would make working with the simulation untenable.

Hence this MR tries to implement a more modest approach where only the binary emptiness and contamination states are tracked per flower which can be stored efficiently using bitmaps. This kept space usage increase within a factor of two but lead to similar slow downs w.r.t. computation time. We therefore reconstructed the flower patch submodel to use a discrete event simulation approach capture the relevant state changes (refill of a flower patch and decontamination of a flower) as events. This seems to have offset the increase in computational cost at the price of a somewhat more involved implementation.

The main change to the model design is that while nectar available is still tracked only at patch level, but the amount of nectar consumed is used to determine how many non-empty flowers would have to be visited to accumulate this value. The visited empty and non-empty flowers are then considered as discrete visitation events which can lead to infection/contamination with fixed probabilities. This way, the flower visitation rates emerges from the specific consumption rates and the degree of resource depletion in a patch instead of being an implicit part of the infection/contamination probability rates.

This also removes the non-local transmission as insects are now located at specific flowers and the flower becomes the epidemiological unit. However, due the limited state associated with the individual flower, this is spatially implicit, i.e. the flowers have no position that is independent of the flower patch they are part of. Any spatial correlations between the paths which the individual insects take can thereby only be modelled as correlations of the order in which they visit the individual flowers which is further investigated in !106 (merged).

  • Implement and test a simple Bitmap type supporting centralised out-of-line storage for better cache efficiency.
  • Track emptiness and contamination for individual flowers and drive flower visitation by nectar consumption...
  • ...and update the inline ODD to reflect this change, c.f. !117 (merged)
  • Reformulate the state changes of flower patches from a discrete time step to a discrete event simulation approach...
  • ...and update the inline ODD to reflect this change, c.f. !117 (merged)
  • Repeat the diet breadth simulation campaign on EVE once the implementation is settled, c.f. !113 (merged) and !114 (merged)
Edited by Adam Reichold

Merge request reports