X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FAADisorderClient.java;h=d64a9564034aec46c92b87048fa638194d2c729a;hb=e1476d3c4ebb1c8f6b3ec7d46bb824b23987960e;hp=8a6e9ccd4fac41eee43ac5ed673713e191485059;hpb=378db7e2823248bd4c97af6683006cabec8b390e;p=jalview.git diff --git a/src/jalview/ws/jws2/AADisorderClient.java b/src/jalview/ws/jws2/AADisorderClient.java index 8a6e9cc..d64a956 100644 --- a/src/jalview/ws/jws2/AADisorderClient.java +++ b/src/jalview/ws/jws2/AADisorderClient.java @@ -1,9 +1,26 @@ +/* + * 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 . + */ 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; import jalview.gui.AlignFrame; @@ -23,12 +40,13 @@ import compbio.data.sequence.Range; import compbio.data.sequence.Score; import compbio.data.sequence.ScoreManager.ScoreHolder; import compbio.metadata.Argument; -import compbio.ws.client.Services; public class AADisorderClient extends JabawsAlignCalcWorker implements AlignCalcWorkerI { + private static final String THRESHOLD = "THRESHOLD"; + String typeName; String methodName; @@ -63,9 +81,12 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements private static Map>> annotMap; private static String DONTCOMBINE = "DONTCOMBINE"; + 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 +115,37 @@ 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.get("SmoothedScore").put(INVISIBLE, INVISIBLE); amap.put("RawScore", new HashMap()); - amap.get("RawScore").put(INVISIBLE,INVISIBLE); + 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 }); + 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 }); } @Override @@ -119,7 +164,7 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements /** * grouping for any annotation rows created */ - int graphGroup = 1, iGraphGroup = 1; + int graphGroup = 1; if (alignViewport.getAlignment().getAlignmentAnnotation() != null) { for (AlignmentAnnotation ala : alignViewport.getAlignment() @@ -187,18 +232,25 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements } else { - if (scr.getScores().size()==0) + if (scr.getScores().size() == 0) { continue; } AlignmentAnnotation annot = createAnnotationRowsForScores( ourAnnot, service.serviceType + " (" + scr.getMethod() - + ")", service.getServiceTypeURI()+"/"+ scr.getMethod(), aseq, - base, scr); + + ")", + 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); - - if (annotTypeMap==null || annotTypeMap.get(scr.getMethod())==null || annotTypeMap.get(scr.getMethod()).get(DONTCOMBINE) == null) + 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) { { if (!sameGroup) @@ -210,8 +262,18 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements annot.graphGroup = graphGroup; } } - - 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++) @@ -221,7 +283,7 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements annot.annotations[p].colour = col; } } - annot._linecolour=col; + annot._linecolour = col; } } if (lastAnnot + 1 == ourAnnot.size()) @@ -248,13 +310,14 @@ public class AADisorderClient extends JabawsAlignCalcWorker implements fr.setColour(ft, ggc); } } - // TODO: JAL-1150 - create sequence feature settings API for defining styles and enabling/disabling feature overlay on alignment panel + // TODO: JAL-1150 - create sequence feature settings API for defining + // styles and enabling/disabling feature overlay on alignment panel ((jalview.gui.AlignmentPanel) ap).updateFeatureRendererFrom(fr); - if (af.alignPanel==ap) + if (af.alignPanel == ap) { // only do this if the alignFrame is currently showing this view. af.setShowSeqFeatures(true); - } + } ap.paintAlignment(true); } if (ourAnnot.size() > 0)