Stepping-stone migration
When populations in a line exchange migrants only with neighbours, neighbours converge fast and the two ends converge slowly.
Read first: Island-island migration
A chain of populations
Real populations sit along a coast, a river or a valley. A migrant from one end does not jump to the other end. It moves one population at a time. The Stepping-Stone module puts n populations in a line, each exchanging migrants only with its immediate neighbours.
The model tracks the frequency of allele A in each population. Populations are infinitely large, so drift does not act. There is no selection or mutation. An interior population has total migration rate m, split into m/2 from each neighbour: p(i) becomes (1 − m)p(i) + (m/2)(p(i − 1) + p(i + 1)). An end population has one neighbour and exchanges m/2 with it. The default chain has n = 5 populations, m = 0.1 and starting frequencies 0.9, 0.7, 0.5, 0.3 and 0.1.
The chart draws one line per population, Pop 1 at the left end to Pop 5 at the right end. Watch two things: how soon neighbouring lines touch, and how long the top and bottom lines stay apart. The module prints the equilibrium value under the starting frequencies after each run.
Five populations, a gradient
Neighbours converge before the ends do
All five lines head for 0.5, the mean of the starting frequencies. They get there at different speeds. Neighbours start 0.2 apart, and the gap between populations 1 and 2 is 0.1329 in generation 10 and 0.0210 in generation 100. The two ends start 0.8 apart, and the gap between populations 1 and 5 is 0.6353 in generation 10 and 0.1102 in generation 100.
The cause is the one-step rule. An allele from population 5 can reach population 1 only by passing through populations 4, 3 and 2, and each step moves only a fraction m/2 of a gene pool. The end-to-end difference first falls below half its starting value, 0.4, in generation 34.
Population 3 sits in the middle of a symmetric gradient. Its neighbours are 0.2 above and 0.2 below it, so what it receives from one side equals what it receives from the other, and it stays at 0.5. Population 2 lies between the ends and the centre. It reads 0.6847 in generation 10, 0.5893 in generation 50 and 0.5340 in generation 100, each step closer to 0.5 than population 1 is at the same time.
Ten populations, same migration
Exercise
Lengthen the chain
Open the module and run the defaults. Set Pops 10, Gen 300, press Apply Gradient and run again. Then set Pops 2 and run.
What to expect. The end-to-end difference first halves in generation 34 for 5 populations, 117 for 10 populations and 7 for 2 populations. Step 4 of the walkthrough shows the 10-population chain.
Open the walkthrough step →Distance slows gene flow
A gene copy that moves one step left or right each generation with probability m/2 each way is a random walk. The time such a walk needs to cover a distance grows roughly with the square of the distance. Doubling the chain from 5 to 10 populations raised the halving time from 34 to 117 generations, 3.4 times as long.
The migration rate sets the scale. With 5 populations the end-to-end difference first halves in generation 7 for m = 0.5, generation 34 for m = 0.1 and generation 168 for m = 0.02. Five times less migration, 0.1 down to 0.02, gives 4.9 times the wait.
This is isolation by distance. Populations next to each other share alleles through the chain, while populations far apart stay different long after the nearest ones have merged. A real species with low migration along a range shows the same pattern as a gradient of allele frequency.
Exercise
Vary the migration rate
Keep Pops 5, p(left) 0.9, p(right) 0.1 and set Gen 300. Run with m 0.5, then 0.1, then 0.02.
What to expect. The two end populations take 7, 34 and 168 generations to close half of the 0.8 gap. In every run the lines finish at 0.5. At m = 0.02 the ends are still 0.6763 and 0.3237 in generation 200.
Open the walkthrough step →Summary
- Each interior population keeps 1 − m of its gene pool and takes m/2 from each neighbour; end populations exchange m/2 with their single neighbour.
- All populations end at the mean of the starting frequencies, 0.5 for the default gradient.
- Neighbours converge first: populations 1 and 2 differ by 0.0210 in generation 100 while the ends differ by 0.1102.
- Longer chains are slower, roughly with the square of the length: the end-to-end halving time is 34 generations for 5 populations and 117 for 10.
- Lower migration scales the wait: 7, 34 and 168 generations for m = 0.5, 0.1 and 0.02.