X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FBlosum62ColourScheme.java;h=0db55c03c8b0946692a5709acc6fa28744358476;hb=0eca27bca577e774acd5aefb165e7c6396a1995e;hp=1aea477ea86b760920aaa888117c3b9f2a5fd339;hpb=efc31b4a8d5cee63555586804a2b79c06bdb5a14;p=jalview.git diff --git a/src/jalview/schemes/Blosum62ColourScheme.java b/src/jalview/schemes/Blosum62ColourScheme.java index 1aea477..0db55c0 100755 --- a/src/jalview/schemes/Blosum62ColourScheme.java +++ b/src/jalview/schemes/Blosum62ColourScheme.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -18,10 +18,10 @@ */ package jalview.schemes; -import java.util.*; - import java.awt.*; +import jalview.analysis.*; + public class Blosum62ColourScheme extends ResidueColourScheme { @@ -30,22 +30,31 @@ public class Blosum62ColourScheme super(); } - public Color findColour(String s, int j) + public Color findColour(char res, int j) { - if ( (threshold != 0) && !aboveThreshold(s, j)) + if ('a' <= res && res <= 'z') + { + // TO UPPERCASE !!! + res -= ('a' - 'A'); + } + + if (consensus == null || + j >= consensus.length || + consensus[j] == null || + (threshold != 0 && !aboveThreshold(res, j))) { return Color.white; } - Hashtable hash = (Hashtable) consensus.elementAt(j); + Color currentColour; - if (!jalview.util.Comparison.isGap( (s.charAt(0)))) + if (!jalview.util.Comparison.isGap(res)) { - String max = (String) hash.get("maxResidue"); + String max = (String) consensus[j].get(AAFrequency.MAXRESIDUE); - if (max.indexOf(s) > -1) + if (max.indexOf(res) > -1) { - return new Color(154, 154, 255); + currentColour = new Color(154, 154, 255); } else { @@ -55,24 +64,31 @@ public class Blosum62ColourScheme do { - c += ResidueProperties.getBLOSUM62(max.substring(max_aa, - max_aa + 1), s); + c += ResidueProperties.getBLOSUM62( + max.charAt(max_aa), res); } while (++max_aa < n); if (c > 0) { - return new Color(204, 204, 255); + currentColour = new Color(204, 204, 255); } else { - return Color.white; + currentColour = Color.white; } } + + if (conservationColouring) + { + currentColour = applyConservation(currentColour, j); + } } else { return Color.white; } + + return currentColour; } }