When you have completed the exercise below, submit your model and your lab write-up via the Google Drive Form (https://forms.gle/ E3QLACX1aA2Q6ist5). Responses due by the following week's lab period.
During lab, we will work in groups. Here are the groups assigned for today's exercise:
Shaina and Diane (both ill) | Ricarda and Revanth |
Martha and Aidan | Merry and My |
Sophie and Kalyan | Calvin and Emily S. |
Emily F. and Amelia | Hunter and Elise |
Julia and Vaughn | Isabel and Andrea |
Today we’ll build a two-locus model to allow us to explore the phenomenon of gametic disequilibrium, including how it is affected by physical linkage and by natural selection. Just like we did with drift, we’ll create a toggle to allow us to start out either in maximum Disequilibrium or not (that is, in equilibrium). Until now, we’ve tracked genotypes and also allele frequencies. However, the two-locus model has 9 possible genotypes so we are only going to track the four possible gamete types with our stocks. We will account for genotypes when modeling selection by specifying fitness values for each of the 9 genotypes. The inclusion of a spinner for r, the rate of recombination, will allow us to explore the effects of physical linkage. These parameters will then let us see how it’s possible to have gametic disequilibrium even when the loci are not physically linked (r = 0.5).
Because we are tracking gametotypes rather than genotypes in this model, we’ll have to start from scratch, though you should notice similarities to the models we built in earlier lab exercises.
Before we get started, let’s think about what it means for the population to be in maximum disequilibrium for the alleles at two loci (Alpha and Beta loci). We have two alleles for each locus with the following allele frequencies:
Locus Alpha, alleles A and a | Locus Beta, alleles B and b |
freq A = frequency of the A allele | freq B = frequency of the B allele |
freq a = frequency of the a allele | freq b = frequency of the b allele |
Now, if we assume that loci are independently assorting, then we know the probability of having each combination of alleles in a gamete – it’s just the product of the two allele frequencies.
G1 = frequency of the AB gamete = freq A * freq B
G2 = frequency of the Ab gamete = freq A * freq b
G3 = frequency of the aB gamete = freq a * freq B
G4 = frequency of the ab gamete = freq a * freq b
If we imagine a population where freq A = 0.5 and freq B = 0.5, then we expect G1 = 0.5*0.5 = 0.25. And we’d also end up with 0.25 for the frequencies of G2, G3, and G4. That would be our prediction if the Alpha and Beta loci assort independently.
But now imagine that when we look at gametes, we see that what we have is:
G1 = AB gamete = 0.5
G2 = Ab gamete = 0
G3 = aB gamete = 0
G4 = ab gamete = 0.5
We still have all the allele frequencies equal to 0.5 BUT the way alleles are paired in gametes is not random - we only get AB and ab. This would be maximum disequilibrium. The actual maximum disequilibrium values depends on the allele frequencies since you can’t have more AB gametes than you have A alleles, for example. Below, I give you the equations that will help us figure out the maximum for whatever starting conditions we choose.
In our model, we will set it up so we can choose to start with maximum disequilibrium OR start in gametic equilibrium.
Here's a reference image of the completed model:
Variable | Equation | Min | Max | Incr | Description |
pAinit | 1.0 | 0 | 1 | 0.001 | Initial frequency of the A allele |
pBinit | 1.0 | 0 | 1 | 0.001 | Initial frequency of the B allele |
r | 0.5 | 0 | 0.5 | 0.001 | Rate of recombination |
Variable | Equation |
Dinitial | 0 |
Dmax | IF THEN ELSE( Dinitial = 0 , 0 , MIN( pAinit*(1-pBinit) , pBinit*(1-pAinit) ) ) |
Variable | Arrows from | Initial Value |
G1 | pAinit, pBinit, Dmax | ( (pAinit * pBinit) + Dmax) |
G2 | pAinit, pBinit, Dmax | ( (pAinit * (1 - pBinit) ) - Dmax) |
G3 | pAinit, pBinit, Dmax | ( ( (1-pAinit) * pBinit) - Dmax) |
G4 | pAinit, pBinit, Dmax | ( ( (1-pAinit) * (1-pBinit) ) + Dmax) |
Variable | Description | Arrows from | Equation |
freq A1 | frequency of the A allele (or A1) | G1, G2 | G1 + G2 |
freq a2 | frequency of the a allele (or a2) | G3, G4 | G3 + G4 |
freq B1 | frequency of the B allele (or B1) | G1, G3 | G1 + G3 |
freq b2 | frequency of the b allele (or b2) | G2, G4 | G2 + G4 |
D | the amount of disequilibrium present in the population | G1, G2, G3, G3 | (G1 * G4) - (G2 * G3) |
Variable | Description | Equation | Min | Max | Incr |
w11 | fitness of AABB (the AB or G1/G1 gametes) | 1 | 0 | 1 | 0.001 |
w22 | fitness of AAbb (the Ab or G2/G2 gametes) | 1 | 0 | 1 | 0.001 |
w33 | fitness of aaBB (the aB or G3/G3 gametes) | 1 | 0 | 1 | 0.001 |
w44 | fitness of aabb (the ab or G4/G4 gametes) | 1 | 0 | 1 | 0.001 |
w12 | fitness of AABb (AB and Ab gametes, or G1/G2) | 1 | 0 | 1 | 0.001 |
w13 | fitness of AaBB (AB and aB gametes, or G1/G3) | 1 | 0 | 1 | 0.001 |
w24 | fitness of Aabb (Ab and ab gametes, or G2/G4) | 1 | 0 | 1 | 0.001 |
w34 | fitness of aaBb (aB and ab gametes, or G3/G4) | 1 | 0 | 1 | 0.001 |
wHet | fitness of AaBb (either G1/G4 or G2/G3) | 1 | 0 | 1 | 0.001 |
Variable | Description | Arrows from | Equation |
wbar1 | fitness of AB or G1 gametes | G1, G2, G3, G4, w11, w12, w13, wHet | G1*w11 + G2*w12 + G3*w13 + G4*wHet |
wbar2 | fitness of Ab or G2 gametes | G1, G2, G3, G4, w12, w22, wHet, w24 | G1*w12 + G2*w22 + G3*wHet + G4*w24 |
wbar3 | fitness of aB or G3 gametes | G1, G2, G3, G4, w13, wHet, w33, w34 | G1*w13 + G2*wHet + G3*w33 + G4*w34 |
wbar4 | fitness of ab or G4 gametes | G1, G2, G3, G4, wHet, w24, w34, w44 | G1*wHet + G2*w24 + G3*w34 + G4*w44 |
wmean | mean fitness of the population, as we used before | G1, G2, G3, G4, wbar1, wbar2, wbar3, wbar4 | G1*wbar1 + G2*wbar2 + G3*wbar3 + G4*wbar4 |
Variable | Arrows from | Equation |
deltaG1 | G1, wbar1, r, wHet, D, wmean | (G1*wbar1 – r*wHet*D)/wmean - G1 |
deltaG2 | G2, wbar2, r, wHet, D, wmean | (G2*wbar2 + r*wHet*D)/wmean - G2 |
deltaG3 | G3, wbar3, r, wHet, D, wmean | (G3*wbar3 + r*wHet*D)/wmean - G3 |
deltaG4 | G4, wbar4, r, wHet, D, wmean | (G4*wbar4 – r*wHet*D)/wmean - G4 |
Our first test is just to click Simulate, to run the model with all the starting conditions that we set up (which are freqA1 = 1, freqB1 = 1, so only A and B alleles, thus only AB gametes). If you Graph G1, G2, G3, and G4. You should see that G1 is at 1.0, flat line, and everything else is flat at 0.
If any values are different from this, there are mistakes somewhere in your model! Start by checking the equations for the gametotypes then check the equations for the flows next. Be careful of operators (*, +, or -) and parentheses.
Now let's click Simulation Control and try out a different no evolution scenario. Set the following variable values before naming your run and clicking Save. Then click Simulate.
Dinitial | r | pAinit | pBinit | Fitnesses | Description |
0 | 0.5 | 0.6 | 0.3 | all 1.0 | No selection, unlinked, D=0 |
Now graph G1-4. Then graph freqA1 and freqB1. You may want to remove all the lines from the current run. You can do that manually or use the Control Panel. Given that we have no selection and no disequilibrium to start, all the lines on the graph should remain flat. No change in allele or gamete type frequencies should occur. But notice that we do see the different gametes are present at different frequencies. You should be able to see how the gamete frequencies relate to the allele frequencies (for example, G1 = pA x pB).
For a final check, let's see what happens when we start the population off with maximum disequilibrium (for these allele frequencies) -- just run the same conditions as above except change Dinitial to 1.
Dinitial | r | pAinit | pBinit | Fitnesses | Description |
1 | 0.5 | 0.6 | 0.3 | all 1.0 | No selection, unlinked, D=0 |
You should see that the population starts out of equilibrium and then the gamete frequencies reach the same equilibrium as in the previous run. What does this tell us about the effect of adding an association between alleles at different loci? Make sure to also look at the graph for D.
Trial | Dinitial | r | pAinit | pBinit | Fitnesses | Description |
1a | 0 then 1 | 0.5 | 0.6 | 0.3 | all 1.0 | No selection, unlinked, D=0 |
1b | 0 then 1 | 0.1 | 0.6 | 0.3 | all 1.0 | No selection, unlinked, D=0 |
Trial | Dinitial | r | pAinit | pBinit | Fitnesses | Description |
2a | 0 then 1 | 0.5 | 0.5 | 0.5 | 1 for bb (w22, w44, w24), 0.8 for others | unlinked |
2b | 0 then 1 | 0.1 | 0.5 | 0.5 | 1 for bb (w22, w44, w24), 0.8 for others | linked |
AA | Aa | aa | |
BB | w11 = 0.8 | w13 = 0.8 | w33 = 0.8 |
Bb | w12 = 0.8 | wHet = 0.8 | w34 = 0.8 |
bb | w22 = 1 | w24 = 1 | w44 = 1 |
AA | Aa | aa | |
BB | w11 = 0.95 | w13 = 0.95 | w33 = 0.85 |
Bb | w12 = 0.80 | wHet = 0.80 | w34 = 1.0 |
bb | w22 = 0.85 | w24 = 0.85 | w44 = 0.90 |
Trial | Dinitial | r | pAinit | pBinit | Fitnesses | Description |
3a | 0 then 1 | 0.5 | 0.5 | 0.5 | as in above table | unlinked |
3b | 0 then 1 | 0.05 | 0.5 | 0.5 | as in above table | loci linked |
Remember to submit your model and responses as a PDF via the Google Drive Form: https://forms.gle/E3QLACX1aA2Q6ist5. Write-up are due by the next lab period.
Variable | Value | Initial or Equation |
G1 | Initial | ( (pAinit * pBinit) + Dmax ) |
G2 | Initial | ( (pAinit * (1 - pBinit) ) - Dmax ) |
G3 | Initial | ( ( (1 - pAinit) * pBinit) - Dmax ) |
G4 | Initial | ( ( (1 - pAinit) * (1 - pBinit) ) + Dmax ) |
wbar1 | Equation | G1 * w11 + G2 * w12 + G3 * w13 + G4 * wHet |
wbar2 | Equation | G1 * w12 + G2 * w22 + G3 * wHet + G4 * w24 |
wbar3 | Equation | G1 * w13 + G2 * wHet + G3 * w33 + G4 * w34 |
wbar4 | Equation | G1 * wHet + G2 * w24 + G3 * w34 + G4 * w44 |
wmean | Equation | G1 * wbar1 + G2 * wbar2 + G3 * wbar3 + G4 * wbar4 |
freq A1 | Equation | G1 + G2 |
freq a2 | Equation | G3 + G4 |
freq B1 | Equation | G1 + G3 |
freq b2 | Equation | G2 + G4 |
D | Equation | (G1 * G4) - (G2 * G3) |
Dmax | Equation | IF Dinitial = 0 THEN 0 ELSE MIN(pAinit*(1-pBinit), pBinit*(1-pAinit)) |
deltaG1 | Equation | (G1*wbar1 - r*wHet*D)/wmean - G1 |
deltaG2 | Equation | (G2*wbar2 + r*wHet*D)/wmean - G2 |
deltaG3 | Equation | (G3*wbar3 + r*wHet*D)/wmean - G3 |
deltaG4 | Equation | (G4*wbar4 - r*wHet*D)/wmean - G4 |