From 8dc4fa1904c3f1dc25e1430b26896d05ac52a22e Mon Sep 17 00:00:00 2001 From: gmungoc Date: Mon, 26 Sep 2016 09:21:50 +0100 Subject: [PATCH] JAL-98 don't include gaps in maxResidue! --- src/jalview/analysis/AAFrequency.java | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/jalview/analysis/AAFrequency.java b/src/jalview/analysis/AAFrequency.java index cb06882..49c2340 100755 --- a/src/jalview/analysis/AAFrequency.java +++ b/src/jalview/analysis/AAFrequency.java @@ -26,6 +26,7 @@ import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; import jalview.datamodel.SequenceI; import jalview.ext.android.SparseIntArray; +import jalview.util.Comparison; import jalview.util.Format; import jalview.util.MappingUtils; import jalview.util.QuickSort; @@ -109,7 +110,7 @@ public class AAFrequency public static final void calculate(SequenceI[] sequences, int start, int end, Hashtable[] result, boolean profile) { - // long now = System.currentTimeMillis(); + long now = System.currentTimeMillis(); Hashtable residueHash; int seqCount = sequences.length; char c = '-'; @@ -138,16 +139,11 @@ public class AAFrequency { c = seq[column]; - if (c == '.' || c == ' ') - { - c = '-'; - } - - if (c == '-') + if (Comparison.isGap(c)) { // values['-']++; // values.put('-', values.get('-') + 1); - values.increment('-'); + values.add('-', 1); continue; } else if ('a' <= c && c <= 'z') @@ -158,13 +154,17 @@ public class AAFrequency nongap++; // values[c]++; // values.put(c, values.get(c) + 1); - values.increment(c); + values.add(c, 1); } else { + /* + * here we count as a gap if the sequence doesn't + * reach this column (is that correct?) + */ // values['-']++; // values.put('-', values.get('-') + 1); - values.increment('-'); + values.add('-', 1); } } if (seqCount == 1) @@ -180,7 +180,7 @@ public class AAFrequency { int v = values.keyAt(k); int count = values.valueAt(k); // values[v]; - if (count < 1 || count < maxCount) + if (v == '-' || count < 1 || count < maxCount) { continue; } @@ -221,10 +221,10 @@ public class AAFrequency result[column] = residueHash; - profileSizes.increment(values.size()); + profileSizes.add(values.size(), 1); } - // long elapsed = System.currentTimeMillis() - now; - // System.out.println(elapsed); + long elapsed = System.currentTimeMillis() - now; + System.out.println(elapsed); } /** @@ -302,7 +302,7 @@ public class AAFrequency boolean ignoreGapsInConsensusCalculation, boolean includeAllConsSymbols, char[] alphabet, long nseq) { - // long now = System.currentTimeMillis(); + long now = System.currentTimeMillis(); if (consensus == null || consensus.annotations == null || consensus.annotations.length < width) { @@ -404,8 +404,8 @@ public class AAFrequency consensus.annotations[i] = new Annotation(maxRes, mouseOver.toString(), ' ', value); } - // long elapsed = System.currentTimeMillis() - now; - // System.out.println(-elapsed); + long elapsed = System.currentTimeMillis() - now; + System.out.println(-elapsed); } /** -- 1.7.10.2