X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FTreeModel.java;h=ce79a650c4b8b8e6f781a3caef8ef6d4d6ebe048;hb=789c97dc0fa8df08248c779694ffaaf5e19262f2;hp=703702a19a4a2e25bd250cc55e9bba50e6d5ae04;hpb=fe68da05540c32386ec63bd3beeadf8b9d624a16;p=jalview.git diff --git a/src/jalview/analysis/TreeModel.java b/src/jalview/analysis/TreeModel.java index 703702a..ce79a65 100644 --- a/src/jalview/analysis/TreeModel.java +++ b/src/jalview/analysis/TreeModel.java @@ -20,7 +20,6 @@ */ package jalview.analysis; -import jalview.bin.Cache; import jalview.datamodel.AlignmentView; import jalview.datamodel.BinaryNode; import jalview.datamodel.NodeTransformI; @@ -51,7 +50,7 @@ public class TreeModel int noseqs; - SequenceNode top; + BinaryNode top; double maxDistValue; @@ -59,7 +58,7 @@ public class TreeModel int ycount; - Vector node; + Vector node; boolean hasDistances = true; // normal case for jalview trees @@ -95,7 +94,7 @@ public class TreeModel */ public TreeModel(TreeBuilder tree) { - this(tree.getSequences(), (SequenceNode) tree.getTopNode(), tree.hasDistances(), + this(tree.getSequences(), tree.getTopNode(), tree.hasDistances(), tree.hasBootstrap(), tree.hasRootDistance()); seqData = tree.getOriginalData(); } @@ -109,7 +108,7 @@ public class TreeModel * @param hasBoot * @param hasRootDist */ - public TreeModel(SequenceI[] seqs, SequenceNode root, boolean hasDist, + public TreeModel(SequenceI[] seqs, BinaryNode root, boolean hasDist, boolean hasBoot, boolean hasRootDist) { this.sequences = seqs; @@ -129,7 +128,7 @@ public class TreeModel { SequenceIdMatcher algnIds = new SequenceIdMatcher(seqs); - Vector leaves = findLeaves(top); + Vector leaves = findLeaves(top); int i = 0; int namesleft = seqs.length; @@ -141,7 +140,8 @@ public class TreeModel // int countOne2Many = 0; while (i < leaves.size()) { - j = leaves.elementAt(i++); + // TODO - decide if we get rid of the polymorphism here ? + j = (SequenceNode) leaves.elementAt(i++); realnam = j.getName(); nam = null; @@ -206,7 +206,7 @@ public class TreeModel */ public void updatePlaceHolders(List list) { - Vector leaves = findLeaves(top); + Vector leaves = findLeaves(top); int sz = leaves.size(); SequenceIdMatcher seqmatcher = null; @@ -214,7 +214,7 @@ public class TreeModel while (i < sz) { - SequenceNode leaf = leaves.elementAt(i++); + SequenceNode leaf = (SequenceNode) leaves.elementAt(i++); if (list.contains(leaf.element())) { @@ -289,15 +289,15 @@ public class TreeModel /** * Search for leaf nodes below (or at) the given node * - * @param nd + * @param top2 * root node to search from * * @return */ - public Vector findLeaves(SequenceNode nd) + public Vector findLeaves(BinaryNode top2) { - Vector leaves = new Vector(); - findLeaves(nd, leaves); + Vector leaves = new Vector(); + findLeaves(top2, leaves); return leaves; } @@ -311,8 +311,7 @@ public class TreeModel * * @return Vector of leaf nodes on binary tree */ - Vector findLeaves(SequenceNode nd, - Vector leaves) + Vector findLeaves(BinaryNode nd, Vector leaves) { if (nd == null) { @@ -332,8 +331,8 @@ public class TreeModel * TODO: Identify internal nodes... if (node.isSequenceLabel()) { * leaves.addElement(node); } */ - findLeaves((SequenceNode) nd.left(), leaves); - findLeaves((SequenceNode) nd.right(), leaves); + findLeaves(nd.left(), leaves); + findLeaves(nd.right(), leaves); } return leaves; @@ -354,13 +353,14 @@ public class TreeModel if ((nd.left() == null) && (nd.right() == null)) { - System.out.println("Leaf = " + ((SequenceI) nd.element()).getName()); - System.out.println("Dist " + nd.dist); - System.out.println("Boot " + nd.getBootstrap()); + // TODO FIX FOR COLUMN TREES + jalview.bin.Console.outPrintln("Leaf = " + ((SequenceI) nd.element()).getName()); + jalview.bin.Console.outPrintln("Dist " + nd.dist); + jalview.bin.Console.outPrintln("Boot " + nd.getBootstrap()); } else { - System.out.println("Dist " + nd.dist); + jalview.bin.Console.outPrintln("Dist " + nd.dist); printNode((BinaryNode) nd.left()); printNode((BinaryNode) nd.right()); } @@ -388,14 +388,14 @@ public class TreeModel * @param threshold * @see #getGroups() */ - public List groupNodes(float threshold) + public List groupNodes(float threshold) { - List groups = new ArrayList(); + List groups = new ArrayList(); _groupNodes(groups, getTopNode(), threshold); return groups; } - protected void _groupNodes(List groups, SequenceNode nd, + protected void _groupNodes(List groups, BinaryNode nd, float threshold) { if (nd == null) @@ -409,8 +409,8 @@ public class TreeModel } else { - _groupNodes(groups, (SequenceNode) nd.left(), threshold); - _groupNodes(groups, (SequenceNode) nd.right(), threshold); + _groupNodes(groups, nd.left(), threshold); + _groupNodes(groups, nd.right(), threshold); } } @@ -431,7 +431,7 @@ public class TreeModel if ((nd.left() == null) && (nd.right() == null)) { - nd.height = ((BinaryNode) nd.parent()).height + nd.dist; + nd.height = nd.parent().height + nd.dist; if (nd.height > maxheight) { @@ -446,7 +446,7 @@ public class TreeModel { if (nd.parent() != null) { - nd.height = ((BinaryNode) nd.parent()).height + nd.dist; + nd.height = nd.parent().height + nd.dist; } else { @@ -481,10 +481,10 @@ public class TreeModel } else { - System.out.println(" name = " + ((SequenceI) nd.element()).getName()); + jalview.bin.Console.outPrintln(" name = " + ((SequenceI) nd.element()).getName()); } - System.out.println( + jalview.bin.Console.outPrintln( " dist = " + nd.dist + " " + nd.count + " " + nd.height); } @@ -514,7 +514,7 @@ public class TreeModel { // if (_lycount<_lylimit) // { - // System.err.println("Warning: depth of _recount greater than number of + // jalview.bin.Console.errPrintln("Warning: depth of _recount greater than number of // nodes."); // } if (nd == null) @@ -630,7 +630,7 @@ public class TreeModel * * @return DOCUMENT ME! */ - public SequenceNode getTopNode() + public BinaryNode getTopNode() { return top; } @@ -665,7 +665,7 @@ public class TreeModel */ public void applyToNodes(NodeTransformI nodeTransformI) { - for (Enumeration nodes = node.elements(); nodes + for (Enumeration nodes = node.elements(); nodes .hasMoreElements(); nodeTransformI .transform(nodes.nextElement())) {