The Wahlund effect
Pooling subpopulations that differ in allele frequency leaves too few heterozygotes, by exactly twice the variance of p among them.
Read first: Genotype frequencies and Hardy-Weinberg
Every part is in equilibrium, the whole is not
Suppose a species lives in five local populations. Inside each one mating is random, so each is in Hardy-Weinberg proportions for its own allele frequency. A sample that mixes individuals from all five does not match Hardy-Weinberg for the mixed allele frequency. It has too few heterozygotes and too many homozygotes. This is the Wahlund effect, named after Sten Wahlund, who described it in 1928.
The module is a calculation, not a simulation. There is no randomness, no generations and nothing to seed. You enter the frequency of allele A in five subpopulations (p₁ to p₅), an inbreeding coefficient f that applies inside each, and it pools the five with equal weights. Press Run to see the pooled genotype frequencies next to the Hardy-Weinberg expectation.
The defaults are p = 0.1, 0.3, 0.5, 0.7 and 0.9, with f = 0. The pooled allele frequency is the mean, p̄ = 0.5.
Five subpopulations pooled
Why the deficit is 2 Var(p)
Inside subpopulation i the heterozygote frequency is 2pᵢ(1 − pᵢ). The pooled frequency is the average of these. The average of pᵢ(1 − pᵢ) is p̄(1 − p̄) minus the variance of pᵢ, because the average of pᵢ² is p̄² plus Var(p). So the pooled Aa frequency is 2p̄(1 − p̄) − 2Var(p).
For the defaults Var(p) = 0.08. The Hardy-Weinberg expectation is 2 × 0.5 × 0.5 = 0.50, and the pooled heterozygote frequency is 0.50 − 2 × 0.08 = 0.34. Each homozygote class is in excess by Var(p), which is 0.08, so AA and aa are 0.25 + 0.08 = 0.33. The deficit of Aa equals the two excesses together, so the three frequencies still add up to 1.
The proportional deficit is F_ST = Var(p)/[p̄(1 − p̄)]. For the defaults that is 0.08/0.25 = 0.32. A pooled sample would show 1 − 0.34/0.50 = 0.32, the same number. The pooled sample looks 32% inbred, although nobody mates with a relative. The cause is population structure, and a test of Hardy-Weinberg on the pooled sample would reject.
At the extreme, subpopulations 1 and 2 are fixed for a (p = 0) and 3 to 5 are fixed for A (p = 1). Every individual is homozygous, so pooled Aa is 0.00 where 0.48 is expected, and F_ST = 1.
Similar subpopulations
Exercise
Shrink the spread
Open the module and run the defaults. Then set p₁ to p₅ to 0.4, 0.45, 0.5, 0.55 and 0.6 and run again. Finally set all five to 0.5.
What to expect. The defaults give Var(p) 0.08, Aa 0.34 against 0.50 and F_ST 0.32. The narrow set gives Var(p) 0.005 and F_ST 0.02. Five equal values give Var(p) 0, F_ST 0, and observed equal to expected. Step 5 of the walkthrough shows the narrow set.
Open the walkthrough step →Inbreeding inside subpopulations
The coefficient f describes mating inside each subpopulation. With f > 0, subpopulation i has AA = p²(1 − f) + pf, Aa = 2pq(1 − f) and aa = q²(1 − f) + qf. Heterozygotes are reduced by the factor 1 − f in every subpopulation. The pooled Aa frequency is then (1 − f)(2p̄(1 − p̄) − 2Var(p)).
The three coefficients are linked. F_IS = f measures departure inside the subpopulations. F_ST measures the spread between them, from Var(p) alone. F_IT = 1 − (1 − F_ST)(1 − F_IS) measures the whole deficit in the pooled sample. With f = 0.1 on the default frequencies, F_IT = 1 − 0.68 × 0.90 = 0.388. Pooled Aa is 0.90 × 0.34 = 0.306, and 1 − 0.306/0.50 = 0.388 again.
The pooled sample alone cannot say how much of 0.388 is structure and how much is inbreeding. Both reduce heterozygotes in the same way. Separating them needs the subpopulation labels.
Structure plus inbreeding
Exercise
Inbreeding without structure
Set all five frequencies to 0.4 and f to 0.3, then run.
What to expect. Var(p) is 0 and F_ST is 0. Pooled Aa is 0.336, which is 0.48 × 0.7. The whole deficit comes from F_IS = 0.30. Step 6 of the walkthrough adds inbreeding to the default structure.
Open the walkthrough step →Summary
- Subpopulations in Hardy-Weinberg, pooled, show a heterozygote deficit of 2Var(p): 0.34 against 0.50 for the default frequencies.
- Each homozygote class is in excess by Var(p), so the three pooled frequencies still sum to 1.
- F_ST = Var(p)/[p̄(1 − p̄)] is the proportional deficit: 0.32 for the defaults, 0.02 for subpopulations at 0.40 to 0.60, 1 when every subpopulation is fixed.
- F_IT = 1 − (1 − F_ST)(1 − F_IS): with f = 0.1 the pooled deficit is 0.388.
- A pooled sample cannot separate structure from inbreeding, so a Hardy-Weinberg rejection in pooled data may be the Wahlund effect.