From 5bcf9b9b906d619519ae9de88ab648a94b47e32b Mon Sep 17 00:00:00 2001 From: jprocter Date: Mon, 3 Sep 2012 17:23:40 +0100 Subject: [PATCH] JAL-974 show thresholds for disorder predictor annotation rows --- src/jalview/ws/jws2/AADisorderClient.java | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/jalview/ws/jws2/AADisorderClient.java b/src/jalview/ws/jws2/AADisorderClient.java index 8a6e9cc..f3f8ae3 100644 --- a/src/jalview/ws/jws2/AADisorderClient.java +++ b/src/jalview/ws/jws2/AADisorderClient.java @@ -4,6 +4,7 @@ import jalview.api.AlignCalcWorkerI; import jalview.bin.Cache; import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.GraphLine; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; @@ -29,6 +30,8 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements AlignCalcWorkerI { + private static final String THRESHOLD = "THRESHOLD"; + String typeName; String methodName; @@ -66,6 +69,7 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements private static String INVISIBLE = "INVISIBLE"; static { + // TODO: turn this into some kind of configuration file that's a bit easier to edit featureMap = new HashMap>(); Map fmap; featureMap.put(compbio.ws.client.Services.IUPredWS.toString(), @@ -94,13 +98,27 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements amap = new HashMap>()); amap.put("Dydx", new HashMap()); amap.get("Dydx").put(DONTCOMBINE, DONTCOMBINE); + amap.get("Dydx").put(THRESHOLD, new double[] {1, 0}); amap.put("SmoothedScore", new HashMap()); amap.get("SmoothedScore").put(INVISIBLE,INVISIBLE); amap.put("RawScore", new HashMap()); amap.get("RawScore").put(INVISIBLE,INVISIBLE); annotMap.put(compbio.ws.client.Services.DisemblWS.toString(), amap = new HashMap>()); + amap.put("COILS", new HashMap()); + amap.put("HOTLOOPS", new HashMap()); + amap.put("REM465", new HashMap()); + amap.get("COILS").put(THRESHOLD, new double[] { 1, 0.516}); + amap.get("HOTLOOPS").put(THRESHOLD, new double[] { 1, 0.6}); + amap.get("REM465").put(THRESHOLD, new double[] { 1, 0.1204}); + annotMap.put(compbio.ws.client.Services.IUPredWS.toString(), + amap = new HashMap>()); + amap.put("Long", new HashMap()); + amap.put("Short", new HashMap()); + amap.get("Long").put(THRESHOLD, new double[] { 1, 0.5}); + amap.get("Short").put(THRESHOLD, new double[] { 1, 0.5}); + } @Override @@ -197,7 +215,7 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements base, 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(THRESHOLD); if (annotTypeMap==null || annotTypeMap.get(scr.getMethod())==null || annotTypeMap.get(scr.getMethod()).get(DONTCOMBINE) == null) { { @@ -211,7 +229,14 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements } } - annot.description = service.getActionText() + " - raw scores"; + annot.description = ""+service.getActionText() + " - raw scores"; + if (thrsh!=null) + { + String threshNote=(thrsh[0]>0 ? "Above " : "Below ")+thrsh[1]+" indicates disorder"; + annot.threshold=new GraphLine((float) thrsh[1], threshNote, Color.red); + annot.description+="
"+threshNote; + } + annot.description+=""; Color col = new UserColourScheme(typeName) .createColourFromName(typeName + scr.getMethod()); for (int p = 0, ps = annot.annotations.length; p < ps; p++) -- 1.7.10.2