pal.tree
Class RootedTreeUtils

java.lang.Object
  extended by pal.tree.RootedTreeUtils

public class RootedTreeUtils
extends java.lang.Object

This class contains utility methods. These include:
1. gathering information about subtrees from a set of trees
2. comparing subtrees and clades.
All these methods assume rooted trees!

Version:
$Id: RootedTreeUtils.java,v 1.3 2003/06/11 05:26:46 matt Exp $
Author:
Alexei Drummond

Constructor Summary
RootedTreeUtils()
           
 
Method Summary
static int cladeCount(Node subtree, java.util.Vector trees)
           
static void collectProportions(Tree tree, java.util.Vector trees)
           
static int collectTaxa(Node root, java.util.Hashtable table)
          Collects all of the names of the taxa in the tree into a hashtable.
static boolean containsClade(Node root, Node clade)
           
static boolean containsNovelTaxa(Node root, java.util.Hashtable taxa)
           
static boolean containsSubtree(Node root, Node node)
           
static boolean equal(Node node1, Node node2)
           
static Node getClade(Node root, Node clade)
           
static double getMeanCladeHeight(Node clade, java.util.Vector trees)
           
static double getMeanSubtreeHeight(Node subtree, java.util.Vector trees)
           
static Node getSubtree(Node root, Node node)
           
static boolean sameTaxa(Node node1, Node node2)
           
static int subtreeCount(Node subtree, java.util.Vector trees)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RootedTreeUtils

public RootedTreeUtils()
Method Detail

containsSubtree

public static boolean containsSubtree(Node root,
                                      Node node)
Parameters:
root - the root of the tree in which search for a subtree
node - the subtree to search for.
Returns:
true if the first node contains a subtree identical to the second node or is identical to the second node.

containsClade

public static boolean containsClade(Node root,
                                    Node clade)
Parameters:
root - the root of the tree in which search for a subtree
taxa - the hashtable of taxa.
Returns:
true if the given tree contains a clade holding all the taxa in the given subtree.

getSubtree

public static Node getSubtree(Node root,
                              Node node)
Returns:
a subtree within the first node with the same labelled topology as the second node or null if it doesn't exist.

getClade

public static Node getClade(Node root,
                            Node clade)
Returns:
a subtree within the first node with the same labels as the second node or null if it doesn't exist.

equal

public static boolean equal(Node node1,
                            Node node2)
Returns:
true if the trees have the same tip-labelled structure. Child order is not important.

sameTaxa

public static boolean sameTaxa(Node node1,
                               Node node2)
Returns:
true if the trees have the same tip labels. topology unimportant.

collectTaxa

public static int collectTaxa(Node root,
                              java.util.Hashtable table)
Collects all of the names of the taxa in the tree into a hashtable.

Parameters:
root - the root node of the tree.
taxa - a hashtable to hold the taxa names, may already hold some taxa names.
Returns:
the number of new taxa added to the hashtable from this tree.

containsNovelTaxa

public static boolean containsNovelTaxa(Node root,
                                        java.util.Hashtable taxa)
Parameters:
root - the root node of the tree.
taxa - a hashtable holding taxa names.
Returns:
true if the given tree contains taxa not already in the given hashtable.

subtreeCount

public static int subtreeCount(Node subtree,
                               java.util.Vector trees)
Parameters:
subtree - the subtree being searched for.
trees - a vector of trees to search for the subtree in.
Returns:
the number of times the subtree was found in the given list of trees. If a subtree occurs more than once in a tree (for some bizarre reason) it is counted only once.

getMeanSubtreeHeight

public static double getMeanSubtreeHeight(Node subtree,
                                          java.util.Vector trees)
Parameters:
subtree - the subtree being searched for.
trees - a vector of trees to search for the subtree in.
Returns:
the mean height of the given subtree in the given list of trees. If a subtree occurs more than once in a tree (for some bizarre reason) results are undefined.

getMeanCladeHeight

public static double getMeanCladeHeight(Node clade,
                                        java.util.Vector trees)
Parameters:
clade - a node containing the clade being searched for.
trees - a vector of trees to search for the clade in.
Returns:
the mean height of the given clade in the given list of trees. If a clade occurs more than once in a tree (for some bizarre reason) results are undefined.

cladeCount

public static int cladeCount(Node subtree,
                             java.util.Vector trees)
Parameters:
subtree - a subtree containing the taxaset being searched for.
trees - a vector of trees to search for the clade in.
Returns:
the number of times the clade was found in the given list of trees. If a clade occurs more than once in a tree (for some bizarre reason) it is counted only once.

collectProportions

public static void collectProportions(Tree tree,
                                      java.util.Vector trees)