public vconsensus available for PID and Blosum
authoramwaterhouse <Andrew Waterhouse>
Fri, 15 Apr 2005 14:58:13 +0000 (14:58 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 15 Apr 2005 14:58:13 +0000 (14:58 +0000)
src/jalview/gui/AlignViewport.java

index b661b87..7fd7461 100755 (executable)
@@ -75,6 +75,7 @@ public class AlignViewport
    showSequenceFeatures = b;\r
  }\r
 \r
+  public Vector vconsensus;\r
   AlignmentAnnotation consensus;\r
   AlignmentAnnotation conservation;\r
   AlignmentAnnotation quality;\r
@@ -157,11 +158,25 @@ public class AlignViewport
   {\r
     Annotation [] annotations = new Annotation[alignment.getWidth()];\r
 \r
-    Vector cons = alignment.getAAFrequency();\r
+    // this routine prevents vconsensus becoming a new object each time\r
+    // consenus is calculated. Important for speed of Blosum62\r
+    // and PID colouring of alignment\r
+    if(vconsensus == null)\r
+        vconsensus = alignment.getAAFrequency();\r
+    else\r
+    {\r
+        Vector temp = alignment.getAAFrequency();\r
+        vconsensus.clear();\r
+        Enumeration e = temp.elements();\r
+        while(e.hasMoreElements())\r
+        {\r
+          vconsensus.add(e.nextElement());\r
+        }\r
+    }\r
     Hashtable hash = null;\r
     for (int i = 0; i<alignment.getWidth(); i++)\r
     {\r
-        hash = (Hashtable) cons.elementAt(i);\r
+        hash = (Hashtable) vconsensus.elementAt(i);\r
         float value = Float.parseFloat(hash.get("maxCount").toString());\r
         value /= Float.parseFloat(hash.get("size").toString());\r
 \r
@@ -190,32 +205,6 @@ public class AlignViewport
 \r
   }\r
 \r
-  public String getVisibleConsensus()\r
-  {\r
-    return visibleConsensus;\r
-  }\r
-\r
-  String visibleConsensus;\r
-  Vector consensusV = new Vector();\r
-  public Vector getConsensus(boolean recalculate)\r
-  {\r
-    if(recalculate || consensusV.size()<1)\r
-    {\r
-      consensusV = alignment.getAAFrequency();\r
-      StringBuffer sb = new StringBuffer();\r
-      Hashtable hash = null;\r
-      for (int i = 0, sz=consensusV.size(); i < sz; i++)\r
-      {\r
-        hash = (Hashtable) consensusV.elementAt(i);\r
-        sb.append(hash.get("maxResidue").toString().charAt(0));\r
-      }\r
-      visibleConsensus = sb.toString();\r
-    }\r
-\r
-\r
-    return consensusV;\r
-  }\r
-\r
 \r
   public SequenceGroup getSelectionGroup()\r
   {\r