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-1628 wrappers for common checks on ColumnSelection
[jalview.git]
/
src
/
jalview
/
analysis
/
NJTree.java
diff --git
a/src/jalview/analysis/NJTree.java
b/src/jalview/analysis/NJTree.java
index
ec5b79b
..
099400e
100644
(file)
--- a/
src/jalview/analysis/NJTree.java
+++ b/
src/jalview/analysis/NJTree.java
@@
-218,7
+218,7
@@
public class NJTree
* DOCUMENT ME!
*/
public NJTree(SequenceI[] sequence, AlignmentView seqData, String type,
* DOCUMENT ME!
*/
public NJTree(SequenceI[] sequence, AlignmentView seqData, String type,
- String pwtype, int start, int end)
+ String pwtype, ScoreModelI sm, int start, int end)
{
this.sequence = sequence;
this.node = new Vector();
{
this.sequence = sequence;
this.node = new Vector();
@@
-245,7
+245,7
@@
public class NJTree
type = "AV";
}
type = "AV";
}
- if (!(pwtype.equals("PID")))
+ if (sm == null && !(pwtype.equals("PID")))
{
if (ResidueProperties.getScoreMatrix(pwtype) == null)
{
{
if (ResidueProperties.getScoreMatrix(pwtype) == null)
{
@@
-265,7
+265,7
@@
public class NJTree
noseqs = i++;
noseqs = i++;
- distance = findDistances();
+ distance = findDistances(sm);
// System.err.println("Made distances");// dbg
makeLeaves();
// System.err.println("Made leaves");// dbg
// System.err.println("Made distances");// dbg
makeLeaves();
// System.err.println("Made leaves");// dbg
@@
-323,7
+323,7
@@
public class NJTree
for (int j = 0; j < seqs.length; j++)
{
for (int j = 0; j < seqs.length; j++)
{
- seqs[j] = (SequenceI) list.get(j);
+ seqs[j] = list.get(j);
}
seqmatcher = new SequenceIdMatcher(seqs);
}
seqmatcher = new SequenceIdMatcher(seqs);
@@
-730,16
+730,18
@@
public class NJTree
*
* @return similarity matrix used to compute tree
*/
*
* @return similarity matrix used to compute tree
*/
- public float[][] findDistances()
+ public float[][] findDistances(ScoreModelI _pwmatrix)
{
float[][] distance = new float[noseqs][noseqs];
{
float[][] distance = new float[noseqs][noseqs];
-
- // Pairwise substitution score (with no gap penalties)
- ScoreModelI _pwmatrix = ResidueProperties.getScoreModel(pwtype);
if (_pwmatrix == null)
{
if (_pwmatrix == null)
{
- _pwmatrix = ResidueProperties.getScoreMatrix("BLOSUM62");
+ // Resolve substitution model
+ _pwmatrix = ResidueProperties.getScoreModel(pwtype);
+ if (_pwmatrix == null)
+ {
+ _pwmatrix = ResidueProperties.getScoreMatrix("BLOSUM62");
+ }
}
distance = _pwmatrix.findDistances(seqData);
return distance;
}
distance = _pwmatrix.findDistances(seqData);
return distance;
@@
-865,12
+867,12
@@
public class NJTree
{
System.out
.println("Leaf = " + ((SequenceI) node.element()).getName());
{
System.out
.println("Leaf = " + ((SequenceI) node.element()).getName());
- System.out.println("Dist " + ((SequenceNode) node).dist);
+ System.out.println("Dist " + node.dist);
System.out.println("Boot " + node.getBootstrap());
}
else
{
System.out.println("Boot " + node.getBootstrap());
}
else
{
- System.out.println("Dist " + ((SequenceNode) node).dist);
+ System.out.println("Dist " + node.dist);
printNode((SequenceNode) node.left());
printNode((SequenceNode) node.right());
}
printNode((SequenceNode) node.left());
printNode((SequenceNode) node.right());
}
@@
-891,11
+893,11
@@
public class NJTree
if ((node.left() == null) && (node.right() == null))
{
if ((node.left() == null) && (node.right() == null))
{
- float dist = ((SequenceNode) node).dist;
+ float dist = node.dist;
if (dist > maxDistValue)
{
if (dist > maxDistValue)
{
- maxdist = (SequenceNode) node;
+ maxdist = node;
maxDistValue = dist;
}
}
maxDistValue = dist;
}
}
@@
-1097,9
+1099,9
@@
public class NJTree
+ ((SequenceI) node.element()).getName());
}
+ ((SequenceI) node.element()).getName());
}
- System.out.println(" dist = " + ((SequenceNode) node).dist + " "
- + ((SequenceNode) node).count + " "
- + ((SequenceNode) node).height);
+ System.out.println(" dist = " + node.dist + " "
+ + node.count + " "
+ + node.height);
}
/**
}
/**
@@
-1145,13
+1147,13
@@
public class NJTree
SequenceNode l = (SequenceNode) node.left();
SequenceNode r = (SequenceNode) node.right();
SequenceNode l = (SequenceNode) node.left();
SequenceNode r = (SequenceNode) node.right();
- ((SequenceNode) node).count = l.count + r.count;
- ((SequenceNode) node).ycount = (l.ycount + r.ycount) / 2;
+ node.count = l.count + r.count;
+ node.ycount = (l.ycount + r.ycount) / 2;
}
else
{
}
else
{
- ((SequenceNode) node).count = 1;
- ((SequenceNode) node).ycount = ycount++;
+ node.count = 1;
+ node.ycount = ycount++;
}
_lycount--;
}
}
_lycount--;
}
@@
-1290,7
+1292,9
@@
public class NJTree
{
for (Enumeration nodes = node.elements(); nodes.hasMoreElements(); nodeTransformI
.transform((BinaryNode) nodes.nextElement()))
{
for (Enumeration nodes = node.elements(); nodes.hasMoreElements(); nodeTransformI
.transform((BinaryNode) nodes.nextElement()))
+ {
;
;
+ }
}
}
}
}