General Instructions: Use the free allele simulation software available from:
http://faculty.washington.edu/herronjc/SoftwareFolder/AlleleA1.html
It does not run on iPad, but you can get versions for either MacOS X or Windows.
Install it and then open it on your system; you should see this:
Macintosh HD:Users:davegray:Desktop:allele main screen.tiff
Familiarize yourself with the basic controls.
Basically the software graphs allele frequency versus time for the “A1” allele (i.e. “p”) at a two allele locus. By clicking the arrow pointing down on the left side of the graph just below “Frequency of allele A1” you can opt to graph the frequency of the A2 allele (i.e. “q”), or genotypic frequencies (which may or may not equal p2 2pq and q2 depending on whether or not your population is meeting the assumptions of Hardy-Weinberg equilibrium, hereafter HW).
Click the run button on the bottom left. You should get a straight line across the screen, and to the right of the graph should then appear “Final Frequencies” of alleles and genotypes. This is after the 500 generations of the X-axis of the graph. You can make the number of generations more or less by clicking the right facing arrow at the end of that axis.
Let’s interpret what happened: p started as 0.5, and after 500 generations was still 0.5, so we would say that there was no evolution at this locus; also note that the genotype frequencies are as we would expect from p2 + 2pq + q2 = 1. HW says this happens when there is (1) no selection, (2) no mutation, (3) no gene flow, (4) no genetic drift, AND (5) random mating. The AND is important, all conditions must be satisfied. What the allele lab allows one to do is systematically violate one or more of those five conditions.
Below is another screenshot. Red oval is where you can change genotypic fitness (really the average fitness of the phenotype produced by that genotype), i.e. selection; blue oval is where you can change mutation rate A1 to A2 and reverse; yellow box is about gene flow, you can change the fraction of migrants each generation and the allele frequency in the source population; black arrow points to where you can control effective population size, which is about genetic drift; grey arrow points to how you control if mating is random or not.
Macintosh HD:Users:davegray:Desktop:allele main screen.tiff
You can run multiple trials for any given set of conditions; you can graph a single line which disappears if you run it again (single), have multiple lines all one color (multiple), or have multiple lines of different colors (auto).
You can clear lines without changing your experimental conditions by clicking clear and you can put all conditions back to the default starting conditions by clocking reset.
Now you are ready to do the lab. Click reset.
Part 1: Selection alone
Selection against a deleterious recessive allele.
Change the Fitness of the A2A2 genotype to 0.5, leaving the others as 1.0. This is equivalent to modeling a disease caused by being homozygous for deleterious recessive alleles. How do you know that the A2 allele is recessive? Because the A1A2 heterozygous genotype is equivalent to the A1A1 homozygous genotype, both have fitness of 1.0. Click run.
What happened?
What is the final frequency of the A1 allele after 500 generations?
Why hasn’t the “bad” A2 allele gone to frequency zero? (hint, after 500 generations what is the frequency of the homozygous recessive A2A2 genotype?).
Maybe it will go to zero if you run it longer; try 1000 generations. What happened?
Selection against a deleterious dominant allele.
Click reset. Then change the genotypic fitness to model selection against a deleterious dominant allele. How would you do this? If it is dominant, then A1A1 fitness and A1A2 fitnesses are equal to each other and lower than the fitness of the A2A2 genotype. So try A1A1 = 0.5, A1A2 = 0.5, and A2A2 = 1.0. Click run.
What happened?
What is the final frequency of the A1 allele after 500 generations?
How fast was the A2 allele lost? If you can’t see it on your graph then you can click clear, change the number of generations to 25, click run, and get a better view.
What if selection were much much much weaker, for example click reset and then try genotypic fitnesses of A1A1 = 0.95, A1A2 = 0.95, and A2A2 = 1.0. Click run.
What happened?
What is the final frequency of the A1 allele after 500 generations?
Selection for a beneficial recessive allele.
Click reset. How would you model selection for a beneficial recessive?
Record the genotypic fitnesses you use to simulate this.
A1A1 =
A1A2 =
A2A2 =
Click run. What happened?
What is the final frequency of the A1 allele after 500 generations?
How fast was the A1 allele lost (if it was)? If you can’t see it on your graph then you can change generation numbers and do it again.
Is modeling selection for a beneficial recessive different from modeling selection against a deleterious dominant? Why or why not?
How do you think the pattern and the outcome of evolution would differ if it you modeled selection for a beneficial dominant allele instead of a beneficial recessive allele? Seriously, what is your prediction?
Selection for a beneficial dominant allele.
OK, now you can test that prediction. Click reset, and then set up a selection scenario to test your idea. What is your scenario?
Record the genotypic fitnesses you use to simulate this.
A1A1 =
A1A2 =
A2A2 =
Click run. What happened?
What is the final frequency of the beneficial allele after 500 generations [probably this will be the A1 allele, but some of you might have set up a scenario that makes the A2 allele the dominant beneficial one]?
How fast was the deleterious allele lost (if it was)? If you can’t see it on your graph then you can change generation numbers and do it again.
Was your prediction supported?
Part 2: Mutation alone
This one is quick and easy. Click reset. Then make the mutation rate of A1 to A2 something that is high but biologically plausible, e.g. 0.0001, and the reverse mutation rate A2 to A1 just leave at zero. This simulates mutation as strongly as is biologically realistic, so we are giving mutation the best chance to show us what it can do. Click run, what happens?
So what do you conclude about the evolutionary power of mutation (all by itself) to change allele frequencies? Is mutation an important evolutionary force (obviously it is incredibly important in providing genetic variation for selection to act upon, but is mutation itself a significant force causing microevolutionary change)?
Part 3: Gene flow alone
Also quick and easy. Click reset. Note the default settings: A1 allele starts in your population at frequency 0.5, with no immigration from some other source population which also has A1 allele frequency of 0.5. Click run and nothing changes; you did that before – it is just HW.
Now change the fraction of migrants in each generation to 0.1, meaning 10% of your new population each generation will be made up of individuals that came from the other source population. Click run and nothing changes, why?
Recall that what gene flow does is to make populations more similar to each other. If your source population is not different in frequency of A1 allele, then Fst = 0 and the frequency of A1 allele in your population won’t change with migration. So now make migrants come from a population that is genetically different from your population.
Data: fraction of migrants =
A1 freq in source pop =
Click run, what happens?
What is your interpretation?
Part 4: Genetic Drift alone
OK, this one not so quick and easy. Click reset and get ready for some fun.
Drift depends upon random events; in large populations random events tend to cancel each other out, so there is minimal net effect, but in small populations random events can cause dramatic effects on outcomes. Because the effects of drift are due to random events, the effects of drift in any one instance are not predictable, but the effects of drift are predictable in a broader sense. The average effect of random events can be highly predictable even though the outcome in any particular situation is not. To see this, you will need to run simulations multiple times, and see what the typical or average outcome is. It is easiest to do this if you set the software graphing lines to “auto” so feel free to do that.
In very small populations, we expect drift to be strong, random changes in allele frequency might cause alleles to be lost. Click reset, graph lines auto, number of generations = 100, & population size 50.
Click run one time. What happened?
A1 frequency after 100 generations =
Don’t change anything and click run again. What happened this time?
A1 frequency after 100 generations =
Do this 8 more times for a total of 10 times.
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
Now calculate the average and the standard deviation (SD) of the A1 frequencies after 100 generations across those 10 trials. You can use a spreadsheet, or various online calculators, e.g.,
http://www.easycalculation.com/statistics/standard-deviation.php
Record your results:
Population size = 50
Average A1 frequency after 100 generations =
SD A1 frequency after 100 generations =
Now do that all again with a population size of 500. Click reset, graph lines auto, number of generations = 100, & population size 500. Collect data for 10 trials.
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
Population size = 500
Average A1 frequency after 100 generations =
SD A1 frequency after 100 generations =
Now do that all again with a population size of 5000. Click reset, graph lines auto, number of generations = 100, & population size 5000. Collect data for 10 trials.
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
A1 frequency after 100 generations =
Population size = 5000
Average A1 frequency after 100 generations =
SD A1 frequency after 100 generations =
Draw two graphs using your data based on the average and SD outcomes across 10 trials for each of your three different population sizes. First graph should show the Average A1 frequency after 100 generations on the vertical Y axis against Population Size on the horizontal X axis (50, 500, 500).
Second graph should show the Standard Deviation of A1 frequency after 100 generations on the vertical Y axis against Population Size on the horizontal X axis (50, 500, 500).
Graph 1 (average A1 x population size) Graph 2 (SD A1 x population size)
What do you conclude about:
(1) the average effect of drift on allele frequency
(2) how the variation in outcome depends on population size
Drift and allele fixation
What are the chances that an allele goes to fixation (i.e. 100%) by drift alone? After your first experiments on drift, you might reasonably expect that the answer would depend upon population size….but it doesn’t. Let’s explore how and why.
In your first experiments, the starting A1 allele frequency was 0.5, and because random changes are equally likely to increase or decrease the allele frequency, the average expected change is zero (and would be zero in an infinite population), so the average ending allele frequencies typically were (probably) around 0.5. What if you started the A1 allele at a higher or lower frequency?
Click reset, graph lines auto, number of generations = 500, population size = 100, and the starting frequency of the A1 allele = 0.9. Run it 10 times, keeping track of final A1 frequency each time.
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 starts at 0.9.
Out of those 10 trials, in how many did A1 go to fixation (100%)?
Do it again with the starting frequency of the A1 allele = 0.7.
Click reset, graph lines auto, number of generations = 500, population size = 100, and the starting frequency of the A1 allele = 0.7. Run it 10 times, keeping track of final A1 frequency each time.
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 starts at 0.7.
Out of those 10 trials, in how many did A1 go to fixation (100%)?
Do it again with the starting frequency of the A1 allele = 0.5.
Click reset, graph lines auto, number of generations = 500, population size = 100, and the starting frequency of the A1 allele = 0.5. Run it 10 times, keeping track of final A1 frequency each time.
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 starts at 0.5.
Out of those 10 trials, in how many did A1 go to fixation (100%)?
Do it again with the starting frequency of the A1 allele = 0.3.
Click reset, graph lines auto, number of generations = 500, population size = 100, and the starting frequency of the A1 allele = 0.3. Run it 10 times, keeping track of final A1 frequency each time.
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 starts at 0.3.
Out of those 10 trials, in how many did A1 go to fixation (100%)?
Do it again with the starting frequency of the A1 allele = 0.1.
Click reset, graph lines auto, number of generations = 500, population size = 100, and the starting frequency of the A1 allele = 0.1. Run it 10 times, keeping track of final A1 frequency each time.
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 frequency after 500 generations =
A1 starts at 0.1.
Out of those 10 trials, in how many did A1 go to fixation (100%)?
Now draw a graph using your data. On the vertical Y axis should be how many of the 10 trials (for each starting condition) the A1 allele reached fixation and on the horizontal X axis should be the starting frequency of the A1 allele.
Graph 3. fixation of A1 x starting freq of A1
What do you conclude?
Feel free to do the whole thing over with different population sizes; the overall results will be the same. For weaker drift (i.e. larger populations sizes) you would need more generations to see the effects, but the effects would be the same and independent of population size (provided it isn’t infinite). The probability of a neutral allele (neutral, as in no selection) drifting to fixation is equal to the initial frequency of that allele.
Part 5: Non-random mating alone
How can you mate non-randomly if you are alone? Anyway, click reset. Unlike the other four assumptions of HW, non-random mating does not change allele frequencies, instead it changes genotype frequencies from p2 + 2pq + q2 = 1.
Change the simulation display vertical axis so that it displays “Frequency of genotype A1A2” instead of “Frequency of allele A1,” change the number of generations to 15, and click run.
With the default inbreeding coefficient (F) = 0, you should see the final A1A2 genotype frequency = 0.5, i.e. 2pq.
Now make F = 0.1, click run, final A1A2 genotype frequency =
Now make F = 0.3, click run, final A1A2 genotype frequency =
Now make F = 0.5, click run, final A1A2 genotype frequency =
Now make F = 0.7, click run, final A1A2 genotype frequency =
What do you conclude?
So far you have considered each element of HW equilibrium in isolation. Lets put some things together to make things more interesting and more realistic.
The second part of your assignment is to model an interesting but realistic population genetics scenario. There are a number of combinations you could model, for example (1) mutation - selection balance, (2) selection and drift, (3) selection against alleles that migrate in from other populations, (4) underdominance with no genetic drift versus underdominance with genetic drift, (5) selection and drift with an initially rare beneficial allele. Just remember, that for any model that involves genetic drift you will need to run it multiple times to get a sense of what happens on average. Use as much space as you need, but you must address:
(1) Your scenario:
(2) Your model settings:
(3) Your results:
(4) Your overall conclusions: