Object leaves = null;\r
int start;\r
int end;\r
+ boolean hasDistances = true; // normal case for jalview trees\r
+ boolean hasBootstrap = false; // normal case for jalview trees\r
+\r
+ private boolean hasRootDistance = true;\r
\r
/**\r
* Creates a new NJTree object.\r
public NJTree(SequenceI[] seqs, NewickFile treefile)\r
{\r
top = treefile.getTree();\r
+\r
+ hasDistances = treefile.HasDistances();\r
+ hasBootstrap = treefile.HasBootstrap();\r
+ hasRootDistance = treefile.HasRootDistance();\r
+\r
maxheight = findHeight(top);\r
\r
SequenceIdMatcher algnIds = new SequenceIdMatcher(seqs);\r
{\r
while (noClus > 2)\r
{\r
- /* if (type.equals("NJ"))\r
+ if (type.equals("NJ"))\r
{\r
- float mind = findMinNJDistance();\r
+ findMinNJDistance();\r
}\r
else\r
{\r
- float mind = findMinDistance();\r
- }*/\r
+ findMinDistance();\r
+ }\r
\r
Cluster c = joinClusters(mini, minj);\r
\r
boolean onefound = false;\r
\r
int one = -1;\r
- //int two = -1;\r
+ int two = -1;\r
\r
for (int i = 0; i < noseqs; i++)\r
{\r
{\r
if (onefound == false)\r
{\r
- //two = i;\r
+ two = i;\r
onefound = true;\r
}\r
else\r
}\r
}\r
\r
- // Cluster c = joinClusters(one, two);\r
+ joinClusters(one, two);\r
top = (SequenceNode) (node.elementAt(one));\r
\r
reCount(top);\r
public void findNewNJDistances(SequenceNode tmpi, SequenceNode tmpj,\r
float dist)\r
{\r
- //float ih = 0;\r
- // float jh = 0;\r
-\r
- //SequenceNode sni = tmpi;\r
- //SequenceNode snj = tmpj;\r
\r
tmpi.dist = ((dist + ri) - rj) / 2;\r
tmpj.dist = (dist - tmpi.dist);\r
*/\r
public void findClusterNJDistance(int i, int j)\r
{\r
- //int noi = ((Cluster) cluster.elementAt(i)).value.length;\r
- //int noj = ((Cluster) cluster.elementAt(j)).value.length;\r
\r
// New distances from cluster to others\r
float[] newdist = new float[noseqs];\r
AlignSeq as = new AlignSeq(sequence[i], sequence[j], "pep");\r
as.calcScoreMatrix();\r
as.traceAlignment();\r
- as.printAlignment();\r
+ as.printAlignment(System.out);\r
distance[i][j] = (float) as.maxscore;\r
\r
if (max < distance[i][j])\r
{\r
return top;\r
}\r
+ /**\r
+ *\r
+ * @return true if tree has real distances\r
+ */\r
+ public boolean isHasDistances() {\r
+ return hasDistances;\r
+ }\r
+\r
+ /**\r
+ *\r
+ * @return true if tree has real bootstrap values\r
+ */\r
+ public boolean isHasBootstrap() {\r
+ return hasBootstrap;\r
+ }\r
+\r
+ public boolean isHasRootDistance()\r
+ {\r
+ return hasRootDistance;\r
+ }\r
+\r
}\r
\r
\r
this.value = value;\r
}\r
}\r
+\r