Simulating Evolution V — Digging into Epistasis

In the last post in this series, we had found a cool example of epistasis: a beneficial mutation that appeared and fixed relatively late in one population turned out to depend on prior substitutions. Had it arisen much earlier in the population’s history, then it would have been deleterious, not beneficial. Let’s reorient; we’re talking about the allele represented by the orange line in the top row, gene R1.



We’ll call this the “orange” mutation, since that’s unique in this context. Furthermore, we saw two distinct stages to these prerqusite changes. First, a duplication led to gene R4; before this addition, the orange mutation was disastrous; afterward, it was only mildly deleterious. After the fixation of the red allele in gene P3, orange became outright beneficial, and arose and substituted about 15,000 generations later.

We left off with an obvious question: did the gene R4, whose appearance paved the way for adaptive change in R1, originate as a duplication of R1? Turns out that it is, which is pretty exciting but also a bit of a dead end. We can spin theories about why a redundant copy of R1 enabled it to evolve more freely, but I can’t see how we can test those theories with the tools we have so far, which pretty much consist of ways of looking at fitnesses. The analogy that strikes me is a novice watching a grandmaster chess game with a copy of the rules in his hand, confirming after each move that, yes, that knight moved legally when it jumped the pawn, and yes, that castle was allowed because the king hadn’t yet moved. At some level, changes happen in these populations because they increased fitness, as opposed to other possible changes that didn’t. We need to dig a layer deeper, uncovering what these changes do to understand why they interact.

To dig deeper, though, I’m going to start by simplifying. In the simulations I’ve been showing, fitness was calculated by looking at the value of a phenotypic trait over time; specifically, over the last five hours of the life of a simulated cell with a ten-hour lifespan. Anecdotally, I found that testing the phenotype over time produced more interesting results than simply evaluating the trait at a single point in time. What I didn’t count on, however, is what a mess it would be to understand how a mutation affects phenotype when that phenotype is both stochastically determined and dynamic over time. After a week of flailing around at it, I’ve decided to put a pin in this question and return to simpler simulations where the trait value at the end of the development is all that matters for fitness.

My first concern was how much cool evolutionary complexity am I giving up by simplifying the phenotype; but, it turns out that the answer is not much. The figure below shows allele frequencies and fitness improvements in one of five populations. While the simulation hasn’t run for even 30,000 generations yet, we still see many adaptive substitutions and complex, seemingly epistatic events, like the kerfluffle just before 20,000 generations.


[Note that I’ve managed, after serious effort, to get “Mean Fitness” to display on the y-axis; getting the label “Time” to properly show up on the x-axis still eludes me! I think the R users in the audience will sympathize.]

While the dynamics of fitness and allele frequency are still complex (in a good way), the underlying reasons for these dynamics are more transparent. Now that the phenotype of an individual is just a single value, I can take a genotype, develop thousands of clones, and look at the distribution of resulting phenotypes. Here’s a summary:


The top plot shows distance of the mean phenotype produced by a genotype from the optimum (which is 1000 units). Some beneficial mutations decrease this distance, but a few of them increase it; what’s going on there? The answer lies in the second plot, which shows how the standard deviation of the distribution of phenotypes shrinks with adaptation. Adaptation is taking a winding course, sometimes improving the average phenotype, sometimes narrowing the variance, sometimes improving one at the expense of the other.

Now that we have some sense of how changes are beneficial, we can start to understand why they interact as they do–but I’ll save that for next week.












Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s