X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FAADisorderClient.java;h=79df6fbd590a029f17e6cb1473cc7622fb45f9ee;hb=a8f483d04205bb8273ee311c12968b7e86d205fa;hp=3c19dc52f0e9eb7ff07e0c1150359fe81c1e6815;hpb=e280466ffa0b7103da4a8ebe85aacbad354fd278;p=jalview.git diff --git a/src/jalview/ws/jws2/AADisorderClient.java b/src/jalview/ws/jws2/AADisorderClient.java index 3c19dc5..79df6fb 100644 --- a/src/jalview/ws/jws2/AADisorderClient.java +++ b/src/jalview/ws/jws2/AADisorderClient.java @@ -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.2) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * @@ -14,12 +14,13 @@ * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.ws.jws2; import jalview.api.AlignCalcWorkerI; +import jalview.bin.Cache; import jalview.datamodel.AlignmentAnnotation; - import jalview.datamodel.GraphLine; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; @@ -36,16 +37,18 @@ import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; + import compbio.data.sequence.Range; 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 +120,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()); amap.get("SmoothedScore").put(INVISIBLE, INVISIBLE); amap.put("RawScore", new HashMap()); @@ -128,10 +134,18 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements amap.put("REM465", new HashMap()); 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>()); @@ -139,13 +153,19 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements amap.put("Short", new HashMap()); 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>()); amap.put("JRonn", new HashMap()); amap.get("JRonn").put(THRESHOLD, new double[] { 1, 0.5 }); + amap.get("JRonn").put(RANGE, new float[] + { 0, 1 }); } @Override @@ -181,14 +201,24 @@ 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) { seq = seq.getDatasetSequence(); } - ; - ScoreHolder scores = scoremanager.getAnnotationForSequence(seqId); + ScoreHolder scores = null; + try { + scores = scoremanager.getAnnotationForSequence(seqId); + } catch (Exception q) + { + Cache.log + .info("Couldn't recover disorder prediction for sequence " + + seq.getName() + + "(Prediction name was " + + seqId+")" + + "\nSee http://issues.jalview.org/browse/JAL-1319 for one possible reason why disorder predictions might fail."); + } float last = Float.NaN, val = Float.NaN; int lastAnnot = ourAnnot.size(); if (scores!=null && scores.scores!=null) { @@ -243,16 +273,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 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)