X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fws%2Fjws2%2FAbstractJabaCalcWorker.java;h=26fe0a20ce215c830d6559ce064abc5036202fba;hb=7e441a4a9594821ec56539b29cb3b8a13bfa3c65;hp=f94d18c2c1d20a099ea385888fae38b8989bba1f;hpb=1cd51de3fa6a6949947a5faf9f579e57f165ecf1;p=jalview.git diff --git a/src/jalview/ws/jws2/AbstractJabaCalcWorker.java b/src/jalview/ws/jws2/AbstractJabaCalcWorker.java index f94d18c..26fe0a2 100644 --- a/src/jalview/ws/jws2/AbstractJabaCalcWorker.java +++ b/src/jalview/ws/jws2/AbstractJabaCalcWorker.java @@ -30,6 +30,7 @@ import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.gui.IProgressIndicator; +import jalview.schemes.ResidueProperties; import jalview.workers.AlignCalcWorker; import jalview.ws.jws2.dm.AAConSettings; import jalview.ws.jws2.dm.JabaWsParamSet; @@ -63,6 +64,11 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker 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() @@ -72,8 +78,10 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker ((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); } } @@ -158,8 +166,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker super(alignViewport, alignPanel); } - public AbstractJabaCalcWorker(Jws2Instance service, - AlignFrame alignFrame, WsParamSetI preset, List paramset) + public AbstractJabaCalcWorker(Jws2Instance service, AlignFrame alignFrame, + WsParamSetI preset, List paramset) { this(alignFrame.getCurrentView(), alignFrame.alignPanel); this.guiProgress = alignFrame; @@ -316,9 +324,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker } 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); ap.adjustAnnotationHeight(); } @@ -328,8 +335,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker catch (JobSubmissionException x) { - System.err.println("submission error with " + getServiceActionText() - + " :"); + System.err.println( + "submission error with " + getServiceActionText() + " :"); x.printStackTrace(); calcMan.disableWorker(this); } catch (ResultNotAvailableException x) @@ -438,8 +445,9 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker AnnotatedCollectionI inputSeqs) { if (alignment == null || alignment.getWidth() <= 0 - || alignment.getSequences() == null || alignment.isNucleotide() ? !nucleotidesAllowed - : !proteinAllowed) + || alignment.getSequences() == null || alignment.isNucleotide() + ? !nucleotidesAllowed + : !proteinAllowed) { return null; } @@ -464,9 +472,10 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker 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 @@ -491,7 +500,14 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker } 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 @@ -524,8 +540,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker 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])