1 /* Concurrent read version */ 2 /* 20-June-1986 universal pam file */ 3 4 /* $Id: upam.h 1124 2013-03-13 20:24:57Z wrp $ */ 5 /* $Revision: 1124 $ */ 6 7 /* modified to accomodate both lower and upper case amino acid numbers 8 as a result MAXSQ = 50 9 */ 10 11 12 #ifndef UPAM_GBL_DEF 13 #define UPAM_GBL_DEF 14 15 #define TERM 25 16 #define EOSEQ 0 17 #define MAXSQ 60 /* increased to accomodate ESS=57 */ 18 #define MAXUC 28 19 #define MAXLC 56 20 21 #define MAXHASH 32 22 #define NMAP MAXHASH+1 23 24 struct std_pam_str { 25 char abbrev[6]; /* argument name */ 26 char name[10]; /* canonical name */ 27 int *pam; /* data pointer */ 28 float scale; /* pam scale (ln(2)/2, ln(2)/3 */ 29 float ulambda; /* lambda (ungapped) */ 30 float entropy; /* bits/position */ 31 float tfract_id; /* target fract id */ 32 int gdel, ggap; /* gdel, ggap */ 33 }; 34 35 #ifndef XTERNAL 36 37 int pamoff=0; 38 39 /*extern int gdelval, ggapval;*/ 40 41 /* char sqnam[]="aa"; */ 42 /* char sqtype[]="protein"; */ 43 44 45 /* this alphabet covers 56 values, so that libraries can include lower-case characters which will be re-mapped unless -S */ 46 char *NCBIstdaa = "-ABCDEFGHIKLMNPQRSTVWXYZU*OJ"; 47 char *NCBIstdaa_l = "-ABCDEFGHIKLMNPQRSTVWXYZU*OJ-ABCDEFGHIKLMNPQRSTVWXYZU*OJ"; 48 char NCBIstdaa_n = 28; 49 50 char *NCBIstdaa_ext = "-ABCDEFGHIKLMNPQRSTVWXYZU*OJ-abcdefghiklmnpqrstvwxyzu*oj"; 51 char NCBIstdaa_ext_n = 56; 52 53 /* the residue ordering used for the internal pam matrices */ 54 char *pam_sq; 55 int pam_sq_n; 56 char *apam_sq = "\0ARNDCQEGHILKMFPSTWYVBZX*"; 57 int apam_sq_n = 25; 58 char *npam_sq = "\0ACGTURYMWSKDHVBNX"; 59 int npam_sq_n = 17; 60 61 /* these values have been replaced by NCBIstdaa and *pam_sq */ 62 /* 63 char aa[MAXSQ+1] = {"\0ARNDCQEGHILKMFPSTWYVBZX*JARNDCQEGHILKMFPSTWYVBZX*J\0"}; 64 char aax[MAXSQ+1] = {"\0ARNDCQEGHILKMFPSTWYVBZX*Jarndcqeghilkmfpstwyvbzx*j\0"}; 65 */ 66 char pssm_aa[26] = {"\0ARNDCQEGHILKMFPSTWYVBZX*"}; 67 68 char othx[MAXSQ+1] = {"OUou\0"}; 69 int noth = 2; 70 int nothx = 4; 71 72 int naa = 25; /* this should be calculated from aa[] */ 73 int naax = 50; 74 75 /* haa[] used to map all valid amino acid codes into a hash value; 76 now, there is an additional hash value - not-mapped - NM */ 77 78 /* this has been expanded to accomodate '*' */ 79 /* 0 A R N D C Q E G H I L K M F P S T W Y V B Z X * J */ 80 /* 81 int haa[MAXSQ+1] = { 82 NMAP,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,3,7,NMAP,NMAP,10, 83 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,3,7,NMAP,NMAP,10}; 84 */ 85 int h_NCBIstdaa[MAXSQ+1] = { 86 /* - A B C D E F G H I K L M N P Q R S T V W X Y Z U * O J */ 87 NMAP,1,13,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,NMAP,21, 5, 3,NMAP,10,11, 88 NMAP,1,13,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,NMAP,21, 5, 3,NMAP,10,11 89 }; 90 91 int h_NCBIstdaa_ext[MAXSQ+1] = { 92 /* - A B C D E F G H I K L M N P Q R S T V W X Y Z U * O J */ 93 NMAP,1,13,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,NMAP,21, 5, 3,NMAP,10,11, 94 NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP, 95 NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP, 96 }; 97 98 /* 99 int haax[MAXSQ+1] = { 100 NMAP, 1,2,3,4,5,6,7,8,9, 101 10,11,12,13,14,15,16,17,18,19, 102 20,3,7,NMAP,NMAP,10,NMAP,NMAP,NMAP,NMAP, 103 NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP, 104 NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP, 105 NMAP}; 106 */ 107 108 /* 109 PAM 250 substitution matrix, scale = ln(2)/3 = 0.231049 110 Expected score = -0.844, Entropy = 0.354 bits 111 Lowest score = -8, Highest score = 17 112 */ 113 int apam250[450] = { 114 2, 115 -2, 6, 116 0, 0, 2, 117 0,-1, 2, 4, 118 -2,-4,-4,-5,12, 119 0, 1, 1, 2,-5, 4, 120 0,-1, 1, 3,-5, 2, 4, 121 1,-3, 0, 1,-3,-1, 0, 5, 122 -1, 2, 2, 1,-3, 3, 1,-2, 6, 123 -1,-2,-2,-2,-2,-2,-2,-3,-2, 5, 124 -2,-3,-3,-4,-6,-2,-3,-4,-2, 2, 6, 125 -1, 3, 1, 0,-5, 1, 0,-2, 0,-2,-3, 5, 126 -1, 0,-2,-3,-5,-1,-2,-3,-2, 2, 4, 0, 6, 127 -4,-4,-4,-6,-4,-5,-5,-5,-2, 1, 2,-5, 0, 9, 128 1, 0,-1,-1,-3, 0,-1,-1, 0,-2,-3,-1,-2,-5, 6, 129 1, 0, 1, 0, 0,-1, 0, 1,-1,-1,-3, 0,-2,-3, 1, 2, 130 1,-1, 0, 0,-2,-1, 0, 0,-1, 0,-2, 0,-1,-3, 0, 1, 3, 131 -6, 2,-4,-7,-8,-5,-7,-7,-3,-5,-2,-3,-4, 0,-6,-2,-5,17, 132 -3,-4,-2,-4, 0,-4,-4,-5, 0,-1,-1,-4,-2, 7,-5,-3,-3, 0,10, 133 0,-2,-2,-2,-2,-2,-2,-1,-2, 4, 2,-2, 2,-1,-1,-1, 0,-6,-2, 4, 134 0,-1, 2, 3,-4, 1, 2, 0, 1,-2,-3, 1,-2,-5,-1, 0, 0,-5,-3,-2, 2, 135 0, 0, 1, 3,-5, 3, 3,-1, 2,-2,-3, 0,-2,-5, 0, 0,-1,-6,-4,-2, 2, 3, 136 0,-1, 0,-1,-3,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1, 0, 0,-4,-2,-1,-1,-1,-1, 137 0,-1, 0,-1,-3,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1, 0, 0,-4,-2,-1,-1,-1,-1, 8}; 138 139 /* 140 This matrix was produced by "pam" Version 1.0.6 [28-Jul-93] 141 PAM 120 substitution matrix, scale = ln(2)/2 = 0.346574 142 Expected score = -1.64, Entropy = 0.979 bits 143 Lowest score = -8, Highest score = 12 144 */ 145 int apam120[450] = { 146 3, 147 -3, 6, 148 0,-1, 4, 149 0,-3, 2, 5, 150 -3,-4,-5,-7, 9, 151 -1, 1, 0, 1,-7, 6, 152 0,-3, 1, 3,-7, 2, 5, 153 1,-4, 0, 0,-5,-3,-1, 5, 154 -3, 1, 2, 0,-4, 3,-1,-4, 7, 155 -1,-2,-2,-3,-3,-3,-3,-4,-4, 6, 156 -3,-4,-4,-5,-7,-2,-4,-5,-3, 1, 5, 157 -2, 2, 1,-1,-7, 0,-1,-3,-2,-2,-4, 5, 158 -2,-1,-3,-4,-6,-1,-4,-4,-4, 1, 3, 0, 8, 159 -4,-4,-4,-7,-6,-6,-6,-5,-2, 0, 0,-6,-1, 8, 160 1,-1,-2,-2,-3, 0,-1,-2,-1,-3,-3,-2,-3,-5, 6, 161 1,-1, 1, 0,-1,-2,-1, 1,-2,-2,-4,-1,-2,-3, 1, 3, 162 1,-2, 0,-1,-3,-2,-2,-1,-3, 0,-3,-1,-1,-4,-1, 2, 4, 163 -7, 1,-5,-8,-8,-6,-8,-8,-5,-7,-5,-5,-7,-1,-7,-2,-6, 12, 164 -4,-6,-2,-5,-1,-5,-4,-6,-1,-2,-3,-6,-4, 4,-6,-3,-3,-1, 8, 165 0,-3,-3,-3,-2,-3,-3,-2,-3, 3, 1,-4, 1,-3,-2,-2, 0,-8,-3, 5, 166 0,-2, 3, 4,-6, 0, 3, 0, 1,-3,-4, 0,-4,-5,-2, 0, 0,-6,-3,-3, 4, 167 -1,-1, 0, 3,-7, 4, 4,-2, 1,-3,-3,-1,-2,-6,-1,-1,-2,-7,-5,-3, 2, 4, 168 -1,-2,-1,-2,-4,-1,-1,-2,-2,-1,-2,-2,-2,-3,-2,-1,-1,-5,-3,-1,-1,-1,-2, 169 -1,-2,-1,-2,-4,-1,-1,-2,-2,-1,-2,-2,-2,-3,-2,-1,-1,-5,-3,-1,-1,-1,-2, 6}; 170 171 /* 172 # 173 # VTML_10 174 # 175 # This matrix was produced from: vtml_10qij.mat using robinson2.back background frequencies 176 # 177 # VTML_10 substitution matrix, Units = bits/2.0 178 # Expected score = -3.859581 bits; Entropy = 3.462930 bits 179 # Target fraction identity = 0.9107 180 # Lowest Score = -20, Highest Score= 12 181 # 182 */ 183 int a_vt10[450] = { 184 7, 185 -9, 8, 186 -8, -7, 9, 187 -8, -16, -3, 8, 188 -5, -9, -10, -18, 11, 189 -7, -4, -6, -6, -17, 9, 190 -7, -14, -7, -3, -18, -3, 8, 191 -6, -9, -7, -8, -10, -10, -8, 7, 192 -9, -5, -4, -6, -9, -4, -8, -9, 11, 193 -9, -10, -11, -15, -8, -12, -12, -19, -11, 8, 194 -9, -10, -11, -19, -17, -8, -10, -13, -8, -3, 7, 195 -8, -2, -5, -7, -17, -4, -4, -9, -7, -10, -10, 8, 196 -7, -8, -9, -11, -7, -6, -10, -12, -15, -3, -2, -7, 11, 197 -10, -12, -13, -20, -17, -10, -18, -13, -6, -6, -5, -18, -4, 9, 198 -6, -8, -10, -8, -11, -7, -8, -10, -8, -12, -9, -7, -12, -10, 8, 199 -4, -7, -4, -7, -5, -6, -6, -6, -6, -11, -10, -7, -10, -8, -6, 7, 200 -5, -8, -5, -8, -8, -7, -7, -10, -7, -6, -9, -6, -6, -10, -8, -3, 8, 201 -11, -10, -12, -12, -20, -19, -20, -11, -8, -8, -8, -10, -16, -4, -11, -10, -19, 12, 202 -10, -9, -8, -17, -7, -16, -9, -13, -3, -9, -8, -10, -15, -1, -19, -8, -10, -4, 10, 203 -5, -11, -11, -11, -6, -9, -9, -12, -10, -1, -5, -9, -5, -8, -10, -10, -6, -17, -9, 8, 204 -8, -11, 3, 2, -14, -6, -5, -7, -5, -13, -15, -6, -10, -16, -9, -5, -6, -12, -12, -11, 8, 205 -7, -9, -6, -4, -17, 3, 2, -9, -6, -12, -9, -4, -8, -14, -7, -6, -7, -19, -12, -9, -4, 8, 206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 207 }; 208 209 /* 210 # 211 # VTML_20 212 # 213 # This matrix was produced from: vtml_20qij.mat using robinson2.back background frequencies 214 # 215 # VTML_20 substitution matrix, Units = bits/2.0 216 # Expected score = -2.889610 bits; Entropy = 2.921119 bits 217 # Target fraction identity = 0.8312 218 # Lowest Score = -16, Highest Score= 12 219 # 220 */ 221 int a_vt20[450] = { 222 7, 223 -7, 8, 224 -6, -5, 8, 225 -6, -12, -1, 8, 226 -3, -7, -8, -14, 11, 227 -5, -2, -4, -4, -13, 8, 228 -5, -10, -5, -1, -14, -1, 7, 229 -4, -7, -5, -6, -8, -8, -6, 7, 230 -7, -3, -3, -5, -7, -2, -6, -7, 10, 231 -7, -8, -9, -13, -6, -10, -10, -15, -9, 8, 232 -7, -8, -9, -15, -13, -7, -8, -11, -7, -1, 6, 233 -6, 0, -3, -5, -14, -2, -2, -7, -5, -8, -8, 8, 234 -5, -6, -7, -9, -5, -5, -8, -10, -12, -1, 0, -5, 10, 235 -8, -10, -10, -16, -13, -8, -14, -11, -5, -4, -3, -14, -2, 9, 236 -4, -6, -8, -6, -9, -5, -6, -8, -6, -10, -7, -6, -10, -8, 8, 237 -2, -6, -2, -5, -4, -4, -5, -4, -4, -9, -8, -5, -8, -6, -4, 7, 238 -3, -6, -4, -6, -6, -5, -6, -8, -5, -4, -7, -4, -4, -8, -6, -1, 8, 239 -9, -8, -10, -11, -16, -15, -16, -9, -6, -6, -6, -8, -12, -3, -9, -8, -15, 12, 240 -8, -7, -6, -14, -5, -12, -7, -10, -1, -7, -6, -8, -11, 1, -15, -6, -8, -2, 9, 241 -3, -9, -9, -9, -4, -7, -7, -10, -8, 1, -3, -8, -3, -6, -8, -8, -4, -13, -7, 7, 242 -6, -8, 3, 3, -11, -4, -3, -5, -4, -11, -12, -4, -8, -13, -7, -3, -5, -10, -10, -9, 8, 243 -5, -6, -4, -3, -13, 3, 3, -7, -4, -10, -7, -2, -6, -11, -5, -4, -5, -15, -9, -7, -2, 7, 244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 245 }; 246 247 /* 248 # 249 # VTML_40 250 # 251 # This matrix was produced from: vtml_40qij.mat using robinson2.back background frequencies 252 # 253 # VTML_40 substitution matrix, Units = bits/2.0 254 # Expected score = -1.963330 bits; Entropy = 2.266217 bits 255 # Target fraction identity = 0.6968 256 # Lowest Score = -13, Highest Score= 12 257 # 258 */ 259 int a_vt40[450] = { 260 6, 261 -5, 8, 262 -4, -3, 8, 263 -4, -8, 0, 7, 264 -1, -5, -6, -10, 11, 265 -3, 0, -2, -3, -10, 8, 266 -3, -7, -3, 1, -11, 0, 7, 267 -2, -5, -3, -4, -6, -6, -5, 7, 268 -5, -1, -1, -3, -5, 0, -4, -5, 10, 269 -5, -6, -7, -10, -4, -7, -8, -12, -7, 7, 270 -5, -6, -7, -11, -9, -5, -7, -9, -5, 1, 6, 271 -4, 2, -2, -3, -10, -1, -1, -5, -3, -6, -6, 7, 272 -4, -4, -5, -7, -3, -3, -6, -8, -8, 0, 1, -4, 9, 273 -6, -8, -8, -13, -10, -7, -11, -9, -3, -2, -1, -10, -1, 9, 274 -3, -5, -6, -4, -7, -4, -4, -6, -4, -8, -5, -4, -7, -7, 8, 275 0, -4, -1, -3, -2, -3, -3, -3, -3, -6, -6, -3, -6, -5, -3, 6, 276 -1, -4, -2, -4, -4, -3, -4, -6, -3, -3, -5, -3, -2, -6, -4, 0, 7, 277 -7, -6, -8, -9, -12, -12, -12, -7, -4, -4, -4, -7, -9, -1, -7, -6, -11, 12, 278 -6, -5, -4, -10, -3, -9, -5, -8, 0, -5, -4, -6, -7, 2, -11, -5, -6, 0, 9, 279 -1, -7, -7, -7, -2, -5, -6, -8, -6, 3, -1, -6, -1, -4, -6, -6, -2, -10, -5, 7, 280 -4, -5, 4, 3, -8, -2, -1, -3, -2, -8, -9, -2, -6, -10, -5, -2, -3, -8, -7, -7, 7, 281 -3, -4, -2, -1, -10, 4, 3, -5, -2, -7, -6, -1, -4, -9, -4, -3, -3, -12, -7, -5, 0, 7, 282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 283 }; 284 285 /* 286 # 287 # VTML_80 288 # 289 # This matrix was produced from: vtml_80qij.mat using robinson2.back background frequencies 290 # 291 # VTML_80 substitution matrix, Units = bits/2.0 292 # Expected score = -1.137019 bits; Entropy = 1.390771 bits 293 # Target fraction identity = 0.5024 294 # Lowest Score = -9, Highest Score= 12 295 # 296 */ 297 int a_vt80[450] = { 298 5, 299 -3, 7, 300 -2, -1, 7, 301 -2, -5, 1, 7, 302 0, -4, -4, -7, 10, 303 -2, 1, -1, -1, -6, 6, 304 -2, -3, -1, 2, -7, 1, 6, 305 -1, -3, -1, -2, -4, -4, -3, 6, 306 -3, 0, 0, -1, -3, 0, -2, -4, 9, 307 -3, -5, -5, -7, -2, -5, -5, -8, -4, 6, 308 -3, -4, -5, -8, -6, -3, -5, -7, -3, 2, 5, 309 -2, 3, -1, -2, -6, 0, 0, -3, -1, -4, -4, 6, 310 -2, -3, -4, -5, -2, -2, -4, -6, -5, 2, 2, -2, 8, 311 -4, -5, -6, -9, -6, -5, -7, -7, -1, -1, 0, -7, 0, 8, 312 -1, -3, -4, -3, -5, -2, -2, -4, -3, -5, -4, -2, -5, -5, 7, 313 1, -2, 0, -1, -1, -2, -1, -1, -1, -4, -4, -1, -4, -3, -1, 5, 314 0, -2, -1, -2, -2, -2, -2, -4, -2, -1, -3, -1, -1, -4, -3, 1, 6, 315 -5, -4, -6, -7, -9, -8, -8, -5, -2, -2, -2, -5, -5, 1, -6, -5, -8, 12, 316 -4, -3, -3, -7, -2, -6, -4, -6, 2, -3, -2, -4, -4, 3, -8, -3, -4, 1, 8, 317 0, -4, -5, -5, -1, -4, -4, -6, -4, 3, 0, -4, 0, -2, -4, -4, -1, -6, -4, 6, 318 -2, -3, 4, 4, -5, -1, 0, -1, 0, -6, -6, -1, -4, -7, -3, 0, -1, -6, -5, -5, 7, 319 -2, -1, -1, 0, -6, 4, 3, -3, -1, -5, -4, 0, -3, -6, -2, -1, -2, -8, -5, -4, 0, 6, 320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 321 }; 322 323 /* 324 # 325 # VTML_120 326 # 327 # This matrix was produced from: vtml_120qij.mat using robinson2.back background frequencies 328 # 329 # VTML_120 substitution matrix, Units = bits/2.0 330 # Expected score = -0.723803 bits; Entropy = 0.938201 bits 331 # Target fraction identity = 0.3748 332 # Lowest Score = -7, Highest Score= 11 333 # 334 */ 335 int a_vt120[450] = { 336 4, 337 -2, 6, 338 -1, -1, 6, 339 -1, -3, 2, 6, 340 0, -3, -3, -5, 9, 341 -1, 1, 0, 0, -5, 5, 342 -1, -2, 0, 2, -5, 1, 5, 343 0, -2, -1, -1, -3, -3, -2, 6, 344 -2, 0, 1, -1, -3, 1, -1, -3, 8, 345 -2, -3, -4, -5, -1, -4, -4, -6, -3, 5, 346 -2, -3, -4, -6, -4, -3, -4, -5, -2, 2, 5, 347 -1, 3, 0, -1, -5, 1, 1, -2, 0, -3, -3, 5, 348 -1, -2, -3, -4, -1, -2, -3, -5, -3, 2, 2, -2, 7, 349 -3, -4, -4, -7, -5, -4, -5, -5, 0, 0, 1, -5, 1, 7, 350 -1, -2, -2, -2, -4, -1, -2, -3, -2, -4, -3, -1, -4, -4, 7, 351 1, -1, 1, -1, 0, -1, -1, -1, -1, -3, -3, -1, -2, -2, -1, 4, 352 0, -2, 0, -1, -1, -1, -1, -2, -1, 0, -2, -1, -1, -3, -2, 1, 5, 353 -4, -3, -5, -6, -7, -6, -6, -4, -1, -2, -2, -4, -4, 2, -5, -4, -6, 11, 354 -3, -2, -2, -5, -1, -4, -3, -5, 2, -2, -1, -3, -3, 4, -6, -2, -3, 2, 8, 355 0, -3, -4, -4, 0, -3, -3, -4, -3, 3, 1, -3, 1, -1, -3, -3, 0, -4, -2, 5, 356 -1, -2, 4, 4, -4, 0, 1, -1, 0, -4, -5, 0, -3, -5, -2, 0, 0, -5, -3, -4, 6, 357 -1, 0, 0, 0, -5, 3, 3, -2, 0, -4, -3, 1, -2, -4, -1, -1, -1, -6, -3, -3, 0, 5, 358 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 359 }; 360 361 /* 362 # VTML160 363 # 364 # This matrix was produced with scripts written by 365 # Tobias Mueller and Sven Rahmann [June-2001]. 366 # 367 # VTML160 substitution matrix, Units = Third-Bits 368 # Expected Score = -1.297840 Third-Bits 369 # Lowest Score = -7, Highest Score = 16 370 # 371 # Entropy H = 0.562489 Bits 372 # 373 # 30-Jun-2001 374 */ 375 int a_vt160[450] = { 376 5, 377 -2, 7, 378 -1, 0, 7, 379 -1,-3, 3, 7, 380 1,-3,-3,-5,13, 381 -1, 2, 0, 1,-4, 6, 382 -1,-1, 0, 3,-5, 2, 6, 383 0,-3, 0,-1,-2,-3,-2, 8, 384 -2, 1, 1, 0,-2, 2,-1,-3, 9, 385 -1,-4,-4,-6,-1,-4,-5,-7,-4, 6, 386 -2,-3,-4,-6,-4,-2,-4,-6,-3, 3, 6, 387 -1, 4, 0, 0,-4, 2, 1,-2, 0,-4,-3, 5, 388 -1,-2,-3,-5,-1,-1,-3,-5,-3, 2, 4,-2, 8, 389 -3,-5,-5,-7,-4,-4,-6,-6, 0, 0, 2,-5, 1, 9, 390 0,-2,-2,-1,-3,-1,-1,-3,-2,-4,-3,-1,-4,-5, 9, 391 1,-1, 1, 0, 1, 0, 0, 0,-1,-3,-3,-1,-3,-3, 0, 4, 392 1,-1, 0,-1, 0,-1,-1,-2,-1,-1,-2,-1,-1,-3,-1, 2, 5, 393 -5,-4,-5,-7,-7,-6,-7,-5,-1,-2,-1,-5,-4, 3,-5,-4,-6,16, 394 -3,-3,-2,-5,-1,-4,-3,-5, 3,-2,-1,-3,-2, 6,-6,-2,-3, 4,10, 395 0,-4,-4,-4, 1,-3,-3,-5,-3, 4, 2,-3, 1,-1,-3,-2, 0,-5,-3, 5, 396 -1,-2, 5, 6,-4, 0, 2,-1, 0,-5,-5, 0,-4,-6,-2, 1, 0,-6,-3,-4, 5, 397 -1, 0, 0, 3,-5, 4, 5,-2, 0,-4,-3, 2,-3,-5,-1, 0,-1,-7,-4,-3, 2, 5, 398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399 -7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7, 6}; 400 401 /* 402 # 403 # VTML_200 404 # 405 # This matrix was produced from: vtml_200qij.mat using vtml_P.mat background frequencies 406 # 407 # VTML_200 substitution matrix, Units = bits/3.0 408 # Expected score = -0.358430 bits; Entropy = 0.412084 bits 409 # Target fraction identity = 0.2295 410 # Lowest Score = -6, Highest Score= 15 411 # 412 */ 413 int a_vt200[450] = { 414 4, 415 -2, 7, 416 -1, 0, 6, 417 -1, -2, 3, 6, 418 1, -3, -2, -4, 12, 419 -1, 2, 1, 1, -3, 5, 420 -1, -1, 1, 3, -4, 2, 5, 421 0, -2, 0, -1, -2, -2, -1, 8, 422 -2, 1, 1, 0, -2, 2, 0, -2, 8, 423 -1, -3, -4, -5, 0, -3, -4, -6, -3, 5, 424 -2, -3, -4, -5, -3, -2, -4, -5, -2, 3, 5, 425 -1, 4, 1, 0, -4, 2, 1, -2, 0, -3, -3, 5, 426 -1, -2, -3, -4, -1, -1, -3, -4, -3, 2, 3, -2, 6, 427 -3, -4, -4, -6, -3, -3, -5, -5, 0, 0, 2, -5, 1, 8, 428 0, -1, -2, -1, -3, -1, -1, -2, -2, -4, -3, -1, -3, -4, 9, 429 1, -1, 1, 0, 1, 0, 0, 0, 0, -3, -3, 0, -2, -3, 0, 4, 430 1, -1, 0, -1, 0, 0, -1, -2, -1, -1, -2, 0, -1, -3, -1, 2, 4, 431 -4, -3, -5, -6, -6, -6, -6, -5, -1, -2, -1, -4, -3, 3, -4, -4, -5, 15, 432 -3, -2, -2, -4, 0, -3, -3, -5, 3, -2, -1, -3, -2, 5, -5, -2, -3, 4, 9, 433 0, -3, -3, -4, 1, -2, -3, -4, -3, 4, 2, -3, 2, -1, -3, -2, 0, -4, -2, 4, 434 -1, -1, 4, 4, -3, 1, 2, 0, 0, -4, -4, 0, -3, -5, -1, 0, 0, -5, -3, -3, 6, 435 -1, 0, 1, 2, -3, 3, 3, -1, 1, -3, -3, 1, -2, -4, -1, 0, 0, -6, -3, -2, 2, 5, 436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 437 }; 438 439 /* 440 Matrix made by matblas from blosum50.iij 441 BLOSUM Clustered Scoring Matrix in 1/3 Bit Units 442 Blocks Database = /data/blocks_5.0/blocks.dat 443 Cluster Percentage: >= 50 444 Entropy = 0.4808, Expected = -0.3573 445 */ 446 /* 447 A R N D C Q E G H I L K M F P S T W Y V B Z X * */ 448 int abl50[450] = { 449 5, 450 -2, 7, 451 -1,-1, 7, 452 -2,-2, 2, 8, 453 -1,-4,-2,-4,13, 454 -1, 1, 0, 0,-3, 7, 455 -1, 0, 0, 2,-3, 2, 6, 456 0,-3, 0,-1,-3,-2,-3, 8, 457 -2, 0, 1,-1,-3, 1, 0,-2,10, 458 -1,-4,-3,-4,-2,-3,-4,-4,-4, 5, 459 -2,-3,-4,-4,-2,-2,-3,-4,-3, 2, 5, 460 -1, 3, 0,-1,-3, 2, 1,-2, 0,-3,-3, 6, 461 -1,-2,-2,-4,-2, 0,-2,-3,-1, 2, 3,-2, 7, 462 -3,-3,-4,-5,-2,-4,-3,-4,-1, 0, 1,-4, 0, 8, 463 -1,-3,-2,-1,-4,-1,-1,-2,-2,-3,-4,-1,-3,-4,10, 464 1,-1, 1, 0,-1, 0,-1, 0,-1,-3,-3, 0,-2,-3,-1, 5, 465 0,-1, 0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1, 2, 5, 466 -3,-3,-4,-5,-5,-1,-3,-3,-3,-3,-2,-3,-1, 1,-4,-4,-3,15, 467 -2,-1,-2,-3,-3,-1,-2,-3, 2,-1,-1,-2, 0, 4,-3,-2,-2, 2, 8, 468 0,-3,-3,-4,-1,-3,-3,-4,-4, 4, 1,-3, 1,-1,-3,-2, 0,-3,-1, 5, 469 -2,-1, 4, 5,-3, 0, 1,-1, 0,-4,-4, 0,-3,-4,-2, 0, 0,-5,-3,-4, 5, 470 -1, 0, 0, 1,-3, 4, 5,-2, 0,-3,-3, 1,-1,-4,-1, 0,-1,-2,-2,-3, 2, 5, 471 -1,-1,-1,-1,-2,-1,-1,-2,-1,-1,-1,-1,-1,-2,-2,-1, 0,-3,-1,-1,-1,-1,-1, 472 -1,-1,-1,-1,-2,-1,-1,-2,-1,-1,-1,-1,-1,-2,-2,-1, 0,-3,-1,-1,-1,-1,-1, 7}; 473 474 /* 475 A R N D C Q E G H I L K M F P S T W Y V B Z X * */ 476 int a_md10[450]= { 477 11, /* A */ 478 -12, 12, /* R */ 479 -12,-13, 13, /* N */ 480 -11,-18, -3, 12, /* D */ 481 -13,-10,-14,-20, 17, /* C */ 482 -13, -5,-11,-13,-19, 13, /* Q */ 483 -10,-15,-12, -2,-22, -5, 12, /* E */ 484 -8, -9,-11, -9,-12,-16, -9, 11, /* G */ 485 -16, -5, -5,-10,-12, -3,-15,-16, 16, /* H */ 486 -13,-17,-14,-19,-17,-20,-19,-21,-18, 12, /* I */ 487 -15,-14,-19,-21,-16,-12,-20,-21,-13, -7, 10, /* L */ 488 -14, -2, -6,-15,-21, -6, -8,-15,-13,-17,-18, 12, /* K */ 489 -13,-14,-15,-18,-15,-14,-18,-19,-15, -4, -4,-12, 16, /* M */ 490 -18,-22,-19,-22,-11,-22,-23,-22,-14,-11, -6,-23,-14, 14, /* F */ 491 -7,-12,-17,-18,-18, -8,-17,-16,-10,-19,-10,-16,-17,-17, 13, /* P */ 492 -5,-10, -4,-12, -7,-13,-15, -7,-11,-14,-13,-13,-15,-11, -6, 11, /* S */ 493 -4,-12, -7,-14,-14,-13,-15,-14,-13, -7,-16,-10, -7,-19, -9, -4, 12, /* T */ 494 -21, -9,-21,-21,-10,-17,-21,-13,-21,-21,-13,-21,-17,-13,-21,-15,-18, 18, /* W */ 495 -20,-17,-12,-13, -7,-16,-21,-20, -3,-15,-16,-20,-17, -3,-20,-12,-17,-12, 15, /* Y */ 496 -6,-17,-17,-15,-12,-17,-14,-13,-19, -1, -8,-18, -5,-12,-16,-14,-10,-16,-18, 11, /* V */ 497 -12,-15, 5, 5,-17,-12, -7,-10, -7,-16,-20,-11,-17,-21,-17, -8,-10,-22,-13,-16, 13, /* B */ 498 -16,-18,-17, -8,-32, 1, 9,-17,-17,-29,-26,-11,-24,-34,-21,-21,-21,-29,-29,-22, -9, 13, /* Z */ 499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* X */ 500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9}; /* * */ 501 502 int a_md20[450] = { 503 10, 504 -10, 12, 505 -9,-10, 13, 506 -8,-14, -1, 12, 507 -10, -7,-11,-16, 17, 508 -10, -3, -8, -9,-16, 13, 509 -7,-11, -9, 1,-19, -3, 11, 510 -5, -6, -8, -6, -9,-12, -7, 11, 511 -12, -3, -2, -7, -9, 0,-12,-13, 15, 512 -10,-14,-11,-16,-14,-16,-16,-17,-14, 12, 513 -12,-11,-15,-18,-13, -9,-17,-18,-10, -4, 10, 514 -11, 0, -4,-12,-17, -3, -5,-12, -9,-14,-15, 12, 515 -9,-11,-12,-15,-12,-11,-15,-16,-12, -1, -2, -9, 15, 516 -15,-19,-16,-19, -8,-18,-20,-19,-11, -8, -4,-19,-10, 13, 517 -5, -9,-13,-15,-14, -5,-14,-12, -7,-15, -7,-13,-14,-14, 12, 518 -2, -8, -1, -9, -4,-10,-12, -5, -8,-11,-10,-10,-12, -8, -3, 10, 519 -1, -9, -4,-11,-10,-10,-12,-11,-10, -4,-12, -7, -4,-15, -7, -1, 11, 520 -17, -6,-18,-18, -7,-14,-18,-10,-17,-17,-10,-17,-14,-10,-18,-12,-15, 18, 521 -16,-14, -9,-11, -4,-12,-18,-17, 0,-12,-12,-17,-14, 0,-16, -9,-13, -9, 14, 522 -3,-14,-14,-12, -9,-14,-11,-11,-15, 2, -5,-15, -2, -9,-13,-11, -7,-13,-14, 11, 523 -9,-12, 6, 6,-14, -9, -4, -7, -4,-13,-17, -8,-13,-18,-14, -5, -7,-19,-10,-13, 12, 524 -12,-13,-13, -4,-27, 4, 10,-13,-12,-24,-21, -6,-20,-29,-17,-17,-17,-24,-24,-18, -6, 12, 525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9 }; 527 528 int a_md40[450] = { 529 9, 530 -7, 11, 531 -6, -6, 12, 532 -6,-10, 1, 11, 533 -7, -5, -8,-13, 16, 534 -7, 0, -5, -6,-12, 12, 535 -5, -8, -5, 3,-15, 0, 11, 536 -3, -4, -5, -4, -7, -9, -4, 10, 537 -9, 0, 0, -4, -6, 2, -8,-10, 14, 538 -6,-10, -8,-12,-11,-12,-12,-13,-11, 11, 539 -9, -9,-12,-14,-10, -6,-13,-14, -7, -1, 9, 540 -8, 3, -1, -8,-12, -1, -3, -9, -6,-11,-12, 11, 541 -6, -8, -9,-12, -9, -8,-11,-12, -9, 1, 1, -7, 14, 542 -11,-15,-12,-15, -5,-14,-16,-15, -7, -5, -1,-16, -7, 13, 543 -2, -6, -9,-11,-11, -3,-11, -9, -4,-11, -5,-10,-10,-11, 12, 544 0, -5, 1, -6, -2, -7, -8, -2, -6, -8, -7, -7, -8, -6, -1, 9, 545 1, -6, -2, -8, -7, -7, -8, -7, -7, -2, -9, -5, -2,-11, -4, 1, 10, 546 -14, -4,-14,-15, -4,-11,-15, -7,-13,-13, -8,-13,-11, -7,-14, -9,-12, 18, 547 -13,-10, -6, -8, -2, -9,-14,-13, 2, -9, -9,-13,-11, 2,-13, -7,-10, -6, 14, 548 -1,-11,-10, -9, -7,-11, -8, -8,-12, 4, -2,-12, 0, -6, -9, -7, -4,-10,-11, 10, 549 -6, -8, 6, 6,-10, -6, -1, -4, -2,-10,-13, -5,-10,-14,-10, -3, -5,-15, -7,-10, 11, 550 -8, -8, -8, 0,-21, 6, 10, -8, -7,-18,-16, -3,-15,-23,-12,-12,-12,-19,-18,-14, -3, 11, 551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9}; 553 554 /* 555 Matrix made by matblas from blosum62.iij 556 * column uses minimum score 557 BLOSUM Clustered Scoring Matrix in 1/2 Bit Units 558 Blocks Database = /data/blocks_5.0/blocks.dat 559 Cluster Percentage: >= 62 560 Entropy = 0.6979, Expected = -0.5209 561 */ 562 563 int abl62[450] = { 564 4, 565 -1, 5, 566 -2, 0, 6, 567 -2,-2, 1, 6, 568 0,-3,-3,-3, 9, 569 -1, 1, 0, 0,-3, 5, 570 -1, 0, 0, 2,-4, 2, 5, 571 0,-2, 0,-1,-3,-2,-2, 6, 572 -2, 0, 1,-1,-3, 0, 0,-2, 8, 573 -1,-3,-3,-3,-1,-3,-3,-4,-3, 4, 574 -1,-2,-3,-4,-1,-2,-3,-4,-3, 2, 4, 575 -1, 2, 0,-1,-3, 1, 1,-2,-1,-3,-2, 5, 576 -1,-1,-2,-3,-1, 0,-2,-3,-2, 1, 2,-1, 5, 577 -2,-3,-3,-3,-2,-3,-3,-3,-1, 0, 0,-3, 0, 6, 578 -1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4, 7, 579 1,-1, 1, 0,-1, 0, 0, 0,-1,-2,-2, 0,-1,-2,-1, 4, 580 0,-1, 0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1, 1, 5, 581 -3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1, 1,-4,-3,-2,11, 582 -2,-2,-2,-3,-2,-1,-2,-3, 2,-1,-1,-2,-1, 3,-3,-2,-2, 2, 7, 583 0,-3,-3,-3,-1,-2,-2,-3,-3, 3, 1,-2, 1,-1,-2,-2, 0,-3,-1, 4, 584 -2,-1, 3, 4,-3, 0, 1,-1, 0,-3,-4, 0,-3,-3,-2, 0,-1,-4,-3,-3, 4, 585 -1, 0, 0, 1,-3, 3, 4,-2, 0,-3,-3, 1,-1,-3,-1, 0,-1,-3,-2,-2, 1, 4, 586 0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2, 0, 0,-2,-1,-1,-1,-1,-1, 587 0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2, 0, 0,-2,-1,-1,-1,-1,-1, 6}; 588 589 /* blosum80 in 1/2 bit units (previous versions had 1/3 bit units) */ 590 /* 591 Matrix made by matblas from blosum80.iij 592 * column uses minimum score 593 BLOSUM Clustered Scoring Matrix in 1/2 Bit Units 594 Blocks Database = /data/blocks_5.0/blocks.dat 595 Cluster Percentage: >= 80 596 Entropy = 0.9868, Expected = -0.7442 597 */ 598 599 int abl80[450] = { 600 5, 601 -2, 6, 602 -2,-1, 6, 603 -2,-2, 1, 6, 604 -1,-4,-3,-4, 9, 605 -1, 1, 0,-1,-4, 6, 606 -1,-1,-1, 1,-5, 2, 6, 607 0,-3,-1,-2,-4,-2,-3, 6, 608 -2, 0, 0,-2,-4, 1, 0,-3, 8, 609 -2,-3,-4,-4,-2,-3,-4,-5,-4, 5, 610 -2,-3,-4,-5,-2,-3,-4,-4,-3, 1, 4, 611 -1, 2, 0,-1,-4, 1, 1,-2,-1,-3,-3, 5, 612 -1,-2,-3,-4,-2, 0,-2,-4,-2, 1, 2,-2, 6, 613 -3,-4,-4,-4,-3,-4,-4,-4,-2,-1, 0,-4, 0, 6, 614 -1,-2,-3,-2,-4,-2,-2,-3,-3,-4,-3,-1,-3,-4, 8, 615 1,-1, 0,-1,-2, 0, 0,-1,-1,-3,-3,-1,-2,-3,-1, 5, 616 0,-1, 0,-1,-1,-1,-1,-2,-2,-1,-2,-1,-1,-2,-2, 1, 5, 617 -3,-4,-4,-6,-3,-3,-4,-4,-3,-3,-2,-4,-2, 0,-5,-4,-4,11, 618 -2,-3,-3,-4,-3,-2,-3,-4, 2,-2,-2,-3,-2, 3,-4,-2,-2, 2, 7, 619 0,-3,-4,-4,-1,-3,-3,-4,-4, 3, 1,-3, 1,-1,-3,-2, 0,-3,-2, 4, 620 -2,-2, 4, 4,-4, 0, 1,-1,-1,-4,-4,-1,-3,-4,-2, 0,-1,-5,-3,-4, 4, 621 -1, 0, 0, 1,-4, 3, 4,-3, 0,-4,-3, 1,-2,-4,-2, 0,-1,-4,-3,-3, 0, 4, 622 -1,-1,-1,-2,-3,-1,-1,-2,-2,-2,-2,-1,-1,-2,-2,-1,-1,-3,-2,-1,-2,-1,-1, 623 -1,-1,-1,-2,-3,-1,-1,-2,-2,-2,-2,-1,-1,-2,-2,-1,-1,-3,-2,-1,-2,-1,-1, 6}; 624 625 /* OPTIMA_5 matrix: Kann et al. (2000) Proteins 41:498-503 */ 626 627 int aopt5[450] = { 628 7, 629 -2,11, 630 -4, 1,12, 631 -4,-4, 4,13, 632 1,-6,-6,-6,20, 633 -1, 2, 0, 0,-6, 9, 634 -2, 0, 1, 4,-8, 4, 8, 635 1,-4, 1,-2,-6,-4,-5,13, 636 -4, 1, 2,-2,-6, 0, 0,-4,17, 637 -1,-6,-6,-7,-1,-6,-7,-8,-6, 7, 638 -1,-4,-7,-9,-1,-5,-6,-8,-5, 6, 6, 639 -2, 6, 0,-1,-6, 3, 3,-4,-1,-6,-4, 7, 640 -2,-2,-4,-6,-2, 0,-4,-6,-4, 2, 5,-2,10, 641 -4,-6,-6,-7,-4,-6,-6,-6,-2, 1, 3,-6, 0,11, 642 -1,-4,-4,-1,-6,-2,-1,-4,-4,-6,-7,-2,-4,-8,15, 643 2,-2, 2, 1,-2, 0, 0, 0,-2,-4,-4, 1,-2,-4,-2, 7, 644 0,-2, 0,-2,-2,-2,-1,-3,-4,-2,-3,-2,-1,-4,-2, 4, 9, 645 -6,-6,-8,-8,-4,-4,-6,-4,-4,-6,-3,-6,-2, 3,-8,-6,-4,22, 646 -4,-3,-4,-4,-4,-2,-4,-6, 4,-2, 0,-4,-2, 7,-6,-4,-4, 4,14, 647 1,-7,-6,-6,-1,-4,-6,-6,-6, 7, 3,-5, 2, 0,-4,-5, 1,-6,-2, 8, 648 -4,-1, 8,10,-6, 0, 3, 0, 1,-7,-8, 0,-5,-6,-2, 1,-1,-8,-4,-6, 9, 649 -1, 1, 0, 3,-7, 6, 6,-4, 0,-6,-6, 3,-2,-6,-2, 0,-1,-5,-3,-5, 2, 6, 650 -2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2, 651 -2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,10}; 652 653 /* DNA alphabet 654 655 A, C, G, T, U 1-4, 5 656 R, Y 6, 7 657 M (A or C) 8 658 W (A or T) 9 659 S (C or G) 10 660 K (G or T) 11 661 D (not C) 12 662 H (not G) 13 663 V (not T) 14 664 B (not A) 15 665 N 16 666 X 17 667 */ 668 669 char nt[MAXSQ+1] ={"\0ACGTURYMWSKDHVBNXACGTURYMWSKDHVBNX\0"}; 670 char ntx[MAXSQ+1]={"\0ACGTURYMWSKDHVBNXacgturymwskdhvbnx\0"}; 671 char ntc[MAXSQ+1]={"\0TGCAAYRKWSMHDBVNXtgcaayrkwsmhdbvnx\0"}; 672 673 /* nt complement to encoding */ 674 /* A:T C:G G:C T:A U:A */ 675 int gc_nt[MAXSQ+1]={ 0, 4, 3, 2, 1, 1, 676 /* R:Y Y:R M:K W:W */ 677 7, 6, 11, 9, 678 /* S:S K:M D:H H:D */ 679 10, 8, 13, 12, 680 /* B:V V:B N:N X:X */ 681 15, 14, 16, 16}; 682 683 int nnt = 17; 684 int nntx = 34; 685 686 int hnt[MAXSQ+1] = { 687 NMAP,0,1,2,3,3,0,1,0,0,1,2,0,0,0,1,NMAP, 688 NMAP,0,1,2,3,3,0,1,0,0,1,2,0,0,0,1,NMAP,NMAP}; 689 int hntx[MAXSQ+1] = { 690 NMAP,0,1,2,3,3,0,1,0,0,1,2,0,0,0,1,NMAP, 691 NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP, 692 NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP,NMAP}; 693 694 int npam[450] = { 695 /* A C G T U R Y M W S K D H V B N X */ 696 5, /* A */ 697 -4, 5, /* C */ 698 -4,-4, 5, /* G */ 699 -4,-4,-4, 5, /* T */ 700 -4,-4,-4, 5, 5, /* U */ 701 2,-1, 2,-1,-1, 2, /* R (A G)*/ 702 -1, 2,-1, 2, 2,-2, 2, /* Y (C T)*/ 703 2, 2,-1,-1,-1,-1,-1, 2, /* M (A C)*/ 704 2,-1,-1, 2, 2, 1, 1, 1, 2, /* W (A T)*/ 705 -1, 2, 2,-1,-1, 1, 1, 1,-1, 2, /* S (C G)*/ 706 -1,-1, 2, 2, 2, 1, 1,-1, 1, 1, 2, /* K (G T)*/ 707 1,-2, 1, 1, 1, 1,-1,-1, 1,-1, 1, 1, /* D (!C) */ 708 1, 1,-2, 1, 1,-1, 1, 1, 1,-1,-1,-1, 1, /* H (!G) */ 709 1, 1, 1,-2,-2, 1,-1, 1,-1, 1,-1,-1,-1, 1, /* V (!T) */ 710 -2, 1, 1, 1, 1,-1, 1,-1,-1, 1, 1,-1,-1,-1, 1, /* B (!A) */ 711 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* N */ 712 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; /* X */ 713 /* A C G T U R Y M W S K D H V B N */ 714 715 int *pam; /* Pam matrix- 1D */ 716 /* int *pam12; */ 717 /* int *pam12x; */ 718 int pamh1[MAXSQ+1]; /* used for kfact replacement */ 719 720 /* according to Reese and Pearson (2002) Bioinformatics 18:1500-1507 721 the most effective gap penalties for matrices in 1/3 bit united are: 722 open = 25 - 0.1 * Pam_distance; ext = 5 723 */ 724 725 /* 16-Nov-2010 modified for modern gap open/gap extend 726 */ 727 728 729 /* must be ordered by entropy to adjust scoring matrix for query 730 length */ 731 732 #include <math.h> 733 #ifndef M_LN2 734 #define M_LN2 0.69314718055994530942 735 #endif 736 737 #define BIT2_SCALE M_LN2/2.0 738 #define BIT3_SCALE M_LN2/3.0 739 #define BIT5_SCALE M_LN2/5.0 740 741 /* abbrev, name, matrix, scale, ulambda, entropy, tfract_id, gopen, gext */ 742 struct std_pam_str std_pams[] = { 743 {"VT10", "VT10", a_vt10, BIT2_SCALE, 0.2299, 3.4474, 0.9107, -16, -2}, 744 {"P10", "MD10", a_md10, BIT3_SCALE, 0.2299, 3.4474, 0.9107, -23, -4}, 745 {"M10", "MD10", a_md10, BIT3_SCALE, 0.2299, 3.4474, 0.9107, -23, -4}, 746 {"MD10", "MD10", a_md10, BIT3_SCALE, 0.2299, 3.46293, 0.9107, -23, -4}, 747 {"VT20", "VT20", a_vt20, BIT2_SCALE, 0.2300, 2.921119, 0.8312, -15, -2}, 748 {"P20", "MD20", a_md20, BIT3_SCALE, 0.2300, 2.9397, 0.822, -22, -4}, 749 {"M20", "MD20", a_md20, BIT3_SCALE, 0.2300, 2.9397, 0.822, -22, -4}, 750 {"MD20", "MD20", a_md20, BIT3_SCALE, 0.2300, 2.9397, 0.822, -22, -4}, 751 {"VT40", "VT40", a_vt40, BIT2_SCALE, 0.2305, 2.266217, 0.6968, -14, -2}, 752 {"P40", "MD40", a_md40, BIT3_SCALE, 0.2305, 2.2284, 0.679, -21, -4}, 753 {"M40", "MD40", a_md40, BIT3_SCALE, 0.2305, 2.2284, 0.679, -21, -4}, 754 {"MD40", "MD40", a_md40, BIT3_SCALE, 0.2305, 2.2284, 0.679, -21, -4}, 755 {"VT80", "VT80", a_vt80, BIT2_SCALE, 0.2305, 1.390771, 0.5024, -14, -2}, 756 {"BL80", "BL80", abl80, BIT2_SCALE, 0.2259, 0.9128, 0.392, -10, -2}, 757 {"VT120","VT120", a_vt120, BIT2_SCALE, 0.3416, 0.938201, 0.3748, -10, -1}, 758 {"P120","PAM120", apam120, BIT3_SCALE, 0.3416, 0.9062, 0.353, -14, -3}, 759 {"BL62", "BL62", abl62, BIT2_SCALE, 0.3716, 0.6979, 0.302, -11, -1}, 760 {"BP62", "BL62", abl62, BIT2_SCALE, 0.3716, 0.6979, 0.302, -11, -1}, 761 {"VT160","VT160", a_vt160, BIT3_SCALE, 0.2263, 0.617215, 0.2884, -12, -2}, 762 {"BL50", "BL50", abl50, BIT3_SCALE, 0.2318, 0.4850, 0.273, -10, -2}, 763 {"OPT5","OPTIMA5", aopt5, BIT5_SCALE, 0.1432, 0.4560, 0.262, -18, -2}, 764 {"VT200","VTM200",a_vt200, BIT3_SCALE, 0.2252, 0.4121, 0.2295, -10, -2}, 765 {"P250", "PAM250",apam250, BIT3_SCALE, 0.2252, 0.3207, 0.185, -10, -2}, 766 {"\0", "\0", NULL, 0.0, 0.0, 0.0, 0.0, 0, 0} 767 }; 768 769 /* Robinson & Robinson counts (based on old aa[] ordering) */ 770 long rrcounts[25] = { 771 0, 772 35155, /* A */ 773 23105, /* R */ 774 20212, /* N */ 775 24161, /* D */ 776 8669, /* C */ 777 19208, /* Q */ 778 28354, /* E */ 779 33229, /* G */ 780 9906, /* H */ 781 23161, /* I */ 782 40625, /* L */ 783 25872, /* K */ 784 10101, /* M */ 785 17367, /* F */ 786 23435, /* P */ 787 32070, /* S */ 788 26311, /* T */ 789 5990, /* W */ 790 14488, /* Y */ 791 29012, /* V */ 792 0, /* B */ 793 0, /* Z */ 794 0, /* X */ 795 0 /* * */ 796 }; 797 798 long rrtotal = 450431; 799 #else 800 801 /* extern char sqnam[]; */ 802 /* extern char sqtype[]; */ 803 /* extern int gdelval, ggapval; */ 804 extern int pamoff; 805 806 extern char *NCBIstdaa; 807 extern char *NCBIstdaa_l; 808 extern char NCBIstdaa_n; 809 extern char *NCBIstdaa_ext; 810 extern char NCBIstdaa_ext_n; 811 extern char *pam_sq; 812 extern char *apam_sq; 813 extern char *npam_sq; 814 extern int pam_sq_n; 815 extern int apam_sq_n; 816 extern int npam_sq_n; 817 818 /* 819 extern char aa[MAXSQ+1]; 820 extern char aax[MAXSQ+1]; 821 */ 822 extern char pssm_aa[26]; 823 extern char othx[MAXSQ+1]; 824 extern char nt[MAXSQ+1]; 825 extern char ntx[MAXSQ+1]; 826 extern char ntc[MAXSQ+1]; 827 extern int gc_nt[MAXSQ+1]; 828 829 extern int naa; 830 extern int naax; 831 extern int noth; 832 extern int nothx; 833 extern int nnt; 834 extern int nntx; 835 836 extern int h_NCBIstdaa[MAXSQ+1]; 837 extern int h_NCBIstdaa_ext[MAXSQ+1]; 838 /* 839 extern int haa[MAXSQ+1]; 840 extern int haax[MAXSQ+1]; 841 */ 842 extern int hnt[MAXSQ+1]; 843 extern int hntx[MAXSQ+1]; 844 /* extern int had[MAXSQ+1]; */ 845 846 extern int apam250[450]; 847 extern int apam120[450]; 848 extern int a_vt10[450]; 849 extern int a_vt20[450]; 850 extern int a_vt40[450]; 851 extern int a_vt80[450]; 852 extern int a_vt120[450]; 853 extern int a_vt160[450]; 854 extern int a_vt200[450]; 855 extern int a_md10[450]; 856 extern int a_md20[450]; 857 extern int a_md40[450]; 858 extern int abl50[450]; 859 extern int abl62[450]; 860 extern int abl80[450]; 861 extern int aopt5[450]; 862 extern int npam[450]; 863 extern int *pam; 864 /* extern int *pam12; */ 865 /* extern int *pam12x; */ 866 extern int pamh1[MAXSQ+1]; 867 extern long rrcounts[25]; 868 extern long rrtotal; 869 870 extern struct std_pam_str std_pams[]; 871 #endif 872 #endif 873