GPL license added
[jalview.git] / src / jalview / schemes / Blosum62ColourScheme.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 \r
23 import java.util.*;\r
24 import java.awt.*;\r
25 \r
26 public class Blosum62ColourScheme extends ResidueColourScheme\r
27 {\r
28 \r
29   public Blosum62ColourScheme()\r
30   {\r
31     super();\r
32   }\r
33 \r
34   public Color findColour(String s, int j)\r
35   {\r
36     if( threshold!=0 && !aboveThreshold(s,j))\r
37       return Color.white;\r
38 \r
39     Hashtable hash = (Hashtable)consensus.elementAt(j);\r
40 \r
41     if (!jalview.util.Comparison.isGap((s.charAt(0))))\r
42     {\r
43       String    max  = (String)hash.get("maxResidue");\r
44 \r
45       if (max.indexOf(s)>-1)\r
46         return new Color(154, 154, 255);\r
47       else {\r
48 \r
49         int c = 0,\r
50             max_aa=0,\r
51             n=max.length();\r
52         do {\r
53           c+=ResidueProperties.getBLOSUM62(max.substring(max_aa, max_aa+1), s);\r
54         } while (++max_aa<n);\r
55 \r
56         if (c>0)\r
57           return new Color(204, 204, 255);\r
58         else\r
59           return Color.white;\r
60       }\r
61     }\r
62     else\r
63         return Color.white;\r
64 \r
65   }\r
66 \r
67 \r
68 }\r