About the Phylap Applet



January, 1996.

The Phylap applet is used to demonstrate phylogenetic trees and their reconstruction. See the cover page and the pages referenced from it for its use.

The applet is written in Java. It can be viewed using Netscape 2.0. or later.

Phylap extends the Applet class. The following parameters may be passed to it.

Depending the the value of the layout parameter, various panels are inserted into the applet component. Some of these are control panels that can change some of the parameters or call for a new phylogenetic tree or request mutations. The panels are color coded. The actual phylogenetic tree and its controls are painted in one color, the distance matrix and the mutation controls are in another color, and the reconstructed phylogenetic tree and its controls are in a third color.

The phylogenetic trees are actually Phyltree objects, extensions of the Component class.

Source codes:

Plylap is the phylogeny applet. It forms the interface with the user. It reads the parameters from the html page and creates the window with various buttons, etc.

As far as the model goes, Phylap creates a random actual tree first with the instructions

Then it creates a distance matrix which depends on modelled mutations with the instruction Finally it uses the distance matrix to reconstruct a tree with the instructions In order to perform these three steps, first the random method of the Phyltree class is used to create a random tree. Then the mutationMatrix method of the Phyltree class is used to randomly create mutations along the tree. Finally the construct method of the Phyltree class is used to reconstuct a tree from the distance matrix.

About the random creation of a tree. A tree is to be randomly created with n leaves (current species). There are many possible algorithms for such a construction. Here, a fairly random-looking tree is needed. The algorithm is not based on any actual data or theory of species evolution. The tree is created as follows. First, there are n unrelated species. Usually, two are selected at random to have a common ancestor, but 1/10 of the time, three are selected (and 1/100 of the time four, etc.). An ancestral species (node) is created for these species, and it is placed back in time (0.2+Math.random()+maxHeight) time units. That is, 2/10 plus a random number between 0 and 1 plus the most ancient time of the species being merged. This process is repeated until all the species have a common ancestor.


to the summary. to the cover page. to web references.


David E. Joyce
Department of Mathematics and Computer Science
Clark University
Worcester, MA 01610

Email: djoyce@clarku.edu
My Homepage.