Package org.forester.phylogeny
Class PhylogenyNode
- java.lang.Object
-
- org.forester.phylogeny.PhylogenyNode
-
- All Implemented Interfaces:
java.lang.Comparable<PhylogenyNode>
public final class PhylogenyNode extends java.lang.Object implements java.lang.Comparable<PhylogenyNode>
Warning. Implementation of method 'compareTo' only looks at node name. Thus, use of this class in SortedSets might lead to unexpected behavior.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPhylogenyNode.NH_CONVERSION_SUPPORT_VALUE_STYLE
-
Constructor Summary
Constructors Constructor Description PhylogenyNode()Default constructor for PhylogenyNode.PhylogenyNode(java.lang.String node_name)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAsChild(PhylogenyNode node)Adds PhylogenyNode n to the list of child nodes and sets the _parent of n to this.intcalculateDepth()doublecalculateDistanceToRoot()intcompareTo(PhylogenyNode o)PhylogenyNodecopyNodeData()Returns a new PhylogenyNode which has its data copied from this PhylogenyNode.PhylogenyNodecopyNodeDataShallow()Returns a new PhylogenyNode which has the same data as this PhylogenyNode.static PhylogenyNodecreateInstanceFromNhxString(java.lang.String nhx)static PhylogenyNodecreateInstanceFromNhxString(java.lang.String nhx, NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction)static PhylogenyNodecreateInstanceFromNhxString(java.lang.String nhx, NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction, boolean replace_underscores)booleanequals(java.lang.Object o)java.util.List<PhylogenyNode>getAllDescendants()java.util.List<PhylogenyNode>getAllExternalDescendants()Returns a List containing references to all external children of this PhylogenyNode.java.util.List<java.lang.String>getAllExternalDescendantsNames()Returns a List containing references to all names of the external children of this PhylogenyNode.BranchDatagetBranchData()PhylogenyNodegetChildNode(int i)This return child node n of this node.PhylogenyNodegetChildNode1()Convenience method.PhylogenyNodegetChildNode2()Convenience method.intgetChildNodeIndex()This gets the child node index of this node.intgetChildNodeIndex(PhylogenyNode parent)This gets the child node index of this node, given that parent is its parentjava.util.List<PhylogenyNode>getDescendants()doublegetDistanceToParent()Returns the length of the branch leading to the _parent of this PhylogenyNode (double).PhylogenyNodegetFirstChildNode()Convenience method.longgetId()Returns the ID (int) of this PhylogenyNode.bytegetIndicator()Returns the _indicator value of this PhylogenyNode.PhylogenyNodegetLastChildNode()Convenience method.PhylogenyNodegetLink()Returns a refernce to the linked PhylogenyNode of this PhylogenyNode.java.lang.StringgetName()PhylogenyNodegetNextExternalNode()Returns a refernce to the next external PhylogenyNode of this PhylogenyNode.PhylogenyNodegetNextExternalNodeWhileTakingIntoAccountCollapsedNodes()static longgetNodeCount()Returns the total number of all Nodes created so far.NodeDatagetNodeData()intgetNumberOfDescendants()intgetNumberOfExternalNodes()Returns the total number of external Nodes originating from this PhylogenyNode (int).intgetNumberOfParents()PhylogenyNodegetParent()Returns a refernce to the parent PhylogenyNode of this PhylogenyNode.PhylogenyNodegetPreviousExternalNode()Returns a refernce to the next external PhylogenyNode of this PhylogenyNode.floatgetXcoord()Used for drawing of Trees.floatgetXSecondary()floatgetYcoord()Used for drawing of Trees.floatgetYSecondary()inthashCode()booleanisCollapse()Returns whether this PhylogenyNode should be drawn as collapsed.booleanisDuplication()Returns true if this PhylogenyNode represents a _duplication event, false otherwise.booleanisEmpty()booleanisExternal()Checks whether this PhylogenyNode is external (tip).booleanisFirstChildNode()booleanisFirstExternalNode()booleanisHasAssignedEvent()Returns whether a _duplication or speciation event has been assigned for this PhylogenyNode.booleanisInternal()Checks whether this PhylogenyNode is internal (tip).booleanisLastChildNode()Returns true if this node is the last child node of its _parent.booleanisLastExternalNode()booleanisRoot()Checks whether this PhylogenyNode is a root.booleanisSpeciation()voidpreorderPrint()Prints to the console the subtree originating from this PhylogenyNode in preorder.voidremoveChildNode(int i)voidremoveChildNode(PhylogenyNode remove_me)voidremoveConnections()voidsetBranchData(BranchData branch_data)voidsetChild1(PhylogenyNode n)Sets the first child PhylogenyNode of this PhylogenyNode to n.voidsetChild2(PhylogenyNode n)Sets the second child PhylogenyNode of this PhylogenyNode to n.voidsetChildNode(int i, PhylogenyNode node)Inserts PhylogenyNode n at the specified position i into the list of child nodes.voidsetCollapse(boolean b)Sets whether this PhylogenyNode should be drawn as collapsed.voidsetDistanceToParent(double d)Sets the length of the branch leading to the _parent of this PhylogenyNode to double d.protected voidsetId(long i)Sets the Id of this PhylogenyNode to i.voidsetIndicator(byte i)Sets the _indicator value of this PhylogenyNode to i.voidsetLink(PhylogenyNode n)Sets the linked PhylogenyNode of this PhylogenyNode to n.voidsetName(java.lang.String node_name)Sets the name of this node.voidsetParent(PhylogenyNode n)Sets the _parent PhylogenyNode of this PhylogenyNode to n.voidsetSumExtNodes(int i)Sets the total number of external Nodes originating from this PhylogenyNode to i (int).voidsetXcoord(float x)Used for drawing of Trees.voidsetXSecondary(float x_secondary)voidsetYcoord(float y)Used for drawing of Trees.voidsetYSecondary(float y_secondary)voidswapChildren()Swaps the the two childern of a PhylogenyNode node of this Phylogeny.java.lang.StringtoNewHampshire(boolean write_distance_to_parent, PhylogenyNode.NH_CONVERSION_SUPPORT_VALUE_STYLE svs)java.lang.StringtoNewHampshireX()Converts this PhylogenyNode to a New Hampshire X (NHX) String representation.java.lang.StringtoString()
-
-
-
Method Detail
-
addAsChild
public final void addAsChild(PhylogenyNode node)
Adds PhylogenyNode n to the list of child nodes and sets the _parent of n to this.- Parameters:
n- the PhylogenyNode to add
-
calculateDepth
public final int calculateDepth()
-
calculateDistanceToRoot
public final double calculateDistanceToRoot()
-
compareTo
public final int compareTo(PhylogenyNode o)
- Specified by:
compareToin interfacejava.lang.Comparable<PhylogenyNode>
-
copyNodeData
public final PhylogenyNode copyNodeData()
Returns a new PhylogenyNode which has its data copied from this PhylogenyNode. Links to the other Nodes in the same Phylogeny are NOT copied (e.g. _link to _parent). Field "_link" IS copied.- See Also:
getLink()
-
copyNodeDataShallow
public final PhylogenyNode copyNodeDataShallow()
Returns a new PhylogenyNode which has the same data as this PhylogenyNode. Links to the other Nodes in the same Phylogeny are NOT copied (e.g. _link to _parent). Field "_link" IS copied.- See Also:
getLink()
-
equals
public final boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
getAllDescendants
public final java.util.List<PhylogenyNode> getAllDescendants()
-
getAllExternalDescendants
public final java.util.List<PhylogenyNode> getAllExternalDescendants()
Returns a List containing references to all external children of this PhylogenyNode.- Returns:
- List of references to external Nodes
-
getAllExternalDescendantsNames
public final java.util.List<java.lang.String> getAllExternalDescendantsNames()
Returns a List containing references to all names of the external children of this PhylogenyNode.- Returns:
- List of references to names of external Nodes
-
getBranchData
public final BranchData getBranchData()
-
getChildNode
public final PhylogenyNode getChildNode(int i)
This return child node n of this node.- Parameters:
n- the index of the child to get- Returns:
- the child node with index n
- Throws:
java.lang.IllegalArgumentException- if n is out of bounds
-
getChildNode1
public final PhylogenyNode getChildNode1()
Convenience method. Returns the first child PhylogenyNode of this PhylogenyNode.
-
getChildNode2
public final PhylogenyNode getChildNode2()
Convenience method. Returns the second child PhylogenyNode of this PhylogenyNode.[last modified May 18, 2005 by CMZ]
-
getChildNodeIndex
public final int getChildNodeIndex()
This gets the child node index of this node.- Returns:
- the child node index of this node
- Throws:
java.lang.UnsupportedOperationException- if this node is a root node
-
getChildNodeIndex
public final int getChildNodeIndex(PhylogenyNode parent)
This gets the child node index of this node, given that parent is its parent[last modified Aug 14, 2006 by CMZ]
- Returns:
- the child node index of this node
- Throws:
java.lang.UnsupportedOperationException- if this node is a root node
-
getDescendants
public final java.util.List<PhylogenyNode> getDescendants()
-
getDistanceToParent
public final double getDistanceToParent()
Returns the length of the branch leading to the _parent of this PhylogenyNode (double).
-
getFirstChildNode
public final PhylogenyNode getFirstChildNode()
Convenience method. Returns the first child node of this node.[last modified May 18, 2005 by CMZ]
- Returns:
- the first child node of this node
-
getId
public final long getId()
Returns the ID (int) of this PhylogenyNode.
-
getIndicator
public final byte getIndicator()
Returns the _indicator value of this PhylogenyNode.
-
getLastChildNode
public final PhylogenyNode getLastChildNode()
Convenience method. Returns the last child node of this node.[last modified May 18, 2005 by CMZ]
- Returns:
- the last child node of this node
-
getLink
public final PhylogenyNode getLink()
Returns a refernce to the linked PhylogenyNode of this PhylogenyNode. Currently, this method is only used for the speciation-_duplication assignment algorithms.
-
getName
public final java.lang.String getName()
-
getNextExternalNode
public final PhylogenyNode getNextExternalNode()
Returns a refernce to the next external PhylogenyNode of this PhylogenyNode. TODO should be in Phylogeny. Returns null if no next external node is available.
-
getNextExternalNodeWhileTakingIntoAccountCollapsedNodes
public final PhylogenyNode getNextExternalNodeWhileTakingIntoAccountCollapsedNodes()
-
getNodeData
public final NodeData getNodeData()
-
getNumberOfDescendants
public final int getNumberOfDescendants()
-
getNumberOfExternalNodes
public final int getNumberOfExternalNodes()
Returns the total number of external Nodes originating from this PhylogenyNode (int).
-
getNumberOfParents
public final int getNumberOfParents()
-
getParent
public final PhylogenyNode getParent()
Returns a refernce to the parent PhylogenyNode of this PhylogenyNode.
-
getPreviousExternalNode
public final PhylogenyNode getPreviousExternalNode()
Returns a refernce to the next external PhylogenyNode of this PhylogenyNode. TODO should be in Phylogeny. Returns null if no next external node is available.
-
getXcoord
public final float getXcoord()
Used for drawing of Trees.
-
getXSecondary
public final float getXSecondary()
-
getYcoord
public final float getYcoord()
Used for drawing of Trees.
-
getYSecondary
public final float getYSecondary()
-
hashCode
public final int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
isCollapse
public final boolean isCollapse()
Returns whether this PhylogenyNode should be drawn as collapsed.
-
isDuplication
public final boolean isDuplication()
Returns true if this PhylogenyNode represents a _duplication event, false otherwise.
-
isEmpty
public boolean isEmpty()
-
isExternal
public final boolean isExternal()
Checks whether this PhylogenyNode is external (tip).- Returns:
- true if this PhylogenyNode is external, false otherwise
-
isFirstChildNode
public final boolean isFirstChildNode()
-
isFirstExternalNode
public final boolean isFirstExternalNode()
-
isHasAssignedEvent
public final boolean isHasAssignedEvent()
Returns whether a _duplication or speciation event has been assigned for this PhylogenyNode.
-
isInternal
public final boolean isInternal()
Checks whether this PhylogenyNode is internal (tip).- Returns:
- true if this PhylogenyNode is external, false otherwise
-
isLastChildNode
public final boolean isLastChildNode()
Returns true if this node is the last child node of its _parent.[last modified June 01, 2005 by CMZ]
- Returns:
- true if this node is the last child node of its _parent, false otherwise
-
isLastExternalNode
public final boolean isLastExternalNode()
-
isRoot
public final boolean isRoot()
Checks whether this PhylogenyNode is a root.- Returns:
- true if this PhylogenyNode is the root, false otherwise
-
isSpeciation
public final boolean isSpeciation()
-
preorderPrint
public void preorderPrint()
Prints to the console the subtree originating from this PhylogenyNode in preorder.
-
removeChildNode
public final void removeChildNode(int i)
-
removeChildNode
public final void removeChildNode(PhylogenyNode remove_me)
-
removeConnections
public void removeConnections()
-
setBranchData
public final void setBranchData(BranchData branch_data)
-
setChild1
public final void setChild1(PhylogenyNode n)
Sets the first child PhylogenyNode of this PhylogenyNode to n.
-
setChild2
public final void setChild2(PhylogenyNode n)
Sets the second child PhylogenyNode of this PhylogenyNode to n.
-
setChildNode
public final void setChildNode(int i, PhylogenyNode node)Inserts PhylogenyNode n at the specified position i into the list of child nodes. This does not allow null slots in the list of child nodes: If i is larger than the number of child nodes, n is just added to the list, not place at index i.- Parameters:
i- the index of position where to add the childn- the PhylogenyNode to add
-
setCollapse
public final void setCollapse(boolean b)
Sets whether this PhylogenyNode should be drawn as collapsed.
-
setDistanceToParent
public final void setDistanceToParent(double d)
Sets the length of the branch leading to the _parent of this PhylogenyNode to double d.
-
setIndicator
public final void setIndicator(byte i)
Sets the _indicator value of this PhylogenyNode to i.
-
setLink
public final void setLink(PhylogenyNode n)
Sets the linked PhylogenyNode of this PhylogenyNode to n. Currently, this method is only used for the speciation-_duplication assignment algorithms.
-
setName
public final void setName(java.lang.String node_name)
Sets the name of this node.
-
setParent
public final void setParent(PhylogenyNode n)
Sets the _parent PhylogenyNode of this PhylogenyNode to n.
-
setSumExtNodes
public final void setSumExtNodes(int i)
Sets the total number of external Nodes originating from this PhylogenyNode to i (int).
-
setXcoord
public final void setXcoord(float x)
Used for drawing of Trees.
-
setXSecondary
public final void setXSecondary(float x_secondary)
-
setYcoord
public final void setYcoord(float y)
Used for drawing of Trees.
-
setYSecondary
public final void setYSecondary(float y_secondary)
-
swapChildren
public final void swapChildren() throws java.lang.RuntimeExceptionSwaps the the two childern of a PhylogenyNode node of this Phylogeny.- Throws:
java.lang.RuntimeException
-
toNewHampshire
public final java.lang.String toNewHampshire(boolean write_distance_to_parent, PhylogenyNode.NH_CONVERSION_SUPPORT_VALUE_STYLE svs)
-
toNewHampshireX
public final java.lang.String toNewHampshireX()
Converts this PhylogenyNode to a New Hampshire X (NHX) String representation.
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
setId
protected final void setId(long i)
Sets the Id of this PhylogenyNode to i. In most cases, this number should not be set to values lower than getNodeCount() -- which this method does not allow.
-
createInstanceFromNhxString
public static PhylogenyNode createInstanceFromNhxString(java.lang.String nhx) throws NHXFormatException, PhyloXmlDataFormatException
-
createInstanceFromNhxString
public static PhylogenyNode createInstanceFromNhxString(java.lang.String nhx, NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction) throws NHXFormatException, PhyloXmlDataFormatException
-
createInstanceFromNhxString
public static PhylogenyNode createInstanceFromNhxString(java.lang.String nhx, NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction, boolean replace_underscores) throws NHXFormatException, PhyloXmlDataFormatException
-
getNodeCount
public static final long getNodeCount()
Returns the total number of all Nodes created so far.- Returns:
- total number of Nodes (long)
-
-