JAL-967 JAL-1482 new feature renderer api - needs more design work
[jalview.git] / src / jalview / ws / jws2 / AADisorderClient.java
index 3c19dc5..5759cb2 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * 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
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -14,6 +14,7 @@
  * 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.ws.jws2;
 
@@ -41,11 +42,12 @@ import compbio.data.sequence.Score;
 import compbio.data.sequence.ScoreManager.ScoreHolder;
 import compbio.metadata.Argument;
 
-public class AADisorderClient extends JabawsAlignCalcWorker implements
+public class AADisorderClient extends JabawsCalcWorker implements
         AlignCalcWorkerI
 {
 
   private static final String THRESHOLD = "THRESHOLD";
+  private static final String RANGE = "RANGE";
 
   String typeName;
 
@@ -117,6 +119,9 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements
     amap.get("Dydx").put(DONTCOMBINE, DONTCOMBINE);
     amap.get("Dydx").put(THRESHOLD, new double[]
     { 1, 0 });
+    amap.get("Dydx").put(RANGE, new float[]
+            { -1, +1 });
+
     amap.put("SmoothedScore", new HashMap<String, Object>());
     amap.get("SmoothedScore").put(INVISIBLE, INVISIBLE);
     amap.put("RawScore", new HashMap<String, Object>());
@@ -128,10 +133,18 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements
     amap.put("REM465", new HashMap<String, Object>());
     amap.get("COILS").put(THRESHOLD, new double[]
     { 1, 0.516 });
+    amap.get("COILS").put(RANGE, new float[]
+            { 0, 1 });
+
     amap.get("HOTLOOPS").put(THRESHOLD, new double[]
     { 1, 0.6 });
+    amap.get("HOTLOOPS").put(RANGE, new float[]
+            { 0, 1 });
     amap.get("REM465").put(THRESHOLD, new double[]
     { 1, 0.1204 });
+    amap.get("REM465").put(RANGE, new float[]
+            { 0, 1 });
+
 
     annotMap.put(compbio.ws.client.Services.IUPredWS.toString(),
             amap = new HashMap<String, Map<String, Object>>());
@@ -139,13 +152,19 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements
     amap.put("Short", new HashMap<String, Object>());
     amap.get("Long").put(THRESHOLD, new double[]
     { 1, 0.5 });
+    amap.get("Long").put(RANGE, new float[]
+            { 0, 1 });
     amap.get("Short").put(THRESHOLD, new double[]
     { 1, 0.5 });
+    amap.get("Short").put(RANGE, new float[]
+            { 0, 1 });
     annotMap.put(compbio.ws.client.Services.JronnWS.toString(),
             amap = new HashMap<String, Map<String, Object>>());
     amap.put("JRonn", new HashMap<String, Object>());
     amap.get("JRonn").put(THRESHOLD, new double[]
     { 1, 0.5 });
+    amap.get("JRonn").put(RANGE, new float[]
+            { 0, 1 });
   }
 
   @Override
@@ -181,7 +200,7 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements
       {
         boolean sameGroup = false;
         SequenceI dseq, aseq, seq = seqNames.get(seqId);
-        int base = seq.getStart() - 1;
+        int base = seq.findPosition(start)-1;
         aseq = seq;
         while ((dseq = seq).getDatasetSequence() != null)
         {
@@ -243,16 +262,21 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements
                       service.getServiceTypeURI() + "/" + scr.getMethod(),
                       aseq, base + 1, scr);
               annot.graph = AlignmentAnnotation.LINE_GRAPH;
-              annot.visible = (annotTypeMap == null
-                      || annotTypeMap.get(scr.getMethod()) == null || annotTypeMap
-                      .get(scr.getMethod()).get(INVISIBLE) == null);
-              double[] thrsh = (annotTypeMap == null || annotTypeMap
-                      .get(scr.getMethod()) == null) ? null
-                      : (double[]) annotTypeMap.get(scr.getMethod()).get(
+              
+              Map<String,Object> styleMap = (annotTypeMap == null) ? null : annotTypeMap.get(scr.getMethod());
+              
+              annot.visible = (styleMap == null || styleMap.get(INVISIBLE) == null);
+              double[] thrsh = (styleMap==null) ? null
+                      : (double[]) styleMap.get(
                               THRESHOLD);
-              if (annotTypeMap == null
-                      || annotTypeMap.get(scr.getMethod()) == null
-                      || annotTypeMap.get(scr.getMethod()).get(DONTCOMBINE) == null)
+              float[] range = (styleMap==null) ? null : (float[]) styleMap.get(
+                      RANGE);
+              if (range!=null)
+              {
+                annot.graphMin = range[0];
+                annot.graphMax = range[1];
+              }
+              if (styleMap==null || styleMap.get(DONTCOMBINE) == null)
               {
                 {
                   if (!sameGroup)
@@ -298,7 +322,7 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements
       {
         if (dispFeatures)
         {
-          jalview.gui.FeatureRenderer fr = ((jalview.gui.AlignmentPanel) ap)
+          jalview.api.FeatureRenderer fr = ((jalview.gui.AlignmentPanel) ap)
                   .cloneFeatureRenderer();
           for (String ft : fc.keySet())
           {