start/stop for per-group consensus calculation
authorjprocter <Jim Procter>
Fri, 21 Aug 2009 11:08:47 +0000 (11:08 +0000)
committerjprocter <Jim Procter>
Fri, 21 Aug 2009 11:08:47 +0000 (11:08 +0000)
src/jalview/analysis/Conservation.java

index eb68cc4..b463f5e 100755 (executable)
@@ -594,13 +594,15 @@ public class Conservation
   }
 
   /**
-   * complete the given consensus and quuality annotation rows
+   * complete the given consensus and quuality annotation rows.
+   * Note: currently this method will enlarge the given annotation row if it is too small, otherwise will leave its length unchanged.
    * @param conservation conservation annotation row
    * @param quality2 (optional - may be null)
-   * @param alWidth extent of consensus
+   * @param istart first column for conservation
+   * @param alWidth extent of conservation
    */
   public void completeAnnotations(AlignmentAnnotation conservation,
-          AlignmentAnnotation quality2, int alWidth)
+          AlignmentAnnotation quality2, int istart, int alWidth)
   {
     char[] sequence = getConsSequence().getSequence();
     float minR;
@@ -624,12 +626,16 @@ public class Conservation
 
     char c;
 
-    conservation.annotations = new Annotation[alWidth];
+    if (conservation.annotations !=null && conservation.annotations.length<alWidth) 
+    { conservation.annotations = new Annotation[alWidth]; }
+    
 
     if (quality2 != null)
     {
       quality2.graphMax = qualityRange[1].floatValue();
-      quality2.annotations = new Annotation[alWidth];
+      if (quality2.annotations!=null && quality2.annotations.length<alWidth) {
+        quality2.annotations = new Annotation[alWidth];
+      }
       qmin = qualityRange[0].floatValue();
       qmax = qualityRange[1].floatValue();
     }