Darwinian Evolution Can Follow Only Very Few Mutational Paths to Fitter Proteins

Weinreich et al. 2006

In this 2006 paper, Daniel Weinreich, Nigel Delaney, Mark DePristo, and Daniel Hartl describe how they were able to explicitly construct the genotype-phenotype map for a specific adaptation. The adaptation in question was resistance to a beta-lactam antibiotic called cefotaxime in E. coli. The researchers knew from previous studies that five mutations in a beta-lactamase gene (four missense mutations and one in a noncoding region) could increase the resistance of the wild type beta-lactamase gene by a factor of about 100,000. This was an interesting case because the researchers knew that these five mutations had occurred and together conferred improved resistance (which is assumed to correlate with fitness), but they didn't know what order the mutations happened in, or what the resistance of the intermediate steps were. To put it in the context of the adaptive landscape, had the changes been made along one smooth ridge? Or was it necessary to cross a fitness (antibiotic resistance) valley to reach the high fitness state? Were there many paths along ridges or only a few that didn't require crossing a valley? By constructing all 32 possible combinations of states, the researchers were able to explicitly answer these questions. Here, you can "walk around" this 5 dimensional space by clicking below to flip mutations back and forth. Read the paper here

State of 5 important mutations in a β-lactamase allele


Antibiotic Resistance
Fitness Rank

Explore the data!

You can click on the blocks above to "mutate" the β-lactamase gene and see the resulting changes in antibiotic resistance and fitness rank.

To the right, you can set options for a simulation in which mutations happen automatically and are kept or reversed based on simple rules, which you can alter using the options.

Click on any of the question mark blocks for more information about specific parts of the experiment, assumptions made, and general thoughts about causality in evolution.

The State of β-Lactamase

At the core of most of the antibiotics your doctor might give for an infection is a little structure of atoms called a β-lactam ring. When these antibiotics find the infection, they attack the bacterial cells, likely by preventing them from making new cell walls. But the bacteria fight back. They have enzymes called β-lactamases, which can run into the antibiotics and break apart that β-lactam ring, destroying the molecule. What results is an arms race between molecules - some β-lactamases are effective against some β-lactam antibiotics, but in other cases the antibiotics may have the upper hand. In this study, the researchers looked at a change in β-lactamase in E. coli that conferred a 100,000-fold increase in antibiotic resistance to a particular β-lactam, cefotaxime. This change, which has been observed in previous studies, consists of four amino acid changes in the β-lactamase enzyme (missense mutations) and one noncoding mutation in the DNA near the protein-coding region. By clicking the buttons above you can flip these five mutations back and forth, exploring a small part of the "sequence space" for the β-lactamase gene in E. coli.

The Experiment (Genotype -> Phenotype)

The researchers used "site-directed mutagenesis" in order to make versions of beta-lactamase with each of the 32 possible combinations of the 5 mutations. By making these changes directly, they could be sure that the differences in antibiotic resistance were due solely to these changes. These constructed proteins were tested for "minimum inhibitory concentration," the lowest cefotaxime concentration that blocked any visual signs of E. coli growth. The numbers you see above are the log base2 of the minimum inhibitory concentration, reflecting that the cefotaxime stocks were made by 2-fold dilution. What this data results in is a "combinatorically complete" mapping from the genotype (the state of the 5 mutations) and the phenotype (cefotaxime resistance). If you'd like to know more about the methods, check out the supplementary material found here

The Assumption (Phenotype -> Fitness)

The authors make an assumption that an increase in the measured antibiotic resistance will lead to an increase in fitness. Most would agree this is a fair assumption, but it is important to point out the logical steps and critically inspect them for flaws. For example, if the beta-lactamase gene had a second role in the bacterium other than antibiotic resistance, these mutations might cause conflicting fitness effects to those resulting directly from differences in antibiotic resistance. I like to call this a reach-around error, because it could be represented by an additional arrow coming from the state, at left, around the antibiotic box, and directly to fitness. In this case, the assumption seems to be well-supported by our knowledge of beta-lactamase and antibiotic resistance, coupled with the fact that this 5-mutation type has evolved several times in the lab. But if, for example, this were an experiment on an animal in which 5 mutations caused an increase in running speed, we might 1) question whether higher running speed actually leads to higher fitness, and 2) question whether the mutations affecting running speed affected other traits which affect fitness (reach-around error).

Another important note is that the relation between the phenotype and fitness will depend on the environment. In this case, the laboratory environment is one in which cefotaxime is always present and other antibiotics are not. This is not necessarily a realistic environment, and the authors note in the supplementary material that changes that increase resistance to cefotaxime can reduce resistance to other beta-lactam antibiotics. But since the conclusions of this study are about general dynamics in protein evolution, the fact that the environment is somewhat artificial is acceptable. In other words, while the specific results may be different if a different antibiotic was used, we would expect the general result - that interactions between mutations (epistasis) limits the number of "selectively accessible" paths to fitter proteins - to stay the same.

Simulating Change

This simulation runs a very simple algorithm. Here it is:

1) Randomly choose a trait to change
2) If the new state results in a higher fitness, keep the change
OR if the new state results in a fitness within the "nearly neutral" range and the box is checked, keep the change
3) If not, reject the change and revert to the old state (this still counts as a "step" on the graph)

This is clearly not an accurate representation of how biological evolution occurs, but it does capture some of the dynamics of how change can happen in systems with many interacting parts. So how accurate is this algorithm? What would be a proper way of simulating evolution or mathematically describing how a population or species changes over time? I'm working on a page going into these questions in more detail, thinking about population genetics and describing evolutionary change from the bottom-up or top-down. I will link to that here when I finish it.

Simulate Change

Accept (Nearly) Neutral Mutations?
Range to Consider Nearly Nuetral:


The simulation will stop automatically every 800 steps