pal.tree
Class SimpleTree

java.lang.Object
  extended by pal.tree.SimpleTree
All Implemented Interfaces:
java.io.Serializable, IdGroup, Report, Units, UnitsProvider, Tree
Direct Known Subclasses:
ClusterTree, NeighborJoiningTree, ReadTree, UPGMATree

public class SimpleTree
extends java.lang.Object
implements Tree, Report, Units, java.io.Serializable

data structure for a binary/non-binary rooted/unrooted trees

Version:
$Id: SimpleTree.java,v 1.23 2002/12/05 04:27:28 matt Exp $
Author:
Alexei Drummond, Korbinian Strimmer
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface pal.tree.Tree
Tree.TreeBase
 
Nested classes/interfaces inherited from interface pal.misc.IdGroup
IdGroup.Utils
 
Field Summary
 
Fields inherited from interface pal.misc.Units
DAYS, EXPECTED_SUBSTITUTIONS, GENERATIONS, MONTHS, SAMPLE, SHORT_UNIT_NAMES, UNIT_NAMES, UNKNOWN, YEARS
 
Constructor Summary
SimpleTree()
          constructor tree consisting solely of root node
SimpleTree(Node r)
          constructor taking a root node
SimpleTree(Tree tree)
          clone constructor
SimpleTree(Tree tree, boolean keepIdentifiers)
          clone constructor
SimpleTree(Tree tree, LabelMapping lm)
          clone constructor
 
Method Summary
 void createNodeList()
          count and list external and internal nodes and compute heights of each node
 Node findNode(int num)
          return node with number num (as displayed in ASCII tree)
 java.lang.Object getAttribute(Node node, java.lang.String name)
           
 Tree getCopy()
           
 Node getExternalNode(int i)
          Returns the ith external node.
 int getExternalNodeCount()
          Returns the number of external nodes.
 int getIdCount()
          Returns the number of identifiers in this group
 Identifier getIdentifier(int i)
          Returns the ith identifier.
 Node getInternalNode(int i)
          Returns the ith internal node.
 int getInternalNodeCount()
          Returns the number of internal nodes.
 Node getRoot()
          Returns the root node of this tree.
 int getUnits()
          Return the units that this tree is expressed in.
 void report(java.io.PrintWriter out)
          print human readable report (e.g., on parameters and associated model)
 void reroot(int num)
          make node with number num to root node
 void reroot(Node node)
          make provided node the root node
 void setAttribute(Node node, java.lang.String name, java.lang.Object value)
          Sets an named attribute for a given node.
 void setIdentifier(int i, Identifier id)
          Sets the ith identifier.
 void setRoot(Node r)
          Set a new node as root node.
 void setUnits(int units)
          Sets the units that this tree is expressed in.
 java.lang.String toString()
           
 int whichIdNumber(java.lang.String s)
          returns the index of the identifier with the given name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimpleTree

public SimpleTree()
constructor tree consisting solely of root node


SimpleTree

public SimpleTree(Node r)
constructor taking a root node


SimpleTree

public SimpleTree(Tree tree)
clone constructor


SimpleTree

public SimpleTree(Tree tree,
                  boolean keepIdentifiers)
clone constructor


SimpleTree

public SimpleTree(Tree tree,
                  LabelMapping lm)
clone constructor

Parameters:
lm - - a label mapping use for translating the original label names into something else
Method Detail

getUnits

public final int getUnits()
Return the units that this tree is expressed in.

Specified by:
getUnits in interface UnitsProvider
Specified by:
getUnits in interface Tree
Returns:
the units relating to this object.

setUnits

public final void setUnits(int units)
Sets the units that this tree is expressed in.


getExternalNodeCount

public final int getExternalNodeCount()
Returns the number of external nodes.

Specified by:
getExternalNodeCount in interface Tree
Returns:
a count of the number of external nodes (tips) in this tree.

getExternalNode

public final Node getExternalNode(int i)
Returns the ith external node.

Specified by:
getExternalNode in interface Tree
Returns:
the ith external node in the tree.

getInternalNodeCount

public final int getInternalNodeCount()
Returns the number of internal nodes.

Specified by:
getInternalNodeCount in interface Tree
Returns:
a count of the number of internal nodes (and hence clades) in this tree.

getInternalNode

public final Node getInternalNode(int i)
Returns the ith internal node.

Specified by:
getInternalNode in interface Tree
Returns:
the ith internal node in the tree.

getRoot

public final Node getRoot()
Returns the root node of this tree.

Specified by:
getRoot in interface Tree
Returns:
the root node of this tree.

setRoot

public final void setRoot(Node r)
Set a new node as root node.

Specified by:
setRoot in interface Tree
Parameters:
r - the root node of the tree to construct.

createNodeList

public void createNodeList()
count and list external and internal nodes and compute heights of each node

Specified by:
createNodeList in interface Tree

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

findNode

public Node findNode(int num)
return node with number num (as displayed in ASCII tree)

Parameters:
num - number of node
Returns:
node

setAttribute

public void setAttribute(Node node,
                         java.lang.String name,
                         java.lang.Object value)
Sets an named attribute for a given node.

Specified by:
setAttribute in interface Tree
Parameters:
node - the node whose attribute is being set.
name - the name of the attribute.
value - the new value of the attribute.

getIdCount

public int getIdCount()
Description copied from interface: IdGroup
Returns the number of identifiers in this group

Specified by:
getIdCount in interface IdGroup

getIdentifier

public Identifier getIdentifier(int i)
Description copied from interface: IdGroup
Returns the ith identifier.

Specified by:
getIdentifier in interface IdGroup

setIdentifier

public void setIdentifier(int i,
                          Identifier id)
Description copied from interface: IdGroup
Sets the ith identifier.

Specified by:
setIdentifier in interface IdGroup

whichIdNumber

public int whichIdNumber(java.lang.String s)
Description copied from interface: IdGroup
returns the index of the identifier with the given name.

Specified by:
whichIdNumber in interface IdGroup

getAttribute

public java.lang.Object getAttribute(Node node,
                                     java.lang.String name)
Specified by:
getAttribute in interface Tree
Parameters:
node - the node being interrogated.
name - the name of the attribute of interest.
Returns:
an object representing the named attributed for the numbered node.

reroot

public void reroot(int num)
make node with number num to root node

Parameters:
num - number of node

reroot

public void reroot(Node node)
make provided node the root node

Parameters:
node - the node to make the root.

report

public void report(java.io.PrintWriter out)
Description copied from interface: Report
print human readable report (e.g., on parameters and associated model)

Specified by:
report in interface Report
Parameters:
out - output stream

getCopy

public Tree getCopy()
Specified by:
getCopy in interface Tree
Returns:
a clone of this tree