next up previous
Next: Distributed Mathematical Computation Up: No Title Previous: Ecological modeling

Subsections

Evolution Modeling in a Java Development Environment

Michael Liedtke

Purpose

To test DNA mutation, replication, and environmental interaction to search for the mechanisms of speciation.

Scientific Inquiry

Is speciation driven by mutation? Is the diversity of life on Earth due to changes in genetic code? To what degree does the environment select genetic code? What effect does isolation have on natural selection? Why do some places with similar climates have widely divergent numbers of species? I am looking to gain a better understanding of how Earth came to have such a great bio-diversity by creating my own environment of artificial life and watching it grow and possibly evolve.

Programming Element

The research into the scientific questions raised in this proposal will be performed in a Java development environment. I plan on developing a base set of strings of genetic code which will be given guidelines to mutate. Theses rules of mutation will be derived from reality - the actual methods of mutation that scientists have observed in the laboratory. From this point, the strings of genetic code, DNA, will begin to replicate and mutate. They will be interacting with an environment - which will be set at levels ranging from static to highly dynamic - and evolving into new strings of DNA. All the mutation, replication, interaction, and results will be programming in and derived from the Java.

A graphic interface could be a didactic tool. Users could adjust the variables to see how the interactions of organisms propagate over lifecycles, and possibly watch evolution in action. However, this is a secondary consideration to the research, and will only be developed if the results of the experiments warrant it.

Goals

To learn more about evolutionary theory and seek possible concrete explanations for the diversity of life. To practice programming - working on a semester long project alone will help me improve my programming skills. The inherent interest in the project will motivate me to program and to discover new areas of programming.

If we can find mathematical relationships between the number of environmental factors and the number of species, we may be able to establish a method for cataloguing a species rich environment. For example, there are organizations which go into endangered land and do species counts. If a certain number is met, they declare it a global treasure and can often influence governments to help establish preserves. This is mere speculation, but it posits that we could arrive at better estimates of the number of species in a given area or the world, and help raise awareness to the apparent accelerated loss of species world-wide. Current estimates range over 100 million species; only 1.75 million species have been catalogued.

Specifics of Project

To commence the programming, I will create my genetic material, my genes. These will be represented by strings of the characters C, G, A, and T, the nucleotides bases of DNA. The specific sequences will be selectly randomly. These will replicate and mutate according to specifications gleaned from nature.

For the environment, I will create similar sequences. For the unchanging environment, these will be defined arbitrarily. For the randonly flucuating environment, they will change randomly. And for the interacting environment, they will be based on the current conditions of the actual genes. It may seem at first as if the genes and environment are virtually identical. However, the genes will be mutating as genes do, and the environment will not be mutating. It will be modelled after the actual behavior of actual environments as closely as possible. As for the interaction, this will be established by aligning the environmental sequences with the genes. If there is a match of environmental code found within a gene, then the property of that environmental condition will be applied to the genes which contain that sequence. Experiments will be run with the environment in the different states listed above, and comparisons will be made between the different tests run in the different environments.

These experiments will hopefully yield results which tell us something interesting about evolution, especially speciation. An example of an interesting result would be if we found clustering of genes into groups. Measuring speciation will be difficult. First, I must define what speciation means. My current guess is that I will look for groupings of similar sequences. If clustering is a result, and that clustering continues more and more - especially as the environment flucuates more - then we will have observed something which is analogous to speciation. Controlling the experiment too much is a big problem, so I will try to find the appropriate amount of randomness (usually more than one would guess at first glance). By confining my influence to local parameters, and if we get global patterns out of these local interactions, then we may have stumbled upon something really fascinating.

Calendar

I did a lot of preliminary research into evolution during January and February and I'm now planning out what I am going to program and how I will program this. The next week or two will consist of the final planning stages before the programming actually begins.

February:
Finalize plans, begin programming. Set up environment of DNA strings.

March:
Design mutation, replication, and interaction algorithms. Create environment that DNA lives in and the environmental factors. Then start the cycle of life. Let the DNA replicate over many generations. Let them mutate.

April:
Bring everything together. Run the actual experiments and record data. Design output to print to graphs. Come up with data. Write reports.

May:
Finish report. Make poster. Go mountain biking.


next up previous
Next: Distributed Mathematical Computation Up: No Title Previous: Ecological modeling
Allen B. Downey
1999-03-04