8ca022389136d880b607ef11dc918c0640651166
[jalview.git] / src / jalview / schemes / Consensus.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 package jalview.schemes;\r
20 \r
21 \r
22 ////////////////////////////////////////////\r
23 // This does nothing at all at the moment!!!!!!!!!!\r
24 // AW 15th Dec 2004\r
25 /////////////////////////////////////////\r
26 public class Consensus {\r
27     int[] mask;\r
28     double threshold;\r
29     String maskstr;\r
30 \r
31     public Consensus(String mask, double threshold) {\r
32         // this.id = id;\r
33         //    this.mask = mask;\r
34         this.maskstr = mask;\r
35         setMask(mask);\r
36         this.threshold = threshold;\r
37     }\r
38 \r
39     public void setMask(String s) {\r
40         this.mask = setNums(s);\r
41 \r
42         //   for (int i=0; i < mask.length; i++) {\r
43         //  System.out.println(mask[i] + " " + ResidueProperties.aa[mask[i]]);\r
44         // }\r
45     }\r
46 \r
47     public boolean isConserved(int[][] cons2, int col, int size) {\r
48         int tot = 0;\r
49 \r
50         for (int i = 0; i < mask.length; i++)\r
51             tot += cons2[col][mask[i]];\r
52 \r
53         if ((double) tot > ((threshold * size) / 100)) {\r
54             return true;\r
55         }\r
56 \r
57         return false;\r
58     }\r
59 \r
60     int[] setNums(String s) {\r
61         int[] out = new int[s.length()];\r
62         int i = 0;\r
63 \r
64         while (i < s.length()) {\r
65             out[i] = ((Integer) ResidueProperties.aaHash.get(s.substring(i,\r
66                         i + 1))).intValue();\r
67             i++;\r
68         }\r
69 \r
70         return out;\r
71     }\r
72 }\r