X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJabawsAlignCalcWorker.java;h=926256d5542376f03600da909a5f2ee1f23be999;hb=51f4e1c750d0de8937e69788f7b14c6120fd310f;hp=f5021e68657b73f31023314d223edc2120aa57e6;hpb=fcbde984c9f28918be841287622bd128a9b82737;p=jalview.git diff --git a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java index f5021e6..926256d 100644 --- a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java +++ b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java @@ -23,6 +23,7 @@ import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; +import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.Annotation; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; @@ -149,7 +150,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker return; } List seqs = getInputSequences(alignViewport - .getAlignment()); + .getAlignment(), bySequence ? alignViewport.getSelectionGroup() : null); if (seqs == null) { @@ -176,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); } } @@ -379,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 @@ -390,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; @@ -399,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 @@ -433,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) {