git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-4121 slight refactoring of method name and added tests for headless assumptions...
[jalview.git]
/
src
/
jalview
/
analysis
/
TreeModel.java
diff --git
a/src/jalview/analysis/TreeModel.java
b/src/jalview/analysis/TreeModel.java
index
5a41802
..
dd56424
100644
(file)
--- a/
src/jalview/analysis/TreeModel.java
+++ b/
src/jalview/analysis/TreeModel.java
@@
-50,7
+50,7
@@
public class TreeModel
int noseqs;
int noseqs;
- SequenceNode top;
+ BinaryNode top;
double maxDistValue;
double maxDistValue;
@@
-58,7
+58,7
@@
public class TreeModel
int ycount;
int ycount;
- Vector<SequenceNode> node;
+ Vector<BinaryNode> node;
boolean hasDistances = true; // normal case for jalview trees
boolean hasDistances = true; // normal case for jalview trees
@@
-77,10
+77,11
@@
public class TreeModel
* @param treefile
* NewickFile
*/
* @param treefile
* NewickFile
*/
- public TreeModel(SequenceI[] seqs, AlignmentView odata, NewickFile treefile)
+ public TreeModel(SequenceI[] seqs, AlignmentView odata,
+ NewickFile treefile)
{
{
- this(seqs, treefile.getTree(), treefile.HasDistances(), treefile
- .HasBootstrap(), treefile.HasRootDistance());
+ this(seqs, treefile.getTree(), treefile.HasDistances(),
+ treefile.HasBootstrap(), treefile.HasRootDistance());
seqData = odata;
associateLeavesToSequences(seqs);
seqData = odata;
associateLeavesToSequences(seqs);
@@
-93,8
+94,8
@@
public class TreeModel
*/
public TreeModel(TreeBuilder tree)
{
*/
public TreeModel(TreeBuilder tree)
{
- this(tree.getSequences(), tree.getTopNode(), tree.hasDistances(), tree
- .hasBootstrap(), tree.hasRootDistance());
+ this(tree.getSequences(), tree.getTopNode(), tree.hasDistances(),
+ tree.hasBootstrap(), tree.hasRootDistance());
seqData = tree.getOriginalData();
}
seqData = tree.getOriginalData();
}
@@
-107,7
+108,7
@@
public class TreeModel
* @param hasBoot
* @param hasRootDist
*/
* @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;
boolean hasBoot, boolean hasRootDist)
{
this.sequences = seqs;
@@
-127,7
+128,7
@@
public class TreeModel
{
SequenceIdMatcher algnIds = new SequenceIdMatcher(seqs);
{
SequenceIdMatcher algnIds = new SequenceIdMatcher(seqs);
- Vector<SequenceNode> leaves = findLeaves(top);
+ Vector<BinaryNode> leaves = findLeaves(top);
int i = 0;
int namesleft = seqs.length;
int i = 0;
int namesleft = seqs.length;
@@
-139,7
+140,8
@@
public class TreeModel
// int countOne2Many = 0;
while (i < leaves.size())
{
// 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;
realnam = j.getName();
nam = null;
@@
-154,8
+156,8
@@
public class TreeModel
if (one2many.contains(nam))
{
// countOne2Many++;
if (one2many.contains(nam))
{
// countOne2Many++;
- // if (jalview.bin.Cache.log.isDebugEnabled())
- // jalview.bin.Cache.log.debug("One 2 many relationship for
+ // if (Cache.isDebugEnabled())
+ // Cache.debug("One 2 many relationship for
// "+nam.getName());
}
else
// "+nam.getName());
}
else
@@
-170,8
+172,8
@@
public class TreeModel
j.setPlaceholder(true);
}
}
j.setPlaceholder(true);
}
}
- // if (jalview.bin.Cache.log.isDebugEnabled() && countOne2Many>0) {
- // jalview.bin.Cache.log.debug("There were "+countOne2Many+" alignment
+ // if (Cache.isDebugEnabled() && countOne2Many>0) {
+ // Cache.debug("There were "+countOne2Many+" alignment
// sequence ids (out of "+one2many.size()+" unique ids) linked to two or
// more leaves.");
// }
// sequence ids (out of "+one2many.size()+" unique ids) linked to two or
// more leaves.");
// }
@@
-187,8
+189,12
@@
public class TreeModel
{
NewickFile fout = new NewickFile(getTopNode());
{
NewickFile fout = new NewickFile(getTopNode());
- return fout.print(hasBootstrap(), hasDistances(),
- hasRootDistance()); // output all data available for tree
+ return fout.print(hasBootstrap(), hasDistances(), hasRootDistance()); // output
+ // all
+ // data
+ // available
+ // for
+ // tree
}
/**
}
/**
@@
-200,7
+206,7
@@
public class TreeModel
*/
public void updatePlaceHolders(List<SequenceI> list)
{
*/
public void updatePlaceHolders(List<SequenceI> list)
{
- Vector<SequenceNode> leaves = findLeaves(top);
+ Vector<BinaryNode> leaves = findLeaves(top);
int sz = leaves.size();
SequenceIdMatcher seqmatcher = null;
int sz = leaves.size();
SequenceIdMatcher seqmatcher = null;
@@
-208,7
+214,7
@@
public class TreeModel
while (i < sz)
{
while (i < sz)
{
- SequenceNode leaf = leaves.elementAt(i++);
+ SequenceNode leaf = (SequenceNode) leaves.elementAt(i++);
if (list.contains(leaf.element()))
{
if (list.contains(leaf.element()))
{
@@
-248,8
+254,8
@@
public class TreeModel
if (!leaf.isPlaceholder())
{
// Construct a new placeholder sequence object for this leaf
if (!leaf.isPlaceholder())
{
// Construct a new placeholder sequence object for this leaf
- leaf.setElement(new Sequence(leaf.getName(),
- "THISISAPLACEHLDER"));
+ leaf.setElement(
+ new Sequence(leaf.getName(), "THISISAPLACEHLDER"));
}
leaf.setPlaceholder(true);
}
leaf.setPlaceholder(true);
@@
-283,15
+289,15
@@
public class TreeModel
/**
* Search for leaf nodes below (or at) the given node
*
/**
* Search for leaf nodes below (or at) the given node
*
- * @param nd
+ * @param top2
* root node to search from
*
* @return
*/
* root node to search from
*
* @return
*/
- public Vector<SequenceNode> findLeaves(SequenceNode nd)
+ public Vector<BinaryNode> findLeaves(BinaryNode top2)
{
{
- Vector<SequenceNode> leaves = new Vector<SequenceNode>();
- findLeaves(nd, leaves);
+ Vector<BinaryNode> leaves = new Vector<BinaryNode>();
+ findLeaves(top2, leaves);
return leaves;
}
return leaves;
}
@@
-305,8
+311,8
@@
public class TreeModel
*
* @return Vector of leaf nodes on binary tree
*/
*
* @return Vector of leaf nodes on binary tree
*/
- Vector<SequenceNode> findLeaves(SequenceNode nd,
- Vector<SequenceNode> leaves)
+ Vector<BinaryNode> findLeaves(BinaryNode nd,
+ Vector<BinaryNode> leaves)
{
if (nd == null)
{
{
if (nd == null)
{
@@
-326,8
+332,8
@@
public class TreeModel
* TODO: Identify internal nodes... if (node.isSequenceLabel()) {
* leaves.addElement(node); }
*/
* 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;
}
return leaves;
@@
-339,7
+345,7
@@
public class TreeModel
* @param nd
* SequenceNode
*/
* @param nd
* SequenceNode
*/
- void printNode(SequenceNode nd)
+ void printNode(BinaryNode nd)
{
if (nd == null)
{
{
if (nd == null)
{
@@
-355,8
+361,8
@@
public class TreeModel
else
{
System.out.println("Dist " + nd.dist);
else
{
System.out.println("Dist " + nd.dist);
- printNode((SequenceNode) nd.left());
- printNode((SequenceNode) nd.right());
+ printNode((BinaryNode) nd.left());
+ printNode((BinaryNode) nd.right());
}
}
}
}
@@
-382,14
+388,14
@@
public class TreeModel
* @param threshold
* @see #getGroups()
*/
* @param threshold
* @see #getGroups()
*/
- public List<SequenceNode> groupNodes(float threshold)
+ public List<BinaryNode> groupNodes(float threshold)
{
{
- List<SequenceNode> groups = new ArrayList<SequenceNode>();
+ List<BinaryNode> groups = new ArrayList<BinaryNode>();
_groupNodes(groups, getTopNode(), threshold);
return groups;
}
_groupNodes(groups, getTopNode(), threshold);
return groups;
}
- protected void _groupNodes(List<SequenceNode> groups, SequenceNode nd,
+ protected void _groupNodes(List<BinaryNode> groups, BinaryNode nd,
float threshold)
{
if (nd == null)
float threshold)
{
if (nd == null)
@@
-416,7
+422,7
@@
public class TreeModel
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
- public double findHeight(SequenceNode nd)
+ public double findHeight(BinaryNode nd)
{
if (nd == null)
{
{
if (nd == null)
{
@@
-425,7
+431,7
@@
public class TreeModel
if ((nd.left() == null) && (nd.right() == null))
{
if ((nd.left() == null) && (nd.right() == null))
{
- nd.height = ((SequenceNode) nd.parent()).height + nd.dist;
+ nd.height = ((BinaryNode) nd.parent()).height + nd.dist;
if (nd.height > maxheight)
{
if (nd.height > maxheight)
{
@@
-440,7
+446,7
@@
public class TreeModel
{
if (nd.parent() != null)
{
{
if (nd.parent() != null)
{
- nd.height = ((SequenceNode) nd.parent()).height + nd.dist;
+ nd.height = ((BinaryNode) nd.parent()).height + nd.dist;
}
else
{
}
else
{
@@
-448,8
+454,8
@@
public class TreeModel
nd.height = (float) 0.0;
}
nd.height = (float) 0.0;
}
- maxheight = findHeight((SequenceNode) (nd.left()));
- maxheight = findHeight((SequenceNode) (nd.right()));
+ maxheight = findHeight((BinaryNode) (nd.left()));
+ maxheight = findHeight((BinaryNode) (nd.right()));
}
return maxheight;
}
return maxheight;
@@
-461,7
+467,7
@@
public class TreeModel
* @param nd
* DOCUMENT ME!
*/
* @param nd
* DOCUMENT ME!
*/
- void printN(SequenceNode nd)
+ void printN(BinaryNode nd)
{
if (nd == null)
{
{
if (nd == null)
{
@@
-470,16
+476,16
@@
public class TreeModel
if ((nd.left() != null) && (nd.right() != null))
{
if ((nd.left() != null) && (nd.right() != null))
{
- printN((SequenceNode) nd.left());
- printN((SequenceNode) nd.right());
+ printN((BinaryNode) nd.left());
+ printN((BinaryNode) nd.right());
}
else
{
System.out.println(" name = " + ((SequenceI) nd.element()).getName());
}
}
else
{
System.out.println(" name = " + ((SequenceI) nd.element()).getName());
}
- System.out.println(" dist = " + nd.dist + " " + nd.count + " "
- + nd.height);
+ System.out.println(
+ " dist = " + nd.dist + " " + nd.count + " " + nd.height);
}
/**
}
/**
@@
-488,7
+494,7
@@
public class TreeModel
* @param nd
* DOCUMENT ME!
*/
* @param nd
* DOCUMENT ME!
*/
- public void reCount(SequenceNode nd)
+ public void reCount(BinaryNode nd)
{
ycount = 0;
// _lycount = 0;
{
ycount = 0;
// _lycount = 0;
@@
-504,11
+510,12
@@
public class TreeModel
* @param nd
* DOCUMENT ME!
*/
* @param nd
* DOCUMENT ME!
*/
- void _reCount(SequenceNode nd)
+ void _reCount(BinaryNode nd)
{
// if (_lycount<_lylimit)
// {
{
// if (_lycount<_lylimit)
// {
- // System.err.println("Warning: depth of _recount greater than number of nodes.");
+ // System.err.println("Warning: depth of _recount greater than number of
+ // nodes.");
// }
if (nd == null)
{
// }
if (nd == null)
{
@@
-519,11
+526,11
@@
public class TreeModel
if ((nd.left() != null) && (nd.right() != null))
{
if ((nd.left() != null) && (nd.right() != null))
{
- _reCount((SequenceNode) nd.left());
- _reCount((SequenceNode) nd.right());
+ _reCount((BinaryNode) nd.left());
+ _reCount((BinaryNode) nd.right());
- SequenceNode l = (SequenceNode) nd.left();
- SequenceNode r = (SequenceNode) nd.right();
+ BinaryNode l = (BinaryNode) nd.left();
+ BinaryNode r = (BinaryNode) nd.right();
nd.count = l.count + r.count;
nd.ycount = (l.ycount + r.ycount) / 2;
nd.count = l.count + r.count;
nd.ycount = (l.ycount + r.ycount) / 2;
@@
-542,14
+549,14
@@
public class TreeModel
* @param nd
* DOCUMENT ME!
*/
* @param nd
* DOCUMENT ME!
*/
- public void swapNodes(SequenceNode nd)
+ public void swapNodes(BinaryNode nd)
{
if (nd == null)
{
return;
}
{
if (nd == null)
{
return;
}
- SequenceNode tmp = (SequenceNode) nd.left();
+ BinaryNode tmp = (BinaryNode) nd.left();
nd.setLeft(nd.right());
nd.setRight(tmp);
nd.setLeft(nd.right());
nd.setRight(tmp);
@@
-563,7
+570,7
@@
public class TreeModel
* @param dir
* DOCUMENT ME!
*/
* @param dir
* DOCUMENT ME!
*/
- void changeDirection(SequenceNode nd, SequenceNode dir)
+ void changeDirection(BinaryNode nd, BinaryNode dir)
{
if (nd == null)
{
{
if (nd == null)
{
@@
-572,9
+579,9
@@
public class TreeModel
if (nd.parent() != top)
{
if (nd.parent() != top)
{
- changeDirection((SequenceNode) nd.parent(), nd);
+ changeDirection((BinaryNode) nd.parent(), nd);
- SequenceNode tmp = (SequenceNode) nd.parent();
+ BinaryNode tmp = (BinaryNode) nd.parent();
if (dir == nd.left())
{
if (dir == nd.left())
{
@@
-623,7
+630,7
@@
public class TreeModel
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
- public SequenceNode getTopNode()
+ public BinaryNode getTopNode()
{
return top;
}
{
return top;
}
@@
-658,9
+665,9
@@
public class TreeModel
*/
public void applyToNodes(NodeTransformI nodeTransformI)
{
*/
public void applyToNodes(NodeTransformI nodeTransformI)
{
- for (Enumeration<SequenceNode> nodes = node.elements(); nodes
- .hasMoreElements(); nodeTransformI.transform(nodes
- .nextElement()))
+ for (Enumeration<BinaryNode> nodes = node.elements(); nodes
+ .hasMoreElements(); nodeTransformI
+ .transform(nodes.nextElement()))
{
;
}
{
;
}