Class PhylogenyNode

java.lang.Object
org.forester.phylogeny.PhylogenyNode
All Implemented Interfaces:
Comparable<PhylogenyNode>

public final class PhylogenyNode extends Object implements Comparable<PhylogenyNode>
Warning. Implementation of method 'compareTo' only looks at node name. Thus, use of this class in SortedSets might lead to unexpected behavior.
  • Constructor Details

    • PhylogenyNode

      public PhylogenyNode()
      Default constructor for PhylogenyNode.
    • PhylogenyNode

      public PhylogenyNode(String node_name)
  • Method Details

    • 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:
      compareTo in interface 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:
    • 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:
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • getAllDescendants

      public final List<PhylogenyNode> getAllDescendants()
    • getAllExternalDescendants

      public final 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 List<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:
      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:
      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:
      UnsupportedOperationException - if this node is a root node
    • getDescendants

      public final 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 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:
      hashCode in class 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 child
      n - 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(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 RuntimeException
      Swaps the the two childern of a PhylogenyNode node of this Phylogeny.
      Throws:
      RuntimeException
    • toNewHampshire

      public final String toNewHampshire(boolean write_distance_to_parent, PhylogenyNode.NH_CONVERSION_SUPPORT_VALUE_STYLE svs)
    • toNewHampshireX

      public final String toNewHampshireX()
      Converts this PhylogenyNode to a New Hampshire X (NHX) String representation.
    • toString

      public final String toString()
      Overrides:
      toString in class 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(String nhx) throws NHXFormatException, PhyloXmlDataFormatException
      Throws:
      NHXFormatException
      PhyloXmlDataFormatException
    • createInstanceFromNhxString

      public static PhylogenyNode createInstanceFromNhxString(String nhx, NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction) throws NHXFormatException, PhyloXmlDataFormatException
      Throws:
      NHXFormatException
      PhyloXmlDataFormatException
    • createInstanceFromNhxString

      public static PhylogenyNode createInstanceFromNhxString(String nhx, NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction, boolean replace_underscores) throws NHXFormatException, PhyloXmlDataFormatException
      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)