// This class is used extensively in calculating alignment colourschemes\r
// that depend on the amount of conservation in each alignment column.\r
\r
+\r
public static Vector calculate(Vector sequences,int start,int end) {\r
\r
Vector result = new Vector();\r
\r
if (!jalview.util.Comparison.isGap(res.charAt(0)))\r
nongap++;\r
+ else\r
+ res = "-"; // we always use this for gaps in the property vectors\r
\r
if (residueHash.containsKey(res))\r
{\r
\r
for (int k = winstart; k <= winend; k++) {\r
String refchar = refseq.getSequence().substring(k,k+1);\r
+ if (jalview.util.Comparison.isGap(refchar.charAt(0)))\r
+ refchar="-";\r
+ else {\r
+ for (int j = 0; j < sequences.size(); j++) {\r
\r
- for (int j = 0; j < sequences.size(); j++) {\r
+ Sequence s = (Sequence)sequences.elementAt(j);\r
\r
- if (refchar.equals("-") == false) {\r
+ if (s.getSequence().length() > k) {\r
\r
- Sequence s = (Sequence)sequences.elementAt(j);\r
+ String res = s.getSequence().substring(k,k+1); // no gapchar test needed\r
\r
- if (s.getSequence().length() > k) {\r
+ if (res.equals(refchar)) {\r
+ int val = ((Integer)values.elementAt(j)).intValue();\r
+ val++;\r
+ values.setElementAt(new Integer(val),j);\r
+ }\r
+ }\r
+ }\r
+ }\r
\r
- String res = s.getSequence().substring(k,k+1);\r
+ }\r
\r
- if (res.equals(refchar)) {\r
- int val = ((Integer)values.elementAt(j)).intValue();\r
- val++;\r
- values.setElementAt(new Integer(val),j);\r
- }\r
- }\r
- }\r
- }\r
- }\r
prev = values;\r
} else {\r
int winstart = i-window/2;\r
\r
// Now substract 1 if the chars at winstart-1 match\r
\r
- if (pre_refchar.equals("-") == false && pre_char.equals(pre_refchar)) {\r
+ if (jalview.util.Comparison.isGap(pre_refchar.charAt(0)) == false\r
+ && pre_char.equals(pre_refchar)) {\r
val--;\r
}\r
\r
- if (pos_refchar.equals("-") == false && pos_char.equals(pos_refchar)) {\r
+ if (jalview.util.Comparison.isGap(pos_refchar.charAt(0)) == false\r
+ && pos_char.equals(pos_refchar)) {\r
val++;\r
}\r
\r