1 package jalview.ext.archaeopteryx;
3 import jalview.ext.treeviewer.ExternalTreeFrame;
4 import jalview.ext.treeviewer.ExternalTreeI;
5 import jalview.ext.treeviewer.ExternalTreeNodeI;
7 import java.util.Iterator;
9 import org.forester.archaeopteryx.Archaeopteryx;
10 import org.forester.phylogeny.Phylogeny;
11 import org.forester.phylogeny.PhylogenyMethods;
12 import org.forester.phylogeny.PhylogenyNode;
14 public class Tree implements ExternalTreeI
16 private final Phylogeny tree;
18 public Tree(Phylogeny aptxTree)
25 public ExternalTreeNodeI getRoot()
27 ExternalTreeNodeI root = new TreeNode(tree.getRoot());
32 public void setTreeName(String name)
39 public ExternalTreeNodeI getNodeWithName(String name)
41 return new TreeNode(tree.getNode(name));
46 public String[] getAllLeafNames()
48 return tree.getAllExternalNodeNames();
52 public void setRerootable(boolean b)
54 tree.setRerootable(b);
59 public void setRooted(boolean b)
66 public boolean isEmpty()
68 return tree.isEmpty();
72 public String getTreeName()
74 return tree.getName();
78 public void setRoot(ExternalTreeNodeI rootNode)
80 PhylogenyNode treeRoot = new PhylogenyNode(rootNode.getNodeName());
82 tree.setRoot(treeRoot);
87 public double getHeight(boolean adjustForCollapsedSubtrees)
89 return tree.calculateHeight(adjustForCollapsedSubtrees);
93 public Iterator<ExternalTreeNodeI> iterateInPreOrder()
95 Iterator<ExternalTreeNodeI> iter = new TreeIterator(
96 tree.iteratorPreorder());
101 public Iterator<ExternalTreeNodeI> iterateInLevelOrder()
103 Iterator<ExternalTreeNodeI> iter = new TreeIterator(
104 tree.iteratorLevelOrder());
109 public Iterator<ExternalTreeNodeI> iterateInPostOrder()
111 Iterator<ExternalTreeNodeI> iter = new TreeIterator(
112 tree.iteratorPostorder());
117 public ExternalTreeNodeI getFurthestNode()
119 PhylogenyNode furthestNode = PhylogenyMethods
120 .calculateNodeWithMaxDistanceToRoot(tree);
121 return new TreeNode(furthestNode);
125 public ExternalTreeFrame createInstanceFromTree(String instanceTitle)
127 return new AptxFrame(Archaeopteryx.createApplication(tree,
128 AptxInit.APTX_CONFIG,