VORTEX Simulation model of population dynamics and viability
Written by Robert C. Lacy Chicago Zoological Society Brookfield, IL 60513

Life table analyses yield average long-term projections of population growth (or decline), but do not reveal the fluctuations in population size that would result from variability in demographic processes. When a population is small and isolated from other populations of conspecifics, these random fluctuations can lead to extinction even of populations that have, on average, positive population growth. The VORTEX program (earlier versions called SIMPOP and VORTICES) is a Monte Carlo simulation of demographic events in the history of a population. Some of the algorithms in VORTEX were taken from a simulation program, SPG, written in BASIC by James Grier of North Dakota State University.

Fluctuations in population size can result from any or all of several levels of stochastic (random) effects. Demographic variation results from the probabilistic nature of birth and death processes. Thus, even if the probability of an animal reproducing or dying is always constant, we expect that the actual proportion reproducing or dying within any time interval to vary according to a binomial distribution with mean equal to the probability of the event (p) and variance given by Vp = p * (1 - p) / N. Demographic variation is thus intrinsic to the population and occurs in the simulation because birth and death events are determined by a random process (with appropriate probabilities).

Environmental variation (EV) is the variation in the probabilities of reproduction and mortality that occur because of changes in the environment on an annual basis (or other timescales). Thus, EV impacts all individuals in the population simultaneously -- changing the probabilities (means of the above binomial distributions) of birth and death. The sources of EV are thus extrinsic to the population itself, due to weather, predator and prey populations, parasite loads, etc.

VORTEX models population processes as discrete, sequential events, with probabilistic outcomes determined by a pseudo-random number generator. VORTEX simulates birth and death processes and the transmission of genes through the generations by generating random numbers to determine whether each animal lives or dies, whether each adult female produces broods of size 0, or 1, or 2, or 3, or 4, or 5 during each year, and which of the two alleles at a genetic locus are transmitted from each parent to each offspring. Mortality and reproduction probabilities are sex-specific. Fecundity is assumed to be independent of age (after an animal reaches reproductive age). Mortality rates are specified for each pre-reproductive age class and for reproductive-age animals. The mating system can be specified to be either monogamous or polygynous. In either case, the user can specify that only a subset of the adult male population is in the breeding pool (the remainder being excluded perhaps by social factors). Those males in the breeding pool all have equal probability of siring offspring.

Each simulation is started with a specified number of males and females of each pre-reproductive age class, and a specified number of male and females of breeding age. Each animal in the initial population is assigned two unique alleles at some hypothetical genetic locus, and the user specifies the severity of inbreeding depression (expressed in the model as a loss of viability in inbred animals). The computer program simulates and tracks the fate of each population, and outputs summary statistics on the probability of population extinction over specified time intervals, the mean time to extinction of those simulated populations that went extinct, the mean size of populations not yet extinct, and the levels of genetic variation remaining in any extant populations.

Extinction of a population (or meta-population) is defined in VORTEX as the absence of either sex. (In some earlier versions of VORTEX, extinction was defined as the absence of both sexes.) Recolonization occurs when a formerly extinct population once again has both sexes. Thus, a population would go "extinct" if all females died, and would be recolonized if a female subsequently migrated into that population of males. Populations lacking both sexes are not considered to be recolonized until at least one male and at least one female have moved in.

A population carrying capacity is imposed by a probabilistic truncation of each age class if the population size after breeding exceeds the specified carrying capacity. The program allows the user to model trends in the carrying capacity, as linear increases or decreases across a specified numbers of years.

The user also has the option of modelling density dependence in reproductive rates. I.e., one can simulate a population that responds to low density with increased (or decreased) breeding, or that decreases breeding as the population approaches the carrying capacity of the habitat. To model density-dependent reproduction, the user must enter the parameters (P(0), P(K), A, and B) of the following equation describing the proportion of adult females breeding, P, as a function of population size, N:

