The main purposes of the model are to quantify the effects of pesticide exposure on populations of the water louse, Asellus aquaticus, and to predict population recovery through survival and recolonization. An additional purpose is to obtain insight into the relationship between population recovery and spatial configuration of the habitat on a landscape level.


The model description follows the ODD protocol for describing individual- and agent-based models (Grimm et al. 2006). 

State variables and scales

Entities in the model are waterlouse individual females and their habitat. Habitat is divided into patches (square cells). For individual females we distinguish between juvenile and adult stage.

Individual state variables are age, size and location (individual’s X and Y coordinates) in the habitat, while adult specific variable is their reproductive status. The environment consists of patches that represent a ditch or a stream. The main difference between a ditch and a stream is the water flow velocity, which is exhibited as the presence of drift in the stream scenario. Both ditch and stream are modeled as strings of 100 cells, 1 m2 each. The state variables of patches are the concentration of pesticides in each patch,  a mortality probability induced by pesticides and by the density of individuals in the patch. Global environmental variables include: counting of years, count of living and dead individuals, death rate, expressed as the number of dead individuals divided by the number of the total population.

The basic time step in the model is one day. There are 365 days in a year. The simulation runs for 10 years or until there are no surviving individuals left. The table with all parameters and distributions is provided at the end of this document.

MASTEP is programmed within the NetLogo platform (Wilensky, U. (1999). Center for Connected Learning and Computer-Based Modeling. Northwestern University, Evanston, IL.). 

Process overview and scheduling

This model distinguishes between juveniles and adults, with the main difference being that adults go through the reproduction procedure, while juveniles do not. The following pseudo-code gives an overview of the processes and their scheduling:

Update age of individuals by one time step

If Mortality of juveniles and adults

     Delete from the population

    Move –same for all
    Move-drifters – if activated on GUI
   Grow – both juveniles and adults until they reach 
                maximum size
   Mature – when they reach 45 days, they become
                   adults and can reproduce
   Reproduce - can be once or twice in 1 year 

Plotting – plots describe population dynamics, population death rate, pesticide dynamics (when included), locations of individuals (in ditch/stream scenarios) and net displacement of adult females in the population. Changes in state variables caused by the model processes are updated immediately. 

Design Concepts


Population cycles arise from individual behavior and implicit interactions with the environment (carrying capacities of patches simulate resource heterogeneity).


Individuals interact indirectly through density dependent processes of growth and mortality. In individuals that have not reached their maximal size, daily growth is hampered by increasing density in their local environment (patch), the size at reproduction time determines the final clutch size. Probability of dying increases with increasing density, relative to the carrying capacity, of individuals in a patch. 


Values of most parameters are drawn from probability distributions obtained from literature data to represent natural variability observed in asellid populations. All parameter values and distributions are shown in Table 1.


Time is modeled using discrete time steps, each representing a day. The year starts at January 1st. Processes in the model are executed in a prescribed order, but randomly within the population. Observation. For model testing, the behavior of single individuals and of the whole population was observed. 



The initial population of adult individuals is set to 1000, each with a given size. Individuals are randomly distributed within their habitat and have their variables defined at the start of the simulation. Patches get their carrying capacities in the beginning of the simulation and keep them throughout. Simulations start at day 0, simulating 1st January and run for 20 years, or until there are no individuals left.  The pseudo-code gives an overview of the initialization process

to initialize

  initialize global parameters

  initialize Asellus individuals

   [set size, set age, set location …]

  initialize landscape

   [set carrying capacity,set pesticides…]



Pesticide concentrations and fate in a given environment are exogenous processes that are fed into the model. Pesticide concentrations are given as a list to every aquatic patch in one ditch, and each patch looks for a new pesticide concentration each day. Pesticide scenarios that can be tested are: 

  1. 1 application (d 110) along a stretch of 30 m
  2. 2 applications (d 110 and 170) along a stretch of 30 m
  3. 1 application (d 110) along a stretch of 60 m
  4. 2 applications (d110 and 170) along a stretch of 60 m

All applied concentrations are around LC50 values for Asellus aquaticus for a hypothetical pesticide, for 3 days in row. Pesticide fate processes are not included in this version of the model. Pesticides are present for 3 days after which they just disappear. 


There are 4 main submodels in MASTEP for Asellus aquaticus: mortality, dispersal, growth and reproduction. 


Individuals suffer from three types of mortality: background, density-dependent and pesticide induced. At hatching, each individual is assigned a lifespan; when an individual reaches its lifespan, it dies and is erased from the population. Density-dependent mortality is linked to patch-specific carrying capacities following an explicit logistic function


where x is a scaling factor and K is the carrying capacity of a certain patch. 

Density-dependent mortality is the same for the local population, so all individuals in a patch have the same probability of dying due to overcrowding. With a defined x (as in Table 1), by the time K is reached, the probability of dying is 0.5. Pesticide induced mortality follows a dose-response curve for the related pesticide. Most commonly, it is the following function


with a and b as pesticide-specific scaling factors. Pesticide induced mortality is patch specific, so all individuals in a patch have the same probability of dying due to pesticide effects. 


On GUI, the user can choose whether individuals disperse (move) or not. In case they do go through a “move” procedure, individuals follow correlated random walk rules, each time step. Each new orientation of an individual depends probabilistically on the previous orientation, i.e. there is a preference to continue in a similar direction, depending on the defined angle of a circular distribution. The new turning angle is taken from a wrapped Cauchy distribution. 

Once the new angle (heading) is chosen, they move to one of neighboring patches. Since the aquatic habitats are surrounded by terrain, the prerequisite for changing habitat patches is that the potential new patch is water. Otherwise, individuals change their heading by choosing an angle between 0 and 180 degrees (to avoid crowding at the edge) and wait until the next time step. In case of drift in the stream scenario (move-drifters procedure), a certain percentage (set at GUI) of individuals drift to a distance that is specific for each individual. 


Individuals grow following a von Bertalanffy growth curve given by


where lmax is the maximal length an individual can reach and κ is the daily growth rate. 

The initial population as well as the newly hatched individuals get their sizes assigned to them from normal distributions, 2 mm with 0.2 mm SD for the initial and 1 mm with 0.2 mm SD for the newly hatched individuals. Daily growth increment is density dependent, and decreases with high densities in a patch. Once individuals reach an age of 45 days, they become adults, so maturation is age dependent. 


When they hatch, individuals get the date when they are going to reproduce. The onset of reproduction in the model are Julian days 100 (April) and, in case of a bivoltine population, 190 (July). Individuals are given 3 weeks in the spring and 2 weeks in the summer, during which they reproduce. 

This means that each individual gets a number (drawn from a normal distribution) that is the day after the reproductive onset (d 100 or 190) at which it will release its offspring. Individuals are allowed to reproduce only once, as this is most common. The maximum number of offspring is size-dependent and increases linearly with size.


Each adult, thus, gives birth to a different number of juveniles and dies shortly after. 

Table 1. List of model parameters
Parameter Distribution Value Unit Reference
Landscape carring capacity, K normal 150, SD 50 individuals arbitrary value
Asellus - mortality lifespan exponential mean: 90 days adapted from Flossner (1987)
density dependent scaling factor, x constant K*0.1 own estimation
dose response scaling coeff., a constant 0.5 own estimation for a hypothetical pesticide
dose response scaling coeff., b constant 9.24 own estimation for a hypothetical pesticide
Asellus - dispersal drifting distance distribution mean: 10 m own estimation
Asellus-reproduction onset of 1st reproductive cycle constant 100 (April) day
onset of 2nd reproductive cycle constant 190 (July) day mimicking western European conditions, commonly bivoltine populations
maximum clutch size constant 60 individuals adapted from Williams (1960)
Asellus growth maximum size constant 12 mm adapted from Williams (1960) and Flossner (1987)
kappa, k constant 0.02 / day determined by calibration
age at maturity constant 45 days Williams (1960)
Global parameters year length constant 365 days