public final class SimpleRootedTree extends java.lang.Object implements RootedTree
Graph.NoEdgeException, Graph.Utils| Constructor and Description |
|---|
SimpleRootedTree() |
SimpleRootedTree(RootedTree tree)
Make a copy of the given rooted tree
|
SimpleRootedTree(RootedTree tree,
java.util.Map<Node,Node> nodeMapping)
Make a copy of the given rooted tree
|
SimpleRootedTree(Tree tree,
Node ingroupNode,
Node outgroupNode,
double ingroupBranchLength)
Make a copy of the given unrooted tree
|
| Modifier and Type | Method and Description |
|---|---|
Node |
addNode(Edge edge)
Adds a new node at the midpoint of the given edge
|
Node |
addNode(Node node)
Adds a new node at the midpoint of the edge connecting the given node to its parent.
|
boolean |
conceptuallyUnrooted()
Due to current implementation limitations, trees store "branch" information in nodes.
|
Node |
createExternalNode(Taxon taxon)
Creates a new external node with the given taxon.
|
jebl.evolution.trees.SimpleRootedTree.SimpleRootedNode |
createInternalNode(java.util.List<? extends Node> children)
Once a SimpleRootedTree has been created, the node stucture can be created by
calling createExternalNode and createInternalNode.
|
Node |
createNodes(RootedTree tree,
Node node)
Clones the entire tree structure from the given RootedTree.
|
Node |
createNodes(Tree tree,
Node parent,
Node child)
Clones the entire tree structure from the given (unrooted) Tree.
|
void |
deleteInternalNode(Node node)
Removes an internal node in this tree.
|
java.util.List<Node> |
getAdjacencies(Node node)
Returns a list of nodes connected to this node by an edge
|
java.lang.Object |
getAttribute(java.lang.String name) |
java.util.Map<java.lang.String,java.lang.Object> |
getAttributeMap()
Gets the entire attribute map.
|
java.util.Set<java.lang.String> |
getAttributeNames() |
java.util.List<Node> |
getChildren(Node node) |
Edge |
getEdge(Node node1,
Node node2)
Returns the Edge that connects these two nodes
|
double |
getEdgeLength(Node node1,
Node node2)
Returns the length of the edge that connects these two nodes
|
java.util.Set<Edge> |
getEdges() |
java.util.List<Edge> |
getEdges(Node node)
Returns a list of edges connected to this node
|
java.util.Set<Edge> |
getExternalEdges()
The set of external edges.
|
java.util.Set<Node> |
getExternalNodes() |
double |
getHeight(Node node) |
java.util.Set<Edge> |
getInternalEdges()
The set of internal edges.
|
java.util.Set<Node> |
getInternalNodes() |
double |
getLength(Node node) |
Node |
getNode(Taxon taxon) |
java.util.Set<Node> |
getNodes() |
Node[] |
getNodes(Edge edge)
Returns an array of 2 nodes which are the nodes at either end of the edge.
|
java.util.Set<Node> |
getNodes(int degree) |
Node |
getParent(Node node) |
Edge |
getParentEdge(Node node) |
Node |
getRootNode()
The root of the tree has the largest node height of
all nodes in the tree.
|
java.util.Set<Taxon> |
getTaxa() |
Taxon |
getTaxon(Node node) |
boolean |
hasHeights() |
boolean |
hasLengths() |
boolean |
isExternal(Node node) |
boolean |
isRoot(Node node) |
void |
removeAttribute(java.lang.String name) |
void |
renameTaxa(Taxon from,
Taxon to) |
void |
setAttribute(java.lang.String name,
java.lang.Object value)
Sets an named attribute for this object.
|
void |
setConceptuallyUnrooted(boolean intent) |
void |
setHeight(Node node,
double height) |
void |
setLength(Node node,
double length) |
void |
swapNodes(Node n,
int i0,
int i1) |
public SimpleRootedTree()
public SimpleRootedTree(RootedTree tree)
tree - a rooted treepublic SimpleRootedTree(RootedTree tree, java.util.Map<Node,Node> nodeMapping)
tree - a rooted treenodeMapping - store {source tree node -> new tree node} mapping in here if non-nullpublic SimpleRootedTree(Tree tree, Node ingroupNode, Node outgroupNode, double ingroupBranchLength) throws Graph.NoEdgeException
tree - an unrooted treeingroupNode - the node on one side of the rootoutgroupNode - the node on the other side of the rootingroupBranchLength - the branch length from the root to the ingroup nodeGraph.NoEdgeExceptionpublic Node createNodes(RootedTree tree, Node node)
tree - node - public Node createNodes(Tree tree, Node parent, Node child) throws Graph.NoEdgeException
tree - the unrooted treeparent - the parent nodechild - the child nodeGraph.NoEdgeExceptionpublic Node createExternalNode(Taxon taxon)
taxon - the taxon associated with this nodepublic jebl.evolution.trees.SimpleRootedTree.SimpleRootedNode createInternalNode(java.util.List<? extends Node> children)
children - the child nodes of this nodespublic void deleteInternalNode(Node node)
node - the node to remove.public Node addNode(Node node)
node - must be a node in the tree, which has a parentpublic Node addNode(Edge edge)
edge - public void swapNodes(Node n, int i0, int i1)
public void setHeight(Node node, double height)
node - the node whose height is being setheight - the heightpublic void setLength(Node node, double length)
node - the node whose branch length (to its parent) is being setlength - the lengthpublic java.util.List<Node> getChildren(Node node)
getChildren in interface RootedTreenode - the node whose children are being requested.public boolean hasHeights()
hasHeights in interface RootedTreepublic double getHeight(Node node)
getHeight in interface RootedTreenode - the node whose height is being requested.public boolean hasLengths()
hasLengths in interface RootedTreepublic double getLength(Node node)
getLength in interface RootedTreenode - the node whose branch length (to its parent) is being requested.public Node getParent(Node node)
getParent in interface RootedTreenode - the node whose parent is requestedpublic Node getRootNode()
getRootNode in interface RootedTreepublic java.util.Set<Node> getExternalNodes()
getExternalNodes in interface Treepublic java.util.Set<Node> getInternalNodes()
getInternalNodes in interface Treepublic java.util.Set<Taxon> getTaxa()
public boolean isExternal(Node node)
isExternal in interface Treenode - the nodepublic void renameTaxa(Taxon from, Taxon to)
renameTaxa in interface Treepublic java.util.List<Edge> getEdges(Node node)
public java.util.List<Node> getAdjacencies(Node node)
GraphgetAdjacencies in interface Graphnode - public Edge getEdge(Node node1, Node node2) throws Graph.NoEdgeException
getEdge in interface Graphnode1 - node2 - Graph.NoEdgeException - if the nodes are not directly connected by an edge.public double getEdgeLength(Node node1, Node node2) throws Graph.NoEdgeException
GraphgetEdgeLength in interface Graphnode1 - node2 - Graph.NoEdgeException - if the nodes are not directly connected by an edge.public Node[] getNodes(Edge edge)
public java.util.Set<Node> getNodes()
public java.util.Set<Edge> getEdges()
public java.util.Set<Edge> getExternalEdges()
getExternalEdges in interface Treepublic java.util.Set<Edge> getInternalEdges()
getInternalEdges in interface Treepublic java.util.Set<Node> getNodes(int degree)
public void setConceptuallyUnrooted(boolean intent)
public boolean conceptuallyUnrooted()
RootedTreeconceptuallyUnrooted in interface RootedTreepublic boolean isRoot(Node node)
isRoot in interface RootedTreenode - the nodepublic void setAttribute(java.lang.String name,
java.lang.Object value)
AttributablesetAttribute in interface Attributablename - the name of the attribute.value - the new value of the attribute.public java.lang.Object getAttribute(java.lang.String name)
getAttribute in interface Attributablename - the name of the attribute of interest, or null if the attribute doesn't exist.public void removeAttribute(java.lang.String name)
removeAttribute in interface Attributablename - name of attribute to removepublic java.util.Set<java.lang.String> getAttributeNames()
getAttributeNames in interface Attributablepublic java.util.Map<java.lang.String,java.lang.Object> getAttributeMap()
AttributablegetAttributeMap in interface Attributablehttp://code.google.com/p/jebl2/