Class 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.
    • Constructor Detail

      • PhylogenyNode

        public PhylogenyNode()
        Default constructor for PhylogenyNode.
      • PhylogenyNode

        public PhylogenyNode​(java.lang.String node_name)
    • 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:
        compareTo in interface java.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:
        equals in class java.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:
        hashCode in class java.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 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​(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.RuntimeException
        Swaps the the two childern of a PhylogenyNode node of this Phylogeny.
        Throws:
        java.lang.RuntimeException
      • 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:
        toString in class java.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.
      • getNodeCount

        public static final long getNodeCount()
        Returns the total number of all Nodes created so far.
        Returns:
        total number of Nodes (long)