package jalview.ws.jws2; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.gui.AlignFrame; import jalview.gui.AlignmentPanel; import jalview.ws.jws2.dm.AAConsSettings; import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.params.WsParamSetI; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import compbio.data.sequence.Score; import compbio.metadata.Argument; public class AAConsClient extends JabawsAlignCalcWorker { public AAConsClient(Jws2Instance service, AlignFrame alignFrame, WsParamSetI preset, List paramset) { super(service, alignFrame, preset, paramset); submitGaps = true; alignedSeqs = true; nucleotidesAllowed = false; proteinAllowed = true; gapMap=new boolean[0]; initViewportParams(); } protected void initViewportParams() { ((jalview.gui.AlignViewport) alignViewport).setCalcIdSettingsFor(getCalcId(), new AAConsSettings(true, service, this.preset, (arguments!=null) ? JabaParamStore.getJwsArgsfromJaba(arguments) : null), true); } @Override public void updateParameters(WsParamSetI newpreset, java.util.List newarguments) { super.updateParameters(newpreset, newarguments); initViewportParams(); }; public String getServiceActionText() { return "calculating Amino acid consensus using AACons service"; } /** * update the consensus annotation from the sequence profile data using * current visualization settings. */ public void updateResultAnnotation(boolean immediate) { if (immediate || !calcMan.isWorking(this) && scoremanager != null) { Map> scoremap = scoremanager.asMap(); int alWidth = alignViewport.getAlignment().getWidth(); ArrayList ourAnnot = new ArrayList(); for (String score : scoremap.keySet()) { Set scores = scoremap.get(score); for (Score scr : scores) { if (scr.getRanges() != null && scr.getRanges().size() > 0) { /** * annotation in range annotation = findOrCreate(scr.getMethod(), * true, null, null); Annotation[] elm = new Annotation[alWidth]; * Iterator vals = scr.getScores().iterator(); for (Range rng * : scr.getRanges()) { float val = vals.next().floatValue(); for * (int i = rng.from; i <= rng.to; i++) { elm[i] = new * Annotation("", "", ' ', val); } } annotation.annotations = elm; * annotation.validateRangeAndDisplay(); */ } else { createAnnotationRowsForScores(ourAnnot, getCalcId(), alWidth, scr); } } } if (ourAnnot.size() > 0) { updateOurAnnots(ourAnnot); } } } public String getCalcId() { return SequenceAnnotationWSClient.AAConsCalcId; } public static void removeAAConsAnnotation(AlignmentPanel alignPanel) { for (AlignmentAnnotation aa: alignPanel.getAlignment().findAnnotation(SequenceAnnotationWSClient.AAConsCalcId)) { alignPanel.getAlignment().deleteAnnotation(aa); } // List // ourannots=alignPanel.getAlignment().findAnnotation(Screen3D.) // TODO Auto-generated method stub } }