calhoun.analysis.crf.features.supporting.phylogenetic
Class RootedBinaryPhylogeneticTree

java.lang.Object
  extended by calhoun.analysis.crf.features.supporting.phylogenetic.RootedBinaryPhylogeneticTree
All Implemented Interfaces:
java.io.Serializable

public class RootedBinaryPhylogeneticTree
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Field Summary
 java.util.ArrayList<BinaryTreeNode> T
           
 
Constructor Summary
RootedBinaryPhylogeneticTree(java.lang.String ss)
           
 
Method Summary
 PhylogeneticTreeFelsensteinOrder getFelsensteinOrder(java.lang.String[] msaOrder)
          Given an ordering of species in a multiple alignment file, determine an order for computations by which Felsenstein's algorithm can be performed, and the branch lengths involved at each step.
 int getNumSpecies()
           
 java.util.Set<java.lang.String> getSpeciesSet()
           
 double longest_branch_length()
           
 java.lang.String newick()
           
 int nSpecies()
           
 RootedBinaryPhylogeneticTree subtree(java.lang.String[] sn)
           
 void summarize_tree()
           
 double total_branch_length()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

T

public java.util.ArrayList<BinaryTreeNode> T
Constructor Detail

RootedBinaryPhylogeneticTree

public RootedBinaryPhylogeneticTree(java.lang.String ss)
Method Detail

newick

public java.lang.String newick()

summarize_tree

public void summarize_tree()

total_branch_length

public double total_branch_length()

longest_branch_length

public double longest_branch_length()

getNumSpecies

public int getNumSpecies()

getFelsensteinOrder

public PhylogeneticTreeFelsensteinOrder getFelsensteinOrder(java.lang.String[] msaOrder)
Given an ordering of species in a multiple alignment file, determine an order for computations by which Felsenstein's algorithm can be performed, and the branch lengths involved at each step. For example, for the phylogenetic tree

(((cnDT,cnDS),cnAB),(cnBB,cnBV)) and the MSA in the order (0=cnDT,1=cnDS,2=cnAB,3=cnBB,4=cnBV), can compute in this order:

5 = combine(0,1)

6 = combine(2,5)

7 = combine(3,4)

8 = combine(6,7)

and the final answer is at node 8.

The computation for nodes 5-8 can be represented by

ileft = new int[]{0,5,3,6};

iright = new int[]{1,2,4,7};

Parameters:
msaOrder - the (n) species presented in a multiple alignment, in order of their listing in the file
Returns:
an ordering in which the (n-1) recursive calculations for Felsenstein's algorithm can be performed.

subtree

public RootedBinaryPhylogeneticTree subtree(java.lang.String[] sn)

getSpeciesSet

public java.util.Set<java.lang.String> getSpeciesSet()

nSpecies

public int nSpecies()