RNAalifoldClient updated to be more like AAConClient and now (attempts) to support...
[jalview.git] / src / jalview / ws / jws2 / JabawsAlignCalcWorker.java
index 58cb3ac..720e76a 100644 (file)
@@ -1,14 +1,29 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ */
 package jalview.ws.jws2;
 
 import jalview.analysis.AlignSeq;
 import jalview.analysis.SeqsetUtils;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
-import jalview.bin.Cache;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
-import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.gui.IProgressIndicator;
@@ -17,15 +32,12 @@ import jalview.ws.jws2.dm.JabaWsParamSet;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.WsParamSetI;
 
-import java.awt.Color;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import com.sun.xml.internal.ws.client.ClientTransportException;
-
 import compbio.data.msa.SequenceAnnotation;
 import compbio.data.sequence.FastaSequence;
 import compbio.data.sequence.Score;
@@ -82,7 +94,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
   }
 
   /**
-   * reconfigure and restart the AAConsClient. This method will spawn a new
+   * reconfigure and restart the AAConClient. This method will spawn a new
    * thread that will wait until any current jobs are finished, modify the
    * parameters and restart the conservation calculation with the new values.
    * 
@@ -164,7 +176,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
         } catch (WrongParameterException x)
         {
           throw new JobSubmissionException(
-                  "Invalid paremeter set. Check Jalview implementation.", x);
+                  "Invalid parameter set. Check Jalview implementation.", x);
 
         }
       }
@@ -177,7 +189,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
         {
           finished = true;
         }
-        if (calcMan.isPending(this) && this instanceof AAConsClient)
+        if (calcMan.isPending(this) && this instanceof AAConClient)
         {
           finished = true;
           // cancel this job and yield to the new job
@@ -189,7 +201,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
             }
             else
             {
-              System.err.println("FAILED TO CANCELL AACon job: " + rslt);
+              System.err.println("FAILED TO CANCEL AACon job: " + rslt);
             }
 
           } catch (Exception x)
@@ -210,7 +222,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
             try
             {
               stats = aaservice.pullExecStatistics(rslt, rpos);
-            }  catch (Exception x)
+            } catch (Exception x)
             {
 
               if (x.getMessage().contains(
@@ -227,10 +239,16 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
                 if (--serverErrorsLeft > 0)
                 {
                   retry = true;
-                  try {
+                  try
+                  {
                     Thread.sleep(200);
-                  } catch (InterruptedException q) {};
-                } else {
+                  } catch (InterruptedException q)
+                  {
+                  }
+                  ;
+                }
+                else
+                {
                   throw x;
                 }
               }
@@ -255,7 +273,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
           ;
         }
       } while (!finished);
-      if (serverErrorsLeft>0)
+      if (serverErrorsLeft > 0)
       {
         try
         {
@@ -271,6 +289,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
                   .debug("Updating result annotation from Job " + rslt
                           + " at " + service.getUri());
           updateResultAnnotation(true);
+          ap.adjustAnnotationHeight();
         }
       }
     }
@@ -433,8 +452,8 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
         }
       }
       // try real hard to return something submittable
-      // TODO: some of AAcons measures need a minimum of two or three amino
-      // acids at each position, and aacons doesn't gracefully degrade.
+      // TODO: some of AAcon measures need a minimum of two or three amino
+      // acids at each position, and AAcon doesn't gracefully degrade.
       for (int p = 0; p < seqs.size(); p++)
       {
         FastaSequence sq = seqs.get(p);
@@ -528,8 +547,8 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
     // annotation.setCalcId(calcId);
     AlignmentAnnotation annotation = alignViewport.getAlignment()
             .findOrCreateAnnotation(typeName, calcId, false, dseq, null);
-    constructAnnotationFromScore(annotation, base, dseq.getLength(), scr);
-    annotation.createSequenceMapping(dseq, dseq.findPosition(base), false);
+    constructAnnotationFromScore(annotation, 0, dseq.getLength(), scr);
+    annotation.createSequenceMapping(dseq, base, false);
     annotation.adjustForAlignment();
     dseq.addAlignmentAnnotation(annotation);
     ourAnnot.add(annotation);
@@ -542,7 +561,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
     Annotation[] elm = new Annotation[alWidth];
     Iterator<Float> vals = scr.getScores().iterator();
     float m = 0f, x = 0f;
-    for (int i = base; vals.hasNext(); i++)
+    for (int i = 0; vals.hasNext(); i++)
     {
       float val = vals.next().floatValue();
       if (i == 0)