added default ClustalWS or MuscleWS to remove gaps.
[jalview.git] / src / jalview / analysis / NJTree.java
index 8708f1d..d56464c 100755 (executable)
@@ -86,6 +86,41 @@ public class NJTree {
     }\r
   }\r
 \r
+  /**\r
+   *\r
+   * used when the alignment associated to a tree has changed.\r
+   *\r
+   * @param alignment Vector\r
+   */\r
+  public void UpdatePlaceHolders(Vector alignment) {\r
+    Vector leaves = new Vector();\r
+    findLeaves(top, leaves);\r
+    int sz = leaves.size();\r
+    SequenceIdMatcher seqmatcher=null;\r
+    int i=0;\r
+    while (i<sz) {\r
+      SequenceNode leaf = (SequenceNode) leaves.elementAt(i++);\r
+      if (alignment.contains(leaf.element()))\r
+        leaf.setPlaceholder(false);\r
+      else {\r
+        if (seqmatcher==null) {\r
+          // Only create this the first time we need it\r
+          SequenceI[] seqs = new SequenceI[alignment.size()];\r
+          for (int j=0; j<seqs.length; j++)\r
+            seqs[j] = (SequenceI) alignment.elementAt(j);\r
+          seqmatcher = new SequenceIdMatcher(seqs);\r
+        }\r
+        SequenceI nam = seqmatcher.findIdMatch(leaf.getName());\r
+        if (nam!=null) {\r
+          leaf.setPlaceholder(false);\r
+          leaf.setElement(nam);\r
+        } else {\r
+          leaf.setPlaceholder(true);\r
+        }\r
+      }\r
+    }\r
+  }\r
+\r
   public NJTree(SequenceI[] sequence,int start, int end) {\r
     this(sequence,"NJ","BL",start,end);\r
   }\r
@@ -395,7 +430,7 @@ public class NJTree {
                   k + 1),\r
                                                 sequence[j].getSequence(k,\r
                   k + 1));\r
-            }catch(Exception ex){System.out.println("err creating BLOSUM62 tree");}\r
+            }catch(Exception ex){System.err.println("err creating BLOSUM62 tree");ex.printStackTrace();}\r
           }\r
           distance[i][j] = (float)score;\r
           if (score > maxscore) {\r
@@ -487,6 +522,11 @@ public class NJTree {
     return found;\r
   }\r
 \r
+  /**\r
+   * printNode is mainly for debugging purposes.\r
+   *\r
+   * @param node SequenceNode\r
+   */\r
   public void printNode(SequenceNode node) {\r
     if (node == null) {\r
       return;\r