git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-3081 autocalculated annotation first/last leaves others unchanged
[jalview.git]
/
src
/
jalview
/
ws
/
jws2
/
AbstractJabaCalcWorker.java
diff --git
a/src/jalview/ws/jws2/AbstractJabaCalcWorker.java
b/src/jalview/ws/jws2/AbstractJabaCalcWorker.java
index
1cc6361
..
2d91377
100644
(file)
--- a/
src/jalview/ws/jws2/AbstractJabaCalcWorker.java
+++ b/
src/jalview/ws/jws2/AbstractJabaCalcWorker.java
@@
-1,6
+1,6
@@
/*
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
*
* This file is part of Jalview.
*
@@
-30,6
+30,8
@@
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.IProgressIndicator;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.IProgressIndicator;
+import jalview.gui.IProgressIndicatorHandler;
+import jalview.schemes.ResidueProperties;
import jalview.workers.AlignCalcWorker;
import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.dm.JabaWsParamSet;
import jalview.workers.AlignCalcWorker;
import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.dm.JabaWsParamSet;
@@
-63,6
+65,11
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
protected boolean submitGaps = true;
/**
protected boolean submitGaps = true;
/**
+ * by default, we filter out non-standard residues before submission
+ */
+ protected boolean filterNonStandardResidues = true;
+
+ /**
* Recover any existing parameters for this service
*/
protected void initViewportParams()
* Recover any existing parameters for this service
*/
protected void initViewportParams()
@@
-72,8
+79,10
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
((jalview.gui.AlignViewport) alignViewport).setCalcIdSettingsFor(
getCalcId(),
new AAConSettings(true, service, this.preset,
((jalview.gui.AlignViewport) alignViewport).setCalcIdSettingsFor(
getCalcId(),
new AAConSettings(true, service, this.preset,
- (arguments != null) ? JabaParamStore
- .getJwsArgsfromJaba(arguments) : null), true);
+ (arguments != null)
+ ? JabaParamStore.getJwsArgsfromJaba(arguments)
+ : null),
+ true);
}
}
}
}
@@
-113,7
+122,7
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
public List<Option> getJabaArguments()
{
public List<Option> getJabaArguments()
{
- List<Option> newargs = new ArrayList<Option>();
+ List<Option> newargs = new ArrayList<>();
if (preset != null && preset instanceof JabaWsParamSet)
{
newargs.addAll(((JabaWsParamSet) preset).getjabaArguments());
if (preset != null && preset instanceof JabaWsParamSet)
{
newargs.addAll(((JabaWsParamSet) preset).getjabaArguments());
@@
-158,8
+167,8
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
super(alignViewport, alignPanel);
}
super(alignViewport, alignPanel);
}
- public AbstractJabaCalcWorker(Jws2Instance service,
- AlignFrame alignFrame, WsParamSetI preset, List<Argument> paramset)
+ public AbstractJabaCalcWorker(Jws2Instance service, AlignFrame alignFrame,
+ WsParamSetI preset, List<Argument> paramset)
{
this(alignFrame.getCurrentView(), alignFrame.alignPanel);
this.guiProgress = alignFrame;
{
this(alignFrame.getCurrentView(), alignFrame.alignPanel);
this.guiProgress = alignFrame;
@@
-212,7
+221,26
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
progressId = System.currentTimeMillis());
}
rslt = submitToService(seqs);
progressId = System.currentTimeMillis());
}
rslt = submitToService(seqs);
+ if (guiProgress != null)
+ {
+ guiProgress.registerHandler(progressId,
+ new IProgressIndicatorHandler()
+ {
+
+ @Override
+ public boolean cancelActivity(long id)
+ {
+ cancelCurrentJob();
+ return true;
+ }
+ @Override
+ public boolean canCancel()
+ {
+ return true;
+ }
+ });
+ }
boolean finished = false;
long rpos = 0;
do
boolean finished = false;
long rpos = 0;
do
@@
-316,10
+344,10
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
}
if (collectAnnotationResultsFor(rslt))
{
}
if (collectAnnotationResultsFor(rslt))
{
- jalview.bin.Cache.log
- .debug("Updating result annotation from Job " + rslt
- + " at " + service.getUri());
+ jalview.bin.Cache.log.debug("Updating result annotation from Job "
+ + rslt + " at " + service.getUri());
updateResultAnnotation(true);
updateResultAnnotation(true);
+ ap.sortAnnotations(false);
ap.adjustAnnotationHeight();
}
}
ap.adjustAnnotationHeight();
}
}
@@
-328,26
+356,26
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
catch (JobSubmissionException x)
{
catch (JobSubmissionException x)
{
- System.err.println("submission error with " + getServiceActionText()
- + " :");
+ System.err.println(
+ "submission error with " + getServiceActionText() + " :");
x.printStackTrace();
x.printStackTrace();
- calcMan.workerCannotRun(this);
+ calcMan.disableWorker(this);
} catch (ResultNotAvailableException x)
{
System.err.println("collection error:\nJob ID: " + rslt);
x.printStackTrace();
} catch (ResultNotAvailableException x)
{
System.err.println("collection error:\nJob ID: " + rslt);
x.printStackTrace();
- calcMan.workerCannotRun(this);
+ calcMan.disableWorker(this);
} catch (OutOfMemoryError error)
{
} catch (OutOfMemoryError error)
{
- calcMan.workerCannotRun(this);
+ calcMan.disableWorker(this);
// consensus = null;
// hconsensus = null;
ap.raiseOOMWarning(getServiceActionText(), error);
} catch (Exception x)
{
// consensus = null;
// hconsensus = null;
ap.raiseOOMWarning(getServiceActionText(), error);
} catch (Exception x)
{
- calcMan.workerCannotRun(this);
+ calcMan.disableWorker(this);
// consensus = null;
// hconsensus = null;
// consensus = null;
// hconsensus = null;
@@
-365,7
+393,8
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
{
guiProgress.setProgressBar("", progressId);
}
{
guiProgress.setProgressBar("", progressId);
}
- ap.paintAlignment(true);
+ // TODO: may not need to paintAlignment again !
+ ap.paintAlignment(false, false);
}
if (msg.length() > 0)
{
}
if (msg.length() > 0)
{
@@
-438,8
+467,9
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
AnnotatedCollectionI inputSeqs)
{
if (alignment == null || alignment.getWidth() <= 0
AnnotatedCollectionI inputSeqs)
{
if (alignment == null || alignment.getWidth() <= 0
- || alignment.getSequences() == null || alignment.isNucleotide() ? !nucleotidesAllowed
- : !proteinAllowed)
+ || alignment.getSequences() == null || alignment.isNucleotide()
+ ? !nucleotidesAllowed
+ : !proteinAllowed)
{
return null;
}
{
return null;
}
@@
-450,23
+480,24
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
inputSeqs = alignment;
}
inputSeqs = alignment;
}
- List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<compbio.data.sequence.FastaSequence>();
+ List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<>();
int minlen = 10;
int ln = -1;
if (bySequence)
{
int minlen = 10;
int ln = -1;
if (bySequence)
{
- seqNames = new HashMap<String, SequenceI>();
+ seqNames = new HashMap<>();
}
gapMap = new boolean[0];
start = inputSeqs.getStartRes();
end = inputSeqs.getEndRes();
}
gapMap = new boolean[0];
start = inputSeqs.getStartRes();
end = inputSeqs.getEndRes();
- for (SequenceI sq : ((List<SequenceI>) inputSeqs.getSequences()))
+ for (SequenceI sq : (inputSeqs.getSequences()))
{
{
- if (bySequence ? sq.findPosition(end + 1)
- - sq.findPosition(start + 1) > minlen - 1 : sq.getEnd()
- - sq.getStart() > minlen - 1)
+ if (bySequence
+ ? sq.findPosition(end + 1)
+ - sq.findPosition(start + 1) > minlen - 1
+ : sq.getEnd() - sq.getStart() > minlen - 1)
{
String newname = SeqsetUtils.unique_name(seqs.size() + 1);
// make new input sequence with or without gaps
{
String newname = SeqsetUtils.unique_name(seqs.size() + 1);
// make new input sequence with or without gaps
@@
-491,7
+522,14
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
}
for (int apos : sq.gapMap())
{
}
for (int apos : sq.gapMap())
{
- gapMap[apos] = true; // aligned.
+ char sqc = sq.getCharAt(apos);
+ if (!filterNonStandardResidues
+ || (sq.isProtein() ? ResidueProperties.aaIndex[sqc] < 20
+ : ResidueProperties.nucleotideIndex[sqc] < 5))
+ {
+ gapMap[apos] = true; // aligned and real amino acid residue
+ }
+ ;
}
}
else
}
}
else
@@
-524,8
+562,8
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
FastaSequence sq = seqs.get(p);
int l = sq.getSequence().length();
// strip gapped columns
FastaSequence sq = seqs.get(p);
int l = sq.getSequence().length();
// strip gapped columns
- char[] padded = new char[realw], orig = sq.getSequence()
- .toCharArray();
+ char[] padded = new char[realw],
+ orig = sq.getSequence().toCharArray();
for (int i = 0, pp = 0; i < realw; pp++)
{
if (gapMap[pp])
for (int i = 0, pp = 0; i < realw; pp++)
{
if (gapMap[pp])
@@
-566,7
+604,7
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
protected boolean checkDone()
{
calcMan.notifyStart(this);
protected boolean checkDone()
{
calcMan.notifyStart(this);
- ap.paintAlignment(false);
+ ap.paintAlignment(false, false);
while (!calcMan.notifyWorking(this))
{
if (calcMan.isWorking(this))
while (!calcMan.notifyWorking(this))
{
if (calcMan.isWorking(this))
@@
-577,7
+615,7
@@
public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
{
if (ap != null)
{
{
if (ap != null)
{
- ap.paintAlignment(false);
+ ap.paintAlignment(false, false);
}
Thread.sleep(200);
}
Thread.sleep(200);