e90e6cc27e9264e7fd3cf7edb3ed6f4dd85b2d76
[jalview.git] / src / jalview / schemes / ResidueColourScheme.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 \r
20 package jalview.schemes;\r
21 \r
22 import java.util.*;\r
23 import java.awt.*;\r
24 \r
25 public class ResidueColourScheme implements ColourSchemeI{\r
26     Color    [] colors;\r
27     int       threshold = 0;\r
28     public Vector   consensus;\r
29 \r
30     public ResidueColourScheme(Color[] colors, int threshold) {\r
31         this.colors    = colors;\r
32         this.threshold = threshold;\r
33     }\r
34 \r
35     public ResidueColourScheme()\r
36     {   }\r
37 \r
38     public void setConsensus(Vector consensus)\r
39     {\r
40       this.consensus = consensus;\r
41     }\r
42 \r
43     public Color findColour(String aa)\r
44     {\r
45       return colors[((Integer)(ResidueProperties.aaHash.get(aa))).intValue()];\r
46     }\r
47 \r
48     public Color findColour(String s, int j) {\r
49 \r
50        if( threshold==0 || aboveThreshold(s,j))\r
51           return colors[((Integer)(ResidueProperties.aaHash.get(s))).intValue()];\r
52        else\r
53           return Color.white;\r
54 \r
55     }\r
56 \r
57     public int getThreshold() {\r
58         return threshold;\r
59     }\r
60 \r
61     public void setThreshold(int ct) {\r
62         threshold = ct;\r
63     }\r
64 \r
65     public boolean aboveThreshold(String s, int j)\r
66     {\r
67         Hashtable hash = (Hashtable)consensus.elementAt(j);\r
68 \r
69         if ( ( (Integer) hash.get("maxCount")).intValue() != -1 && hash.contains(s))\r
70         {\r
71                ////  resCount////////////////////                  ///////////////seq count////////////\r
72           double sc = ( (Integer) hash.get(s)).intValue()  * 100.0 / ( (Integer) hash.get("size")).intValue();\r
73 \r
74           if (sc >= threshold)\r
75             return true;\r
76 \r
77         }\r
78 \r
79         return false;\r
80     }\r
81 }\r