X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequence.java;h=d35cbe851af4a23ed6033ae791fb8f87c9968164;hb=d4ede6b61d4abab78200f334d8df07879dfe6741;hp=18755572deb5f08171d8867b8ae915354e8e74c7;hpb=1ecf6419aba86993b3c223bf5ec0fa79427baf85;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index 1875557..d35cbe8 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -1,9 +1,13 @@ package jalview.datamodel; - +import jalview.analysis.*; import java.awt.*; +import java.util.StringTokenizer; +import MCview.*; + -public class Sequence implements SequenceI { +public class Sequence implements SequenceI +{ protected String name; protected String sequence; protected int start; @@ -11,7 +15,55 @@ public class Sequence implements SequenceI { protected String description; protected int charHeight; protected String displayId; - protected Color color = Color.black; + protected Color color = Color.white; + PDBfile pdb; + public int maxchain = -1; + + public int pdbstart; + public int pdbend; + public int seqstart; + public int seqend; + public void setPDBfile(PDBfile pdb) + { + this.pdb = pdb; + int max = -10; + maxchain = -1; + + for (int i=0; i < pdb.chains.size(); i++) { + + System.out.println("PDB sequence = " + ((PDBChain)pdb.chains.elementAt(i)).sequence); + // Now lets compare the sequences to get + // the start and end points. + + + StringTokenizer str = new StringTokenizer(sequence, "."); + String newString = ""; + + while (str.hasMoreTokens()) { + newString += str.nextToken(); + } + // Align the sequence to the pdb + AlignSeq as = new AlignSeq(this,((PDBChain)pdb.chains.elementAt(i)).sequence,"pep"); + as.calcScoreMatrix(); + as.traceAlignment(); + as.printAlignment(); + + System.out.println("Score = " + as.maxscore); + if (as.maxscore > max) { + System.out.println("New max score"); + max = as.maxscore; + maxchain = i; + + pdbstart = as.seq2start; + pdbend = as.seq2end; + seqstart = as.seq1start - 1 ; + seqend = as.seq1end -1; + } + + System.out.println("PDB start/end " + pdbstart + " " + pdbend); + System.out.println("SEQ start/end " + seqstart + " " + seqend); + } + } public Sequence(String name, String sequence, int start, int end) { @@ -92,19 +144,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) { @@ -112,12 +163,13 @@ public class Sequence implements SequenceI { int j = 0; int pos = start; - while (j < i) { - String s = sequence.substring(j,j+1); + while (j < i) + { + char c = sequence.charAt(j); - if (!(s.equals(".") || s.equals("-") || s.equals(" "))) { + if (!jalview.util.Comparison.isGap((c))) pos++; - } + j++; } return pos;