1 package jalview.ws.jws2;
3 import jalview.api.AlignCalcWorkerI;
4 import jalview.datamodel.SequenceFeature;
5 import jalview.datamodel.SequenceI;
6 import jalview.gui.AlignFrame;
7 import jalview.ws.jws2.jabaws2.Jws2Instance;
8 import jalview.ws.params.WsParamSetI;
10 import java.util.Iterator;
11 import java.util.List;
13 import compbio.data.sequence.Range;
14 import compbio.data.sequence.Score;
15 import compbio.data.sequence.ScoreManager.ScoreHolder;
16 import compbio.metadata.Argument;
18 public class AADisorderClient extends JabawsAlignCalcWorker implements
30 public AADisorderClient(Jws2Instance sh, AlignFrame alignFrame,
31 WsParamSetI preset, List<Argument> paramset)
33 super(sh, alignFrame, preset, paramset);
36 methodName = sh.serviceType;
40 nucleotidesAllowed = false;
41 proteinAllowed = true;
46 public String getServiceActionText()
48 return "Submitting amino acid sequences for disorder prediction.";
52 public void updateResultAnnotation(boolean immediate)
55 if (immediate || !calcMan.isWorking(this) && scoremanager != null)
57 boolean dispFeatures = false;
58 for (String seqId : seqNames.keySet())
60 SequenceI dseq, seq = seqNames.get(seqId);
61 int base = seq.getStart() - 1;
62 while ((dseq = seq).getDatasetSequence() != null)
64 seq = seq.getDatasetSequence();
67 ScoreHolder scores = scoremanager.getAnnotationForSequence(seqId);
69 for (Score scr : scores.scores)
72 if (scr.getRanges() != null && scr.getRanges().size() > 0)
74 Iterator<Float> vals = scr.getScores().iterator();
75 // make features on sequence
76 for (Range rn : scr.getRanges())
82 sf = new SequenceFeature(typeName + "(" + scr.getMethod()
83 + ")", "Disordered Region", base + rn.from, base
84 + rn.to, vals.next().floatValue(), methodName);
88 sf = new SequenceFeature(typeName + "(" + scr.getMethod()
89 + ")", "Disordered Region", null, base + rn.from,
90 base + rn.to, methodName);
92 dseq.addSequenceFeature(sf);
98 Iterator<Float> vals = scr.getScores().iterator();
99 for (int start = base + 1; vals.hasNext(); start++)
101 SequenceFeature sf = new SequenceFeature(typeName + "("
102 + scr.getMethod() + ")", "Disordered Region", start,
103 start, vals.next().floatValue(), methodName);
104 dseq.addSequenceFeature(sf);
113 af.alignPanel.av.setShowSequenceFeatures(true);
114 ap.paintAlignment(true);
118 * else { ap.paintAlignment(true); }