phylonet.mct
Class GaneshkumarWarnowMCT

java.lang.Object
  extended by phylonet.mct.GaneshkumarWarnowMCT

public class GaneshkumarWarnowMCT
extends java.lang.Object

This class implements the maximum compatible tree construction algorithm published by Ganeshkumar G. and T. Warnow in their paper entitled "Finding a Maximum Compatible Tree for a Bounded Number of Trees with Bounded Degree is Solvable in Polynomial Time". The rooted version of the algorithm has time complexity: O(22kdnk). The unrooted version has time complexity: O(22kdnk+1). TODO: Add support for building the Maximum Compatible **TREE**

Author:
Derek Ruths

Field Summary
static BitVector EMPTY_BV
           
 
Constructor Summary
GaneshkumarWarnowMCT()
           
 
Method Summary
 java.util.Set<java.lang.String> computeRootedMCLS(Tree t1, Tree t2)
          This method computes the maximum compatible leaf set (MCLS) of the two trees for their current root.
 Tree computeRootedMCT(Tree t1, Tree t2)
          This method computes the rooted Maximum Compatibility Tree for two trees at their current roots.
 java.util.Set<java.lang.String> computeUnrootedMCLS(Tree t1, Tree t2)
          This method computes the maximum compatible leaf set (MCLS) of the two trees in the unrooted case.
 Tree computeUnrootedMCT(Tree t1, Tree t2)
          This method computes the maximum compatible tree (MCT) for the two trees for any possible rooting.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_BV

public static final BitVector EMPTY_BV
Constructor Detail

GaneshkumarWarnowMCT

public GaneshkumarWarnowMCT()
Method Detail

computeRootedMCT

public Tree computeRootedMCT(Tree t1,
                             Tree t2)
This method computes the rooted Maximum Compatibility Tree for two trees at their current roots.


computeUnrootedMCT

public Tree computeUnrootedMCT(Tree t1,
                               Tree t2)
This method computes the maximum compatible tree (MCT) for the two trees for any possible rooting.


computeRootedMCLS

public java.util.Set<java.lang.String> computeRootedMCLS(Tree t1,
                                                         Tree t2)
This method computes the maximum compatible leaf set (MCLS) of the two trees for their current root.


computeUnrootedMCLS

public java.util.Set<java.lang.String> computeUnrootedMCLS(Tree t1,
                                                           Tree t2)
This method computes the maximum compatible leaf set (MCLS) of the two trees in the unrooted case.