Since the Endangered Species Act was passed in 1972, approximately 800 species have been listed as threatened or endangered. About 400 more are deemed to be in immediate danger, but there are insufficient resources to carry out the studies necessary for listing, and there are another 3500 species with credible proposals for listing.
A key part of the decision as to whether to list a species as threatened or endangered rests on a population viability analysis, in which teams of scientists from various disciplines try to determine the probability of extinction as a function of three different types of parameters:
This case study is a computer simulation of the genetics of small populations. The simulator focuses on the genetic makeup of individuals, and tracks how new mutations that are introduced at random spread through the population. Since most mutations are harmful, as the mutations spread the population's health deteriorates.
What the simulation shows is that under the right conditions, mutations alone are enough to cause extinction; in other words, even with a constant, benign environment, small populations will become extinct merely as a result of new mutations that build up over generations. In fact, there is a critical point after which extinction is inevitable: the population is still at its original size, but a sufficient number of mutations have built up that the next generation will be smaller (since some offspring will be too unhealthy to survive). At this point there begins a snowballing process where each new generation is smaller than the previous one. This sudden collapse in the population has been termed the ``mutational meltdown.''
One of the most interesting aspects of computational science is the syngergy between computer science and the application area (population genetics, in this case). Knowledge of one area alone is not sufficient to make significant advances in research. Biologists need to use modern high performance computer systems to carry out the computationally intense simulations, and to use these systems requires knowledge of parallel algorithms and languages and how to map them effectively to parallel computer systems. Equally important, a computer scientist alone could not implement the simulators, since a straightforward implementation of the underlying biological systems is far too inefficient; mathematical transformations and optimizations based on deep knowledge of the domain are crucial in making the simulators efficient enough for the simulations that are of interest. Three examples of this synergy are included in this chapter, in the section entitled optimizations.
The first two sections of the chapter contain background information on evolutionary biology, with an emphasis on the accumulation of mutations in species, and a description of abstract mathematical models of mutation accumulation.
The main body of the chapter is on how the abstract models are implemented in a computer program. For the most part this simulator is an ``ab initio'' simulation, i.e. it simulates basic events in the underlying biological processes with little or no mathematical abstraction. The three crucial optimizations that allow the system to simulate larger populations (up to several hundred individuals) are described in this section; each of them takes advantage of properties of the underlying mathematical models.
Several course projects of varying sizes can be based on of this chapter. At various points in the text there are exercises and descriptions of computational projects, including: