X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fws%2Fjws2%2FJabawsAlignCalcWorker.java;h=a11cc358f4ce579b16aeccabd405f20c7385aadf;hb=7526a82c54f0ef8434f826a1f2323ca5ec1eb3b1;hp=7ee6e08aca7bb59d7f96d1a2b8975e0769a1ea5c;hpb=f11c195585d2c4b6671b6e349fc152b8eb1fbc50;p=jalview.git diff --git a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java index 7ee6e08..a11cc35 100644 --- a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java +++ b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java @@ -20,7 +20,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.sun.xml.internal.ws.developer.ServerSideException; import compbio.data.msa.SequenceAnnotation; import compbio.data.sequence.FastaSequence; import compbio.data.sequence.ScoreManager; @@ -191,20 +190,14 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker } catch (Exception x) { - if (x.getCause() instanceof ServerSideException) + if (x.getMessage().contains( + "Position in a file could not be negative!")) { - if (x.getMessage().contains("Position in a file could not be negative!")) - { - // squash index out of bounds exception- seems to happen for - // disorder predictors which don't (apparently) produce any - // progress information and JABA server throws an exception - // because progress length is -1. - stats = null; - } - else - { - throw x; - } + // squash index out of bounds exception- seems to happen for + // disorder predictors which don't (apparently) produce any + // progress information and JABA server throws an exception + // because progress length is -1. + stats = null; } else { @@ -298,19 +291,20 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker boolean nucleotidesAllowed = false; boolean proteinAllowed = false; - + /** * record sequences for mapping result back to afterwards */ - protected boolean bySequence=false; + protected boolean bySequence = false; + + Map seqNames; - Map seqNames; public List getInputSequences(AlignmentI alignment) { if (alignment == null || alignment.getWidth() <= 0 || alignment.getSequences() == null - || (alignedSeqs && !alignment.isAligned()) +// || (alignedSeqs && !alignment.isAligned() && !submitGaps) || alignment.isNucleotide() ? !nucleotidesAllowed : !proteinAllowed) { @@ -319,9 +313,10 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker List seqs = new ArrayList(); int minlen = 10; + int ln=-1; if (bySequence) { - seqNames=new HashMap(); + seqNames = new HashMap(); } for (SequenceI sq : ((List) alignment.getSequences())) { @@ -330,14 +325,41 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker { String newname = SeqsetUtils.unique_name(seqs.size() + 1); // make new input sequence with or without gaps - if (seqNames!=null) { - seqNames.put(newname,sq); + if (seqNames != null) + { + seqNames.put(newname, sq); } - seqs.add(new compbio.data.sequence.FastaSequence(newname, + FastaSequence seq; + seqs.add(seq=new compbio.data.sequence.FastaSequence(newname, (submitGaps) ? sq.getSequenceAsString() : AlignSeq .extractGaps(jalview.util.Comparison.GapChars, sq.getSequenceAsString()))); + if (seq.getSequence().length()>ln) + { + ln = seq.getSequence().length(); + } + } + } + if (alignedSeqs && submitGaps) + { + // 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. + for (int p=0; p