P(N) = ( P(0) * [(1 - (N/K)^B] + P(K) * (N/K)^B ) * N / (A+N)

Note that the parameter P(0) is the proportion of adult females breeding at minimal population sizes, while P(K) is the proportion breeding at the carrying capacity, K. The parameter B controls the decline in reproduction at large population sizes. The parameter A defines an Allee effect, in which very small population sizes cause a reduction in breeding. To determine the appropriate values for the parameters, a user should estimate the parameters that provide the best fit of the function to an observed (or hypothetical) data set. Most good statistical packages have the capability of doing this.

After specifying the proportion of adult females breeding, in the form above, the user is prompted to input the percent of successfully breeding females that produce litter sizes of 1, 2, etc. It is important to note that with density dependence, percents of females producing each size litter are expressed as percents of those females breeding, and the user does not explicitly enter a percent of females producing no offspring in an average year. (That value is given by the above equation.) In the absence of density dependence, the user must specify the percent of females failing to breed, and the percents producing each litter size are percents of all breeding age females (as in earlier versions of VORTEX). Read the prompts on the screen carefully as you enter data, and the distinction should become clear.

VORTEX models environmental variation simplistically (that is both the advantage and disadvantage of simulation modelling), by selecting at the beginning of each year the population age-specific birth rates, age-specific death rates, and carrying capacity from distributions with means and standard deviations specified by the user. EV in birth and death rates is simulated by sampling binomial distributions, with the standard deviations specifying the annual fluctuations in probabilities of reproduction and mortality. EV in carrying capacity is modelled by sampling a normal distribution. EV in reproduction and EV in mortality can be specified to be acting independently or jointly (correlated in so far as is possible for discrete binomial distributions).

Unfortunately, rarely do we have sufficient field data to estimate the fluctuations in birth and death rates, and in carrying capacity, for a wild population. (The population would have to be monitored for long enough to separate, statistically, sampling error, demographic variation in the number of breeders and deaths, and annual variation in the probabilities of these events.) Lacking any data on annual variation, a user can try various values, or simply set EV = 0 to model the fate of the population in the absence of any environmental variation.

VORTEX can model catastrophes, the extreme of environmental variation, as events that occur with some specified probability and reduce survival and reproduction for one year. A catastrophe is determined to occur if a randomly generated number between 0 and 1 is less than the probability of occurrence (i.e., a binomial process is simulated). If a catastrophe occurs, the probability of breeding is multiplied by a severity factor specified by the user. Similarly, the probability of surviving each age class is multiplied by a severity factor specified by the user.

VORTEX also allows the user to supplement or harvest the population for any number of years in each simulation. The numbers of immigrants and removals are specified by age and sex. VORTEX outputs the observed rate of population growth (mean of N[t]/N[t-1]) separately for the years of supplementation/harvest and for the years without such management, and allows for reporting of extinction probabilities and population sizes at whatever time interval is desired (e.g., summary statistics can be output at 5-year intervals in a 100-year simulation).

VORTEX can track multiple sub-populations, with user-specified migration among the units. (This version of the program has previously been called VORTICES.) The migration rates are entered for each pair of sub-populations as the proportion of animals in a sub-population that migrate to another sub- population (equivalently, the probability that an animal in one migrates to the other) each year. Migration can be sex and/or age-limited. VORTEX outputs summary statistics on each subpopulation, and also on the meta-population. Because of migration (and, possibly, supplementation), there is the potential for population recolonization after local extinction. VORTEX tracks the time to first extinction, the time to recolonization, and the time to re- extinction.

Overall, VORTEX simulates many of the complex levels of stochasticity that can affect a population. Because it is a detailed model of population dynamics, it is not practical to examine all possible factors and all interactions that may affect a population. It is therefore incumbent upon the user to specify those parameters that can be estimated reasonably, to leave out of the model those that are believed not to have a substantial impact on the population of interest, and to explore a range of possible values for parameters that are potentially important but very imprecisely known.

VORTEX is, however, a simplified model of the dynamics of populations. One of its artificialities is the lack of density dependence of death rates except when the population exceeds the carrying capacity. Another is that inbreeding depression is modelled as an effect on juvenile mortality only; inbreeding is optimistically assumed not to effect adult survival or reproduction.

VORTEX accepts input either from the keyboard or from a data file. Whenever VORTEX is run with keyboard entry of data, it creates a file called VORTEX.IN that contains the input data, ready for resubmission as a batch file. Thus, the simulation can be instantly rerun by using VORTEX.IN as the input file. By editing VORTEX.IN, a few changes could easily be made to the input parameters before rerunning VORTEX. Note that the file VORTEX.IN is over-written each time that VORTEX is run. Therefore, you should rename the batch file if you wish to save it for later use. By using data file input, multiple simulations can be run while the computer is unattended. (Depending on the computer used, the simulations can be relatively quick -- a few minutes for 100 runs -- or very slow.) Output can be directed to the screen or to a file for later printing. I would recommend that VORTEX only be used on a 80386 (or faster) computer with a math co-processor. It should run on slower machines, but it might be hopelessly slow.

The program can make use of any extended or expanded memory available on the computer and the extra memory will be necessary to run analyses with the Heterosis inbreeding depression option on populations of greater than about 450 animals. VORTEX uses lots of files and lots of buffers. Therefore, you may need to modify the CONFIG.SYS file to include the lines:
FILES=25
BUFFERS=25
in order to get the program to run.

VORTEX is not copy protected. Use it, distribute it, revise it, expand upon it. The program is copyrighted by the Chicago Zoological Society, and any derivative works (e.g., programs) should acknowledge the extent to which they are based on VORTEX. I would appreciate hearing of uses to which it is put, and of course I don't mind acknowledgement for my efforts.

A final caution: VORTEX is continually under revision. I cannot guarantee that it has no bugs that could lead to erroneous results. It certainly does not model all aspects of population stochasticity, and some of its components are simply and crudely represented. It can be a very useful tool for exploring the effects of random variability on population persistence, but it should be used with due caution and an understanding of its limitations.

For more information about VORTEX, users are strongly encouraged to read the User's Manual.