X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=161c0108823e6ce78bf184be77e32d031a55083a;hb=d6e1bbede5adc04f34c969213ac6a4c6d9e5d34a;hp=ecdf2bce7313e603b86fdd444d8cbb0ce542a978;hpb=df9b85c1cf39894039018499fe802406cc37f209;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index ecdf2bc..161c010 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -113,6 +113,62 @@ public class SequenceGroup endRes = end; } + public SequenceI [] getSelectionAsNewSequences(AlignmentI align) + { + int iSize = sequences.size(); + SequenceI [] seqs = new SequenceI[iSize]; + SequenceI [] inorder = getSequencesInOrder(align); + + char ch; + int sres, eres; + + for (int i = 0; i < iSize; i++) + { + SequenceI seq = inorder[i]; + + //FIND START RES + //Returns residue following index if gap + sres = seq.findPosition(startRes); + + //FIND END RES + //Need to find the residue preceeding index if gap + eres = 0; + + for (int j = 0; j < endRes + 1 && j < seq.getLength(); j++) + { + ch = seq.getCharAt(j); + if (!jalview.util.Comparison.isGap( (ch))) + { + eres++; + } + } + + if (eres > 0) + { + eres += seq.getStart() - 1; + } + + seqs[i] = new Sequence(seq.getName(), + seq.getSequence(startRes, endRes + 1), + sres, + eres); + seqs[i].setDescription(seq.getDescription()); + seqs[i].setDBRef(seq.getDBRef()); + seqs[i].setSequenceFeatures(seq.getSequenceFeatures()); + if (seq.getDatasetSequence() != null) + seqs[i].setDatasetSequence(seq.getDatasetSequence()); + + if(seq.getAnnotation()!=null) + { + for(int a=0; a