Simulating Evolution I – Introduction

I’ve been studying evolution for over ten years, and I find myself more amazed now by adaptation than I was to begin with. I think that when we focus on any familiar subject, our sense of mystery deepens as we start to see past that numbing familiarity. But adaptation poses specifics barriers to our comprehension: the unbelievable scale of geological time, the baroque complexities of life-histories, reproductive systems, and environmental niches present in every kingdom, and the tangled relationship between evolutionary processes and the traces they leave in DNA.

One area has been particularly obscured–why is adaptation so successful at sequentially modifying organisms to fit their environments? The evidence that it is successful is so overwhelmingly obvious and plentiful that this why question has been largely overlooked [1].

But when people began to use evolution to make machines better–specifically, computer programs–we gained a new perspective on the question: under what circumstances will evolution by natural selection produce adaptation? In recent decades, this question has expanded to touch just about every vigorously debated topic in evolution and ecology: invasive species, emerging viral pathogens, antibiotic and insecticide resistance, speciation, and response to climate change, to name a few.

Evolution can be blazingly fast, particularly as a response to the equally rapid changes humans are causing to our shared environments. But can we say more than that; can we predict how fast, predict when evolution will save an endangered species or produce an untreatable pathogen, and when it will fail?

I’ve been modeling these kinds of questions for a while, and I’m starting this blog because I’ve built a model [2] that is showing me cool patterns faster than I can understand them. I’ll gradually introduce what this model is as we go along, but let me end this introductory post with two questions that are going to keep us busy a long time. Here’s a plot of the mean fitnesses in each of ten simulated populations [3] adapting to a new environment.


These populations are big enough that every jump in those lines pretty strongly implies that a beneficial mutation has arisen and fixed. Adaptation in these populations looks to be mutation-limited: there’s long pauses in the fitness trajectories in between the discoveries of adaptive mutations. But what sets the tempo of those pauses, and what accounts for the startling differences in the number of substitutions, ranging from as few as 2-3 to at least ten? What could we measure at generation 1000 that might predict the fitness at generation 50,000?

Because this is all in the computer, I can do just about any experiment in these populations that I can imagine. Sounds great, except that means I’m limited by my imagination, as I suspect is frequently the case in science. Let’s see how far we can get.

1. Of course, not completely overlooked, and my work wouldn’t be possible without the efforts of many colleagues. This blog is going to focus on my own research process, but I’ll still try to give credit to influences as we go along.

2. In collaboration with Michael Whitlock at UBC; I’m using “I” because constant “we”‘s are annoying to read, but Mike has contributed greatly throughout this project.

3. More details to come, but for now: asexual haploid with six starting genes, producing phenotypes through stochastic simulation of a transcription factor network. Populations are 10,000 individuals; mutation rates are complicated enough to warrant a whole post, but are a a bit bigger than our best estimates for yeast. Other values are loosely parametrized based on yeast transcription factors.


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