X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=f640ebbb66a19906392b18c37217c3038dd4f595;hb=7b3241c464d774516c4295a5023f4aef7939298e;hp=2eed50cb6f359c2919f432bdb3cf7345cae0bf6d;hpb=3193f6774b111974d609ea5d5adc95ff50f92b68;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 2eed50c..f640ebb 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -49,6 +49,10 @@ public class SequenceGroup int startRes = 0; int endRes = 0; Color outlineColour = Color.black; + public int thresholdTextColour = 0; + public Color textColour = Color.black; + public Color textColour2 = Color.white; + /** * Creates a new SequenceGroup object. @@ -119,39 +123,16 @@ public class SequenceGroup 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); + seq.findPosition(startRes), + findEndRes(seq)); + seqs[i].setDescription(seq.getDescription()); seqs[i].setDBRef(seq.getDBRef()); seqs[i].setSequenceFeatures(seq.getSequenceFeatures()); @@ -169,6 +150,34 @@ public class SequenceGroup } + /** + * If sequence ends in gaps, the end residue can + * be correctly calculated here + * @param seq SequenceI + * @return int + */ + public int findEndRes(SequenceI seq) + { + int eres = 0; + char ch; + + 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; + } + + return eres; + } + public Vector getSequences(boolean includeHidden) { if(!includeHidden) @@ -196,6 +205,18 @@ public class SequenceGroup } } + public SequenceI[] getSequencesAsArray(boolean includeHidden) + { + Vector tmp = getSequences(includeHidden); + if(tmp==null) + return null; + SequenceI [] result = new SequenceI[tmp.size()]; + for(int i=0; i