From: Jim Procter Date: Fri, 11 Oct 2013 11:24:08 +0000 (+0100) Subject: Merge branch 'JAL-1164_disorderforselection' into Release_2_8_1_Branch X-Git-Tag: Jalview_2_9~200^2~14 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=b1ec3caa00df9beb437ca31647268158a79748c5;hp=422c5eed9a3d76a2f2a22aa2fc76a40350861f5c;p=jalview.git Merge branch 'JAL-1164_disorderforselection' into Release_2_8_1_Branch Conflicts: src/jalview/api/AlignViewportI.java src/jalview/ws/jws2/JabawsAlignCalcWorker.java --- diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index 7b545c4..70663aa 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -1488,4 +1488,13 @@ public class Alignment implements AlignmentI hasRNAStructure = true; } } + @Override +public int getEndRes() +{ + return getWidth()-1; +}@Override +public int getStartRes() +{ + return 0; +} } diff --git a/src/jalview/datamodel/SequenceCollectionI.java b/src/jalview/datamodel/SequenceCollectionI.java index c5cee01..f0d7284 100644 --- a/src/jalview/datamodel/SequenceCollectionI.java +++ b/src/jalview/datamodel/SequenceCollectionI.java @@ -29,4 +29,16 @@ public interface SequenceCollectionI int getWidth(); + /** + * @return the first column included in this collection. Runs from 0<=i 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) {