X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJabawsAlignCalcWorker.java;h=926256d5542376f03600da909a5f2ee1f23be999;hb=51f4e1c750d0de8937e69788f7b14c6120fd310f;hp=58cb3acd29cc4f81b0e233d73984bdf8355a1897;hpb=6d981e3a3cac0e7f487d2b3d40e45cfd6ca8435c;p=jalview.git
diff --git a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java
index 58cb3ac..926256d 100644
--- a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java
+++ b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java
@@ -1,14 +1,30 @@
+/*
+ * 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.analysis.AlignSeq;
import jalview.analysis.SeqsetUtils;
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
-import jalview.bin.Cache;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
+import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.Annotation;
-import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.IProgressIndicator;
@@ -17,15 +33,12 @@ import jalview.ws.jws2.dm.JabaWsParamSet;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.WsParamSetI;
-import java.awt.Color;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import com.sun.xml.internal.ws.client.ClientTransportException;
-
import compbio.data.msa.SequenceAnnotation;
import compbio.data.sequence.FastaSequence;
import compbio.data.sequence.Score;
@@ -82,7 +95,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
}
/**
- * reconfigure and restart the AAConsClient. This method will spawn a new
+ * reconfigure and restart the AAConClient. This method will spawn a new
* thread that will wait until any current jobs are finished, modify the
* parameters and restart the conservation calculation with the new values.
*
@@ -137,7 +150,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
return;
}
List seqs = getInputSequences(alignViewport
- .getAlignment());
+ .getAlignment(), bySequence ? alignViewport.getSelectionGroup() : null);
if (seqs == null)
{
@@ -164,7 +177,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
} catch (WrongParameterException x)
{
throw new JobSubmissionException(
- "Invalid paremeter set. Check Jalview implementation.", x);
+ "Invalid parameter set. Check Jalview implementation.", x);
}
}
@@ -177,7 +190,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
{
finished = true;
}
- if (calcMan.isPending(this) && this instanceof AAConsClient)
+ if (calcMan.isPending(this) && this instanceof AAConClient)
{
finished = true;
// cancel this job and yield to the new job
@@ -189,7 +202,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
}
else
{
- System.err.println("FAILED TO CANCELL AACon job: " + rslt);
+ System.err.println("FAILED TO CANCEL AACon job: " + rslt);
}
} catch (Exception x)
@@ -210,7 +223,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
try
{
stats = aaservice.pullExecStatistics(rslt, rpos);
- } catch (Exception x)
+ } catch (Exception x)
{
if (x.getMessage().contains(
@@ -227,10 +240,16 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
if (--serverErrorsLeft > 0)
{
retry = true;
- try {
+ try
+ {
Thread.sleep(200);
- } catch (InterruptedException q) {};
- } else {
+ } catch (InterruptedException q)
+ {
+ }
+ ;
+ }
+ else
+ {
throw x;
}
}
@@ -255,7 +274,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
;
}
} while (!finished);
- if (serverErrorsLeft>0)
+ if (serverErrorsLeft > 0)
{
try
{
@@ -271,6 +290,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
.debug("Updating result annotation from Job " + rslt
+ " at " + service.getUri());
updateResultAnnotation(true);
+ ap.adjustAnnotationHeight();
}
}
}
@@ -360,8 +380,10 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
boolean[] gapMap;
int realw;
+
+ int start,end;
- public List getInputSequences(AlignmentI alignment)
+ public List getInputSequences(AlignmentI alignment, AnnotatedCollectionI inputSeqs)
{
if (alignment == null || alignment.getWidth() <= 0
|| alignment.getSequences() == null
@@ -371,6 +393,11 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
{
return null;
}
+ if (inputSeqs==null || inputSeqs.getWidth()<=0 || inputSeqs.getSequences()==null || inputSeqs.getSequences().size()<1)
+ {
+ inputSeqs = alignment;
+ }
+
List seqs = new ArrayList();
int minlen = 10;
@@ -380,9 +407,12 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
seqNames = new HashMap();
}
gapMap = new boolean[0];
- for (SequenceI sq : ((List) alignment.getSequences()))
+ start=inputSeqs.getStartRes();
+ end=inputSeqs.getEndRes();
+
+ for (SequenceI sq : (List) inputSeqs.getSequences())
{
- if (sq.getEnd() - sq.getStart() > minlen - 1)
+ if (sq.findPosition(end+1) -sq.findPosition(start+1) > minlen - 1)
{
String newname = SeqsetUtils.unique_name(seqs.size() + 1);
// make new input sequence with or without gaps
@@ -414,7 +444,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
{
seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
AlignSeq.extractGaps(jalview.util.Comparison.GapChars,
- sq.getSequenceAsString())));
+ sq.getSequenceAsString(start,end+1))));
}
if (seq.getSequence().length() > ln)
{
@@ -433,8 +463,8 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
}
}
// try real hard to return something submittable
- // TODO: some of AAcons measures need a minimum of two or three amino
- // acids at each position, and aacons doesn't gracefully degrade.
+ // TODO: some of AAcon measures need a minimum of two or three amino
+ // acids at each position, and AAcon doesn't gracefully degrade.
for (int p = 0; p < seqs.size(); p++)
{
FastaSequence sq = seqs.get(p);
@@ -528,8 +558,8 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
// annotation.setCalcId(calcId);
AlignmentAnnotation annotation = alignViewport.getAlignment()
.findOrCreateAnnotation(typeName, calcId, false, dseq, null);
- constructAnnotationFromScore(annotation, base, dseq.getLength(), scr);
- annotation.createSequenceMapping(dseq, dseq.findPosition(base), false);
+ constructAnnotationFromScore(annotation, 0, dseq.getLength(), scr);
+ annotation.createSequenceMapping(dseq, base, false);
annotation.adjustForAlignment();
dseq.addAlignmentAnnotation(annotation);
ourAnnot.add(annotation);
@@ -542,7 +572,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
Annotation[] elm = new Annotation[alWidth];
Iterator vals = scr.getScores().iterator();
float m = 0f, x = 0f;
- for (int i = base; vals.hasNext(); i++)
+ for (int i = 0; vals.hasNext(); i++)
{
float val = vals.next().floatValue();
if (i == 0)