X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequence.java;h=8928425f607b54b4cff148bc8d93d3b19ec9e921;hb=5d2e589a842cf831e4fdeff6b8ed7e7ce6729fd5;hp=aad8014f54d59742706e62cdf867c9eea7aeb0f5;hpb=cc36a8838d643b1866e14f16366a0d0625aab7a1;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index aad8014..8928425 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -1,18 +1,40 @@ package jalview.datamodel; - +import jalview.analysis.*; import java.awt.*; +import java.util.*; +import MCview.*; + public class Sequence implements SequenceI { - protected String name; - protected String sequence; - protected int start; - protected int end; - protected String description; - protected int charHeight; - protected String displayId; - protected Color color = Color.white; + protected String name; + protected String sequence; + protected String description; + protected int start; + protected int end; + protected String displayId; + protected Color color = Color.white; + String pdbId; + + public Vector sequenceFeatures = new Vector(); + public void setSequenceFeatures(Vector v) + { + sequenceFeatures = v; + } + + public Vector getSequenceFeatures() + {return sequenceFeatures; } + + public void setPDBId(String id) + { + pdbId = id; + } + public String getPDBId() + { + return pdbId; + } + public Sequence(String name, String sequence, int start, int end) { @@ -69,6 +91,8 @@ public class Sequence implements SequenceI return this.sequence; } public String getSequence(int start,int end) { + if(end>sequence.length()) + end = sequence.length(); return this.sequence.substring(start,end); } @@ -93,19 +117,18 @@ public class Sequence implements SequenceI while (i< sequence.length() && j <= end && j <= pos) { - String s = sequence.substring(i,i+1); + char c = sequence.charAt(i); - if (!(s.equals(".") || s.equals("-") || s.equals(" "))) { + if (!jalview.util.Comparison.isGap((c))) j++; - } + i++; } - if (j == end && j < pos) { + if (j == end && j < pos) return end+1; - } else { - + else return i; - } + } public int findPosition(int i) { @@ -113,21 +136,40 @@ public class Sequence implements SequenceI int j = 0; int pos = start; - while (j < i) { - String s = sequence.substring(j,j+1); - - if (!(s.equals(".") || s.equals("-") || s.equals(" "))) { + while (j < i && j