Next version of JABA
[jabaws.git] / binaries / src / muscle / posgap.cpp
1 #include "muscle.h"\r
2 \r
3 //// Pascaralle and Argos gap factors\r
4 //// after Table 1 in Thompson et. al. ClustalW NAR paper.\r
5 //static double PAFFacs[20] =\r
6 //      {\r
7 //      1.13,           // A\r
8 //      1.13,           // C\r
9 //      0.96,           // D\r
10 //      1.31,           // E\r
11 //      1.20,           // F\r
12 //      0.61,           // G\r
13 //      1.00,           // H\r
14 //      1.32,           // I\r
15 //      0.96,           // K\r
16 //      1.21,           // L\r
17 //      1.29,           // M\r
18 //      0.62,           // N\r
19 //      0.74,           // P\r
20 //      1.07,           // Q\r
21 //      0.72,           // R\r
22 //      0.76,           // S\r
23 //      0.89,           // T\r
24 //      1.25,           // V\r
25 //      1.00,           // Y\r
26 //      1.23,           // W\r
27 //      };\r
28 //\r
29 //// (Not used: does not appear to work well).\r
30 //SCORE PAFactor(const FCOUNT fcCounts[])\r
31 //      {\r
32 //      if (ALPHA_Amino != g_Alpha)\r
33 //              Quit("PAFFactor: requires amino acid sequence");\r
34 //\r
35 //      FCOUNT fLetterCount = 0;\r
36 //      double dSum = 0;\r
37 //      for (unsigned uLetter = 0; uLetter < 20; ++uLetter)\r
38 //              {\r
39 //              const FCOUNT fCount = fcCounts[uLetter];\r
40 //              dSum += fCount*PAFFacs[uLetter];\r
41 //              fLetterCount += fCount;\r
42 //              }\r
43 //      if (0 == fLetterCount)\r
44 //              return 0.5;\r
45 //      return (SCORE) (dSum/fLetterCount);\r
46 //      }\r
47 \r
48 //static bool Hydrophilic[20] =\r
49 //      {\r
50 //      false,          // A\r
51 //      false,          // C\r
52 //      true,           // D\r
53 //      true,           // E\r
54 //      false,          // F\r
55 //      true,           // G\r
56 //      false,          // H\r
57 //      false,          // I\r
58 //      true,           // K\r
59 //      false,          // L\r
60 //      false,          // M\r
61 //      true,           // N\r
62 //      true,           // P\r
63 //      true,           // Q\r
64 //      true,           // R\r
65 //      true,           // S\r
66 //      false,          // T\r
67 //      false,          // V\r
68 //      false,          // Y\r
69 //      false,          // W\r
70 //      };\r
71 //\r
72 //bool IsHydrophilic(const FCOUNT fcCounts[])\r
73 //      {\r
74 //      if (ALPHA_Amino != g_Alpha)\r
75 //              Quit("IsHydrophilic: requires amino acid sequence");\r
76 //\r
77 //      for (unsigned uLetter = 0; uLetter < 20; ++uLetter)\r
78 //              if (fcCounts[uLetter] > 0 && !Hydrophilic[uLetter])\r
79 //                      return false;\r
80 //      return true;\r
81 //      }\r
82 //\r
83 //bool IsHydrophilic(const unsigned uCounts[])\r
84 //      {\r
85 //      if (ALPHA_Amino != g_Alpha)\r
86 //              Quit("IsHydrophilic: requires amino acid sequence");\r
87 //\r
88 //      for (unsigned uLetter = 0; uLetter < 20; ++uLetter)\r
89 //              if (uCounts[uLetter] > 0 && !Hydrophilic[uLetter])\r
90 //                      return false;\r
91 //      return true;\r
92 //      }\r
93 \r
94 // LIVCATMFYWHK\r
95 // Venn         Pascaralla      B&T             Me\r
96 // L            y                       y               y\r
97 // I            y                       y               y\r
98 // V            y                       y               y\r
99 // C            y                       n\r
100 // A            y                       y               y\r
101 // T            N                       n\r
102 // M            y                       y               y\r
103 // F            y                       y               y\r
104 // Y            n                       n\r
105 // W            y                       n\r
106 // H            n                       n\r
107 // K            n                       n\r
108 static bool Hydrophobic[20] =\r
109         {\r
110         true,           // A\r
111         true,           // C\r
112         false,          // D\r
113         false,          // E\r
114         true,           // F\r
115         false,          // G\r
116         true,           // H\r
117         true,           // I\r
118         false,          // K\r
119         true,           // L\r
120         true,           // M\r
121         false,          // N\r
122         false,          // P\r
123         false,          // Q\r
124         false,          // R\r
125         false,          // S\r
126         true,           // T\r
127         true,           // V\r
128         true,           // Y\r
129         true,           // W\r
130         };\r
131 \r
132 bool IsHydrophobic(const FCOUNT fcCounts[])\r
133         {\r
134         if (ALPHA_Amino != g_Alpha)\r
135                 Quit("IsHydrophobic: requires amino acid sequence");\r
136 \r
137         for (unsigned uLetter = 0; uLetter < 20; ++uLetter)\r
138                 if (fcCounts[uLetter] > 0.0 && !Hydrophobic[uLetter])\r
139                         return false;\r
140         return true;\r
141         }\r