I find figures really useful for explaining concepts like drift, differentiation, and incomplete lineage sorting. However, I often find textbook figures are not super helpful (although the Tree thinking book by Smith and Baum is good for this). So for my undergrad teaching this quarter I set myself the task of generating R code and figures. In the last post I described simple simulations of drift in single populations. In these figures each generation is a vertical column, with each diploid individual having two alleles. In each offspring generation, two random parents are chosen from each offspring, and one of each parents alleles are chosen at random.
My R code to produce these figures, and ones like them is on github here. Feel free to reuse/repurpose the figures and code. If you find them useful leave a comment, or suggest ways they could be improved. I’ll integrate these ILS figures into my popgen notes in the next month or two [pdf here].
In the figures below there are no new mutations during the simulation, so we can just track alleles over the generations.
Figure of drift causing differentiation of an ancestral polymorphism between two separated populations:
More simulations here.
Below are three figures of complete and incomplete lineage sorting as a result of random drift of ancestral polymorphism in ancestral populations (e.g. Human-Chimp-Gorilla). All of the initial alleles are given distinct colours so their path can be tracked over time.
An ancestral allele has differentially fixed/lost in the two sister species (e.g. human and chimp) making one of them more related to the outgroup (e.g. humans and gorillas sharing an allele) than its sister species (chimp) at this locus.
I’ve simulated many more figures of ancestral lineage sorting here.