git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-1982 defensive checks for null annotations array
[jalview.git]
/
src
/
jalview
/
analysis
/
Conservation.java
diff --git
a/src/jalview/analysis/Conservation.java
b/src/jalview/analysis/Conservation.java
index
76323bc
..
7b3ce25
100755
(executable)
--- a/
src/jalview/analysis/Conservation.java
+++ b/
src/jalview/analysis/Conservation.java
@@
-235,10
+235,7
@@
public class Conservation
c = '-';
}
c = '-';
}
- if (!canonicaliseAa && 'a' <= c && c <= 'z')
- {
- c -= (32); // 32 = 'a' - 'A'
- }
+ c = toUpperCase(c);
}
values[c]++;
}
}
values[c]++;
}
@@
-280,8
+277,7
@@
public class Conservation
resultHash.put(type, ht.get("-"));
}
}
resultHash.put(type, ht.get("-"));
}
}
- else if (((Integer) resultHash.get(type)).equals(ht
- .get(res)) == false)
+ else if (((Integer) resultHash.get(type)).equals(ht.get(res)) == false)
{
resultHash.put(type, new Integer(-1));
}
{
resultHash.put(type, new Integer(-1));
}
@@
-327,6
+323,7
@@
public class Conservation
}
else
{
}
else
{
+ c = toUpperCase(c);
nres++;
if (nres == 1)
nres++;
if (nres == 1)
@@
-348,6
+345,22
@@
public class Conservation
}
/**
}
/**
+ * Returns the upper-cased character if between 'a' and 'z', else the
+ * unchanged value
+ *
+ * @param c
+ * @return
+ */
+ char toUpperCase(char c)
+ {
+ if ('a' <= c && c <= 'z')
+ {
+ c -= (32); // 32 = 'a' - 'A'
+ }
+ return c;
+ }
+
+ /**
* Calculates the conservation sequence
*
* @param consflag
* Calculates the conservation sequence
*
* @param consflag
@@
-374,14
+387,14
@@
public class Conservation
{
consString.append('-');
}
{
consString.append('-');
}
- consSymbs = new String[end-start+1];
+ consSymbs = new String[end - start + 1];
for (int i = start; i <= end; i++)
{
gapcons = countConsNGaps(i);
totGaps = gapcons[1];
pgaps = ((float) totGaps * 100) / sequences.length;
for (int i = start; i <= end; i++)
{
gapcons = countConsNGaps(i);
totGaps = gapcons[1];
pgaps = ((float) totGaps * 100) / sequences.length;
- consSymbs[i-start]=new String();
-
+ consSymbs[i - start] = new String();
+
if (percentageGaps > pgaps)
{
resultHash = total[i - start];
if (percentageGaps > pgaps)
{
resultHash = total[i - start];
@@
-398,7
+411,7
@@
public class Conservation
{
if (result.intValue() == 1)
{
{
if (result.intValue() == 1)
{
- consSymbs[i-start] = type+" "+consSymbs[i-start];
+ consSymbs[i - start] = type + " " + consSymbs[i - start];
count++;
}
}
count++;
}
}
@@
-406,14
+419,17
@@
public class Conservation
{
if (result.intValue() != -1)
{
{
if (result.intValue() != -1)
{
- {
- if (result.intValue()==0) {
- consSymbs[i-start] = consSymbs[i-start]+ " !"+type;
- } else {
- consSymbs[i-start] = type+" "+consSymbs[i-start];
- }
+ {
+ if (result.intValue() == 0)
+ {
+ consSymbs[i - start] = consSymbs[i - start] + " !" + type;
+ }
+ else
+ {
+ consSymbs[i - start] = type + " " + consSymbs[i - start];
+ }
}
}
-
+
count++;
}
}
count++;
}
}
@@
-698,10
+714,12
@@
public class Conservation
float vprop = value - min;
vprop /= max;
float vprop = value - min;
vprop /= max;
+ int consp = i - start;
+ String conssym = (value > 0 && consp > -1 && consp < consSymbs.length) ? consSymbs[consp]
+ : "";
conservation.annotations[i] = new Annotation(String.valueOf(c),
conservation.annotations[i] = new Annotation(String.valueOf(c),
- consSymbs[i-start], ' ', value, new Color(minR
- + (maxR * vprop), minG + (maxG * vprop), minB
- + (maxB * vprop)));
+ conssym, ' ', value, new Color(minR + (maxR * vprop), minG
+ + (maxG * vprop), minB + (maxB * vprop)));
// Quality calc
if (quality2 != null)
// Quality calc
if (quality2 != null)