The Virtual Lab Bench for Evolvability
I built a dedicated linux cluster that we call the Virtual Lab Bench for Evolvability, an in silico experimental platform for the study of evolvability. The cluster consists of 20 machines, each with 8 CPUs, 24GB of memory, and a 1TB disk. This makes a total of 160 CPUs, 480GB of memory, and 20TB of disk. The CPUs are the E5520 running at 2.26GHz. All of this fits into 12U of rack space and draws about 5000W when active. Thanks to NIH grant GM28016 for support for computer hardware, and thanks to Jochen Kumm for space in the machine room at the Stanford Genome Technology Center. In the photo, an evolved biped stands next to the computer cluster.
Evolution of Lattice ProteinsThe lattice protein model is a simplified model of protein folding, in which the amino acid residues of a protein sequence are constrained to points on a 2D or 3D lattice. Although the lattice protein model is much less physically realistic than modern, atomic-level protein folding models, it is also vastly less computationally expensive. It is so fast to evaluate that the evolution of populations of lattice proteins, over many generations, in multiple replicates, can be simulated on a modern computer cluster. Lattice proteins retain important properties of real proteins, i.e., 1) they have a linear primary structure that “folds” into a multi-dimensional tertiary structure, 2) individual mutations have the potential to make local or global changes to the tertiary structure. Thus we may evolve lattice proteins in silico with the expectation that some qualitative properties of their evolution may carry over to real proteins. In this project we have been measuring the k-fitness and k-survivability (see our paper Survivability is More Fundamental than Evolvability) of lattice proteins.
Evolution of Gene Networks
In this project, we modeled in silico populations of "gene networks." This model has previously been used to study evolvability and canalization. Gene networks model the expression dynamics of sets of genes that are up- and down-regulated by one another's gene products. The model permits complex epistasis and pleiotropy, hence fixation probabilities are not independent.
In the model (Wagner 1996, Siegal and Bergman 2002, Palmer and Feldman 2009), the phenotype of an individual is an M-dimensional vector representing the amounts of M gene products it produces. The heritable genotype of the individual is represented by an M x M matrix. Element (i, j) of the matrix represents the (positive, negative, or zero) regulatory action of gene product j upon the expression of gene i.
Below, we compare evolution toward integer-valued (left) or real-valued (right) targets. The ten large orange circles in each plot represent the ten-dimensional target vector. Overlaid on the orange circles are 1,000 smaller colored dots, indicating the ten-dimensional phenotype vectors of the 100 individuals in the population. The phenotype of one individual is plotted as ten dots, one in each column, all of the same color. This color represents the fitness of that individual: dark blue indicates low fitness, dark red indicates high fitness. It is not generally possible to distinguish the ten dots corresponding to a specific individual's phenotype vector; rather, the plots give an overall picture of the distribution in the population of the values of each phenotypic element, in comparison to the target.
Spatial Environmental Variation Can Select for Evolvability
In this project, we used a simple developmental model called the "angles and magnitudes model" (described in (Palmer and Feldman (2011) ) to demonstrate that spatial environmental variation can select for evolvability. Here, dark red circles indicate regions of parameter space producing higher evolvability: one gene must be varying fast enough (mu_m T > 1) and the other slow enough (2 mu_a T < 1) for the strongest effect.
The Red Queen's Race Can Select for Evolvability
In a second project using the "angles and magnitudes" model (described in (Palmer and Feldman (2011) ), we created two co-evolving species: one a predator, and one its prey. In the video below, predators (red) evolve to match prey (green) in phenotype space; this produces particular patterns in genotype space. Blue indicates successful predator attacks. This work demonstrated that such co-evolution can product indirect selection for "evolvability" (here, this is observed in the tendency for the v1 and v2 vectors of a species to be perpendicular in genotype space, which is plotted in polar coordinates). We described this work at the Evolution conference in 2010, but have not yet written it up as a journal paper: stay tuned!
Scalable Evolved Neural Networks for Robotic Control
Complex living things have a remarkably hierarchical organization, and these layers of hierarchy have accreted over very long time periods. How and why did some living things evolve to be very complex? Can we replicate this process in artificial evolution? What conditions might speed it up?
We hypothesize that 1) biology was capable of open-ended accretion of hierarchy, and 2) the complex natural world sometimes provides selective opportunities for increasingly complex organisms. We wish replicate both #1 and #2 in artificial evolution.
To address #1, we have developed a novel system to “grow” neural networks according to an inherited set of production rules (the genotype), inspired by Lindenmayer systems. In the first phase (neurogenesis), the neurons proliferate in three-dimensional space by cell division, and differentiate in function, according to the production rules. In the second phase (synaptogenesis), axons emerge from the neurons and seek out connection targets. The L-brain developmental process comprises neurogenesis (creation of neurons) followed by synaptogenesis (creation of synaptic connections):
To address #2, we use our evolved neural networks as controllers for physically simulated robot “spiders”. A physically simulated world provides an endless sequence of increasingly difficult control tasks. We may select the robots to run, follow a compass heading, hunt each other, solve tasks that require memory, etc. The brains of these “spiders” have been evolved for 2500 generations; they are able to “gallop” while following a compass heading:
The GECCO 2011 paper has several other associated videos.
The LBrain system is intended as a platform for the study of what conditions (e.g., spatially and temporally varying environments, co-evolution, etc.) will permit, and encourage, the evolution of complexity. The LBrain source code is now available!
Evolved Neural Network Controller for a Hardware Biped
In this project with some friends of mine from Anybots, we evolved some neural controllers against a software-simulated versional of a bipedal robot. In the simulation, we selected for ability to stand upright, with increasing lateral impulses (pushes). Evolution on the simulator produced a good controller that also worked on the hardware robot:
Evolution of Mutation Rate in Bacterial Simple Sequence Repeat (SSR) Loci
In an upcoming publication, we have simulated the evolution of short sequence repeat (SSR) loci. Certain commensal and pathogenic bacteria use such loci for stochastic switching of gene regulation; they permit evolutionary adjustment of the switching rate. The figure below shows the prevalence of 22 alternative alleles of "repeat lengths" from 17 to 38 during selection for the mutation rate produced by a length of 26. A length of 26 does indeed dominate in the long term in this case.
The Interactive Body Browser
The Interactive Body Browser (IBB) was a byproduct of my Ph.D. thesis work on parallel volume rendering. It's an old project, but people thought it was cool back in 1995! It lets the user "fly" through two human body datasets that I used to develop and demonstrate my volume rendering code. The male dataset was created by freezing a donated cadaver (an executed murderer, in fact), and shaving it down 1mm at a time, taking a color photograph of each slice. (The data is courtesy of the folks at the Visible Human Project.) The female subject died of a heart attack; this data is in 1/3mm slices. (Click below.)