X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=24a2b2ccc26566999129eb47dc53979a1314341a;hb=7c4490e74c3b5439f8eb3aceb539a8a03ce8df82;hp=acd0b513a33f0d60ccd97353bfe112b437bc589b;hpb=17db615607025afd96b0da5227dee6eba38c69c0;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index acd0b51..24a2b2c 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -26,8 +26,7 @@ import jalview.analysis.*; import jalview.schemes.*; /** - * DOCUMENT ME! - * + * Collects a set contiguous ranges on a set of sequences * @author $author$ * @version $Revision$ */ @@ -39,7 +38,7 @@ public class SequenceGroup Vector aaFrequency; boolean displayBoxes = true; boolean displayText = true; - boolean colourText = true; + boolean colourText = false; private Vector sequences = new Vector(); int width = -1; @@ -63,14 +62,14 @@ public class SequenceGroup /** * Creates a new SequenceGroup object. * - * @param sequences DOCUMENT ME! - * @param groupName DOCUMENT ME! - * @param scheme DOCUMENT ME! - * @param displayBoxes DOCUMENT ME! - * @param displayText DOCUMENT ME! - * @param colourText DOCUMENT ME! - * @param start DOCUMENT ME! - * @param end DOCUMENT ME! + * @param sequences + * @param groupName + * @param scheme + * @param displayBoxes + * @param displayText + * @param colourText + * @param start first column of group + * @param end last column of group */ public SequenceGroup(Vector sequences, String groupName, ColourSchemeI scheme, boolean displayBoxes, @@ -93,34 +92,62 @@ public class SequenceGroup int iSize = sequences.size(); SequenceI[] seqs = new SequenceI[iSize]; SequenceI[] inorder = getSequencesInOrder(align); - - for (int i = 0; i < iSize; i++) + + for (int i = 0,ipos=0; i < inorder.length; i++) { SequenceI seq = inorder[i]; - seqs[i] = seq.getSubSequence(startRes, endRes+1); - - seqs[i].setDescription(seq.getDescription()); - seqs[i].setDBRef(seq.getDBRef()); - seqs[i].setSequenceFeatures(seq.getSequenceFeatures()); - if (seq.getDatasetSequence() != null) + seqs[ipos] = seq.getSubSequence(startRes, endRes+1); + if (seqs[ipos]!=null) { - seqs[i].setDatasetSequence(seq.getDatasetSequence()); - } + seqs[ipos].setDescription(seq.getDescription()); + seqs[ipos].setDBRef(seq.getDBRef()); + seqs[ipos].setSequenceFeatures(seq.getSequenceFeatures()); + if (seq.getDatasetSequence() != null) + { + seqs[ipos].setDatasetSequence(seq.getDatasetSequence()); + } - if (seq.getAnnotation() != null) - { - for (int a = 0; a < seq.getAnnotation().length; a++) + if (seq.getAnnotation() != null) { - AlignmentAnnotation newannot = new AlignmentAnnotation(seq.getAnnotation()[a]); - newannot.restrict(startRes, endRes); - newannot.setSequenceRef(seqs[i]); - newannot.adjustForAlignment(); - seqs[i].addAlignmentAnnotation(newannot); + AlignmentAnnotation[] alann = align.getAlignmentAnnotation(); + // Only copy annotation that is either a score or referenced by the alignment's annotation vector + for (int a = 0; a < seq.getAnnotation().length; a++) + { + AlignmentAnnotation tocopy = seq.getAnnotation()[a]; + if (alann!=null) + { + boolean found=false; + for (int pos=0;pos