X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJabawsCalcWorker.java;fp=src%2Fjalview%2Fws%2Fjws2%2FJabawsCalcWorker.java;h=8515dbc83fc936a69765f70d87eba24414917860;hb=b1ec3caa00df9beb437ca31647268158a79748c5;hp=4a78209e0da4ae9cb6d0ca8e79b70852d718934b;hpb=422c5eed9a3d76a2f2a22aa2fc76a40350861f5c;p=jalview.git diff --git a/src/jalview/ws/jws2/JabawsCalcWorker.java b/src/jalview/ws/jws2/JabawsCalcWorker.java index 4a78209..8515dbc 100644 --- a/src/jalview/ws/jws2/JabawsCalcWorker.java +++ b/src/jalview/ws/jws2/JabawsCalcWorker.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; @@ -126,7 +127,7 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker return; } List seqs = getInputSequences(alignViewport - .getAlignment()); + .getAlignment(), bySequence ? alignViewport.getSelectionGroup() : null); if (seqs == null) { @@ -349,19 +350,24 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker protected Map seqNames; protected 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 - // || (alignedSeqs && !alignment.isAligned() && !submitGaps) || alignment.isNucleotide() ? !nucleotidesAllowed : !proteinAllowed) { return null; } + if (inputSeqs==null || inputSeqs.getWidth()<=0 || inputSeqs.getSequences()==null || inputSeqs.getSequences().size()<1) + { + inputSeqs = alignment; + } + List seqs = new ArrayList(); - + int minlen = 10; int ln = -1; if (bySequence) @@ -369,9 +375,13 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker seqNames = new HashMap(); } gapMap = new boolean[0]; + start=inputSeqs.getStartRes(); + end=inputSeqs.getEndRes(); + + for (SequenceI sq : ((List) alignment.getSequences())) { - if (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 @@ -403,7 +413,7 @@ public abstract class JabawsCalcWorker 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) {