Web PopGen

This help page answers some questions about the mechanics of Web PopGen.  The function of buttons will be described as well as some of the algorithms used in generating the graphs.  Evolutionary theory will not be covered.  Click on the links below to get information on a particular aspect of the program

Display, Stochastic/Infinite populations, Population Size, Number of Populations, Selection/Fitness, Mutation, Migration, Bottle Neck Effect,

How to copy and paste graphs into a Word Processor Document (Macintosh, Windows).

Please send any "Bug" reports, comments or suggestions to Bob Sheehy


This program is a web based version of Joe Felsenstein's   Simul8 and PopG programs.  There are variations that make the this program more attractive and some that may make it more painful to use.

First, the bad news:

    This program is very slow.  Flash does not handle calculations well so this program could take a while to run.  Grab a cup of coffee or a soda and join the moment.  If you need  large populations (other than infinite populations) it is best to download one of the above programs.

Please be patient when using the "reset" or the "continue" button as it takes a while to clear the data from a previous run.

Variations of this program from PopG/Simul8
Future Changes Return to top


The upper part of the display (light blue background) contains the input boxes for setting variables (population size, fitness, migration rates etc.).  The lower portion contains two graphs.  If 2 or more populations are modeled the upper graph will plot the frequency of the A1 allele for each population and the lower graph will mirror the upper graph by plotting the frequency of the A2 allele.  If a single population is modeled the frequencies of both the A1 and A2 allele are plotted on the upper graph while the genotype frequencies of  the Homozygote A1A1, the homozygote A2A2 and the heterozygote A1A2 is plotted on the lower graph.

The simulation is started by clicking on the "Go" button and two new buttons will appear on the lower portion of the screen.  The go button will be replaced by a "Reset" button which clears the plotted data and prepares for the next simulation.  To the lower right is a "Continue" button which will remove the previously plotted data from the screen and continue with the simulation for the next interval of generations.

Return to top

Stochastic/Infinite populations:

Simulation may be run either with a defined population size or with a theoretically infinite population.  Stochastic populations are used to examine the effects of population size on genetic drift.  Some other factors which affect allele frequency may become more apparent when using infinite populations.

Clicking on the square check box allows the user to toggle between stochastic and infinite populations.  The number of populations being simulated will determine the number of allele frequency input boxes that are available.  Below (center) is what appears for 5 populations.  Each population may have a different starting allele frequency.  

Population 0 is a control population.  The allele frequency of Population 0 will vary with selection but migration and drift have no effect.

Clicking on the  "OK" button will close the window causing the program to look as at right.  Clicking on the check box again will return you to a simulations using stochastic populations.

stocastic checkbox
infinite allele frequency  

Choosing infinite populations will speed the program considerably.  When infinite population is chosen the initial allele frequency of each population may be set independent of the other populations.  The infinite population option is unavailable if the number of different populations is greater than 5.

It is possible to toggle between Stochastic and Infinite populations during a simulation run if desired.
Return to top

Population Size

population input

Population size between 5 and 250 individuals work well.  The larger the population the slower the program.  If one has patients and a good cup of coffee this may not be an intolerable situation to use larger populations.  When running the program in stochastic mode all populations start with the same initial allele frequency.  Allele frequency will drift, independently, in each population.
Return to top

Number of Populations


1-5 populations may be simulated at a time.  If 1 population is chosen then both the A1 and A2 allele frequencies are plotted on the upper graph and the three genotype frequencies (A1A1, A2A2 and A1A2) are plotted on the lower graph.  If 2 or more populations are simulated then the frequency of the A1 allele for each population is plotted on the top graph while the frequencies of the A2 allele for each population is plotted on the lower graph.  Each population is given a different color and, in the absence of migration, each population is independent of the others.  
Return to top


selection input
Web PopGen may be used to model natural selection of alleles and genotypes.  The fitness of a particular genotype may range from 0 to 1 inclusive.  Fitness provides the relative survival rate of a particular genotype with the most fit being set to 1.0.  For example, suppose the finesses for the three genotypes are  A1A1 = 1, A1A2 = 1 and A2A2 = 0.8.  This would indicate that fitness of the A1 allele behaves as a dominant, That the A1A1 homozygote and the A1A2 heterozygote have an equal fitness (leave, on average, the same number of viable offspring) and that the  A2A2 homozygote leaves, on average 80% of the number of viable offspring as either the A1A1 and the A1A2 genotypes.

The general formula for selection is:

  • Average Fitness (wbar ):
    • wbar  = p2 * w11 + 2pq * w12 + q2 * w22
      • where p = the frequency of the A1 allele, q = the frequency of the A2 allele, w11 = the fitness of the A1A1 homozygote,  w12 = the relative fitness of the A1A2 heterozygote and  w22 = the relative fitness of the A2A2 homozygote.
  • The frequencies of the various genotypes after selection:
    • Frequency of the A1A1 homozygote = (p2 * w11)/ wbar
    • Frequency of the A1A2 heterozygote = (2pq * w12)/ wbar
    • Frequency of the A2A2 homozygote = q2 * w22)/ wbar
Selecting Infinite population will cause a check box to appear in the Fitness box.  Initially, the fitness for each genotype is the same for all populations.

menu bar 1

Menu bar 2

Initially, all populations share the same fitness values as placed in the various boxes.  Clicking on the check box reveals a drop down menu which allows the user to enter different genotypic fitnesses for each of the populations.

Varied fitness

After entering the desired values clicking on the "OK" button will close the dialogue box.  Only the fitness values for population 0 will be visible.

Menue bar 3

When the "GO" button is clicked, starting the simulation, a key to the various populations will appear to the right of the lower graph.

Fitness data
Clicking on the fitness check box will return to all populations sharing the same fitness values.

Return to top


Currently two models of migration are possible.
island model
Source Sink Model

migration input
migration input
migration input

The migration option can be chosen by clicking on the Migration check box.  After the first click you will see the input data box  asking for the rate of migration.  This is a number between 0 and 1 inclusive (0 = no migration, 1 = every individual is a migrant).  Clicking on the Migration check box again brings up the Source/Sink model where the frequency of the A1 allele in the source population may be determined.  Frequency of the A1 allele in the source population may vary between 0 and 1 inclusive.  Migration may be turned on and off during a simulation by clicking on the Migration check box while the simulation is running.  This will give you an idea of the effect migration has on allele frequency among populations.

The general formula for migration is:

© 2004 by Bob Sheehy
Radford University
Radford Virginia

Last up dated May 15th 2007