X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FConservation.java;h=eed6d0af8785119d8f94719047301ed72e064e78;hb=bf7d2036d80b4c31fa4fe0ee2e8ecb27023970ab;hp=db572ac8f8f6c1aefdefcf91c1ff48d50d1a08a1;hpb=1ecf6419aba86993b3c223bf5ec0fa79427baf85;p=jalview.git diff --git a/src/jalview/analysis/Conservation.java b/src/jalview/analysis/Conservation.java index db572ac..eed6d0a 100755 --- a/src/jalview/analysis/Conservation.java +++ b/src/jalview/analysis/Conservation.java @@ -35,13 +35,11 @@ public class Conservation { DrawableSequence consSequence; Hashtable propHash; int threshold; - Hashtable[] freqs; String name = ""; - public Conservation(String name,Hashtable[] freqs,Hashtable propHash, int threshold, Vector sequences, int start, int end) { + public Conservation(String name,Hashtable propHash, int threshold, Vector sequences, int start, int end) { this.name = name; - this.freqs = freqs; this.propHash = propHash; this.threshold = threshold; this.sequences = sequences; @@ -64,7 +62,7 @@ public class Conservation { if (sequences.elementAt(j) instanceof Sequence) { Sequence s = (Sequence)sequences.elementAt(j); - if (s.getSequence().length() > i) { + if (s.getLength() > i) { String res = s.getSequence().substring(i,i+1); if (residueHash.containsKey(res)) { @@ -121,14 +119,19 @@ public class Conservation { } } - public int countGaps(int j) { + public int countGaps(int j) + { int count = 0; - for (int i = 0; i < sequences.size();i++) { - String tmp = ((Sequence)sequences.elementAt(i)).getSequence().substring(j,j+1); - if (tmp.equals(" ") || tmp.equals(".") || tmp.equals("-")) { + for (int i = 0; i < sequences.size();i++) + { + if( j+1 > ((Sequence)sequences.elementAt(i)).getSequence().length()) + { count++; continue;} + + char c = ((Sequence)sequences.elementAt(i)).getSequence().charAt(j); + if (jalview.util.Comparison.isGap((c))) count++; - } + } return count; } @@ -140,42 +143,46 @@ public class Conservation { int totGaps = countGaps(i); float pgaps = (float)totGaps*100/(float)sequences.size(); - if (percentageGaps > pgaps) { - Hashtable resultHash = (Hashtable)total.elementAt(i); + if (percentageGaps > pgaps) + { + Hashtable resultHash = (Hashtable)total.elementAt(i-start); //Now find the verdict int count = 0; Enumeration e3 = resultHash.keys(); - while (e3.hasMoreElements()) { + while (e3.hasMoreElements()) + { String type = (String)e3.nextElement(); Integer result = (Integer)resultHash.get(type); //Do we want to count +ve conservation or +ve and -ve cons.? - if (consflag) { - if (result.intValue() == 1) { + if (consflag) + { + if (result.intValue() == 1) count++; - } - } else { - if (result.intValue() != -1) { + } + else + { + if (result.intValue() != -1) count++; - } } } - if (count < 10) { + if (count < 10) consString = consString + String.valueOf(count); - } else { + else consString = consString + "*"; - } - } else { + + } + else + { consString = consString + "-"; } } consSequence = new DrawableSequence(name,consString,start,end); - } public jalview.gui.DrawableSequence getConsSequence() {