00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OPENMS_CHEMISTRY_AAINDEX_H
00036 #define OPENMS_CHEMISTRY_AAINDEX_H
00037
00038 #include <OpenMS/CONCEPT/Exception.h>
00039 #include <OpenMS/CONCEPT/Constants.h>
00040
00041 #include <cmath>
00042
00043 namespace OpenMS
00044 {
00070 class OPENMS_DLLAPI AAIndex
00071 {
00072 public:
00073
00075 static DoubleReal aliphatic(char aa)
00076 {
00077 if (aa == 'A' || aa == 'G' || aa == 'F' || aa == 'I' || aa == 'M' || aa == 'L' || aa == 'P' || aa == 'V')
00078 {
00079 return 1.0;
00080 }
00081 else
00082 {
00083 return 0.0;
00084 }
00085 }
00086
00088 static DoubleReal acidic(char aa)
00089 {
00090 if (aa == 'D' || aa == 'E')
00091 {
00092 return 1.0;
00093 }
00094 else
00095 {
00096 return 0.0;
00097 }
00098 }
00099
00101 static DoubleReal basic(char aa)
00102 {
00103 if (aa == 'K' || aa == 'R' || aa == 'H' || aa == 'W')
00104 {
00105 return 1.0;
00106 }
00107 else
00108 {
00109 return 0.0;
00110 }
00111 }
00112
00114 static DoubleReal polar(char aa)
00115 {
00116 if (aa == 'S' || aa == 'T' || aa == 'Y' || aa == 'H' || aa == 'C' || aa == 'N' || aa == 'Q' || aa == 'W')
00117 {
00118 return 1.0;
00119 }
00120 else
00121 {
00122 return 0.0;
00123 }
00124 }
00125
00126
00127
00128
00139 static DoubleReal getKHAG800101(char aa)
00140 {
00141 switch (aa)
00142 {
00143 case 'A':
00144 return 49.1;
00145
00146 break;
00147
00148 case 'R':
00149 return 133.;
00150
00151 break;
00152
00153 case 'N':
00154 return -3.6;
00155
00156 break;
00157
00158 case 'D':
00159 return 0.;
00160
00161 break;
00162
00163 case 'C':
00164 return 0.;
00165
00166 break;
00167
00168 case 'Q':
00169 return 20.;
00170
00171 break;
00172
00173 case 'E':
00174 return 0.;
00175
00176 break;
00177
00178 case 'G':
00179 return 64.6;
00180
00181 break;
00182
00183 case 'H':
00184 return 75.7;
00185
00186 break;
00187
00188 case 'I':
00189 return 18.9;
00190
00191 break;
00192
00193 case 'L':
00194 return 15.6;
00195
00196 break;
00197
00198 case 'K':
00199 return 0.;
00200
00201 break;
00202
00203 case 'M':
00204 return 6.8;
00205
00206 break;
00207
00208 case 'F':
00209 return 54.7;
00210
00211 break;
00212
00213 case 'P':
00214 return 43.8;
00215
00216 break;
00217
00218 case 'S':
00219 return 44.4;
00220
00221 break;
00222
00223 case 'T':
00224 return 31.0;
00225
00226 break;
00227
00228 case 'W':
00229 return 70.5;
00230
00231 break;
00232
00233 case 'Y':
00234 return 0.;
00235
00236 break;
00237
00238 case 'V':
00239 return 29.5;
00240
00241 break;
00242
00243 default:
00244 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00245 }
00246 }
00247
00248
00249
00250
00251
00263 static DoubleReal getVASM830103(char aa)
00264 {
00265 switch (aa)
00266 {
00267 case 'A':
00268 return 0.159;
00269
00270 break;
00271
00272 case 'R':
00273 return 0.194;
00274
00275 break;
00276
00277 case 'N':
00278 return 0.385;
00279
00280 break;
00281
00282 case 'D':
00283 return 0.283;
00284
00285 break;
00286
00287 case 'C':
00288 return 0.187;
00289
00290 break;
00291
00292 case 'Q':
00293 return 0.236;
00294
00295 break;
00296
00297 case 'E':
00298 return 0.206;
00299
00300 break;
00301
00302 case 'G':
00303 return 0.049;
00304
00305 break;
00306
00307 case 'H':
00308 return 0.233;
00309
00310 break;
00311
00312 case 'I':
00313 return 0.581;
00314
00315 break;
00316
00317 case 'L':
00318 return 0.083;
00319
00320 break;
00321
00322 case 'K':
00323 return 0.159;
00324
00325 break;
00326
00327 case 'M':
00328 return 0.198;
00329
00330 break;
00331
00332 case 'F':
00333 return 0.682;
00334
00335 break;
00336
00337 case 'P':
00338 return 0.366;
00339
00340 break;
00341
00342 case 'S':
00343 return 0.150;
00344
00345 break;
00346
00347 case 'T':
00348 return 0.074;
00349
00350 break;
00351
00352 case 'W':
00353 return 0.463;
00354
00355 break;
00356
00357 case 'Y':
00358 return 0.737;
00359
00360 break;
00361
00362 case 'V':
00363 return 0.301;
00364
00365 break;
00366
00367 default:
00368 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00369 }
00370 }
00371
00372
00373
00374
00375
00376
00377
00378
00379
00390 static DoubleReal getNADH010106(char aa)
00391 {
00392 switch (aa)
00393 {
00394 case 'A':
00395 return 5;
00396
00397 break;
00398
00399 case 'R':
00400 return -57;
00401
00402 break;
00403
00404 case 'N':
00405 return -77;
00406
00407 break;
00408
00409 case 'D':
00410 return 45;
00411
00412 break;
00413
00414 case 'C':
00415 return 224;
00416
00417 break;
00418
00419 case 'Q':
00420 return -67;
00421
00422 break;
00423
00424 case 'E':
00425 return -8;
00426
00427 break;
00428
00429 case 'G':
00430 return -47;
00431
00432 break;
00433
00434 case 'H':
00435 return -50;
00436
00437 break;
00438
00439 case 'I':
00440 return 83;
00441
00442 break;
00443
00444 case 'L':
00445 return 82;
00446
00447 break;
00448
00449 case 'K':
00450 return -38;
00451
00452 break;
00453
00454 case 'M':
00455 return 83;
00456
00457 break;
00458
00459 case 'F':
00460 return 117;
00461
00462 break;
00463
00464 case 'P':
00465 return -103;
00466
00467 break;
00468
00469 case 'S':
00470 return -41;
00471
00472 break;
00473
00474 case 'T':
00475 return 79;
00476
00477 break;
00478
00479 case 'W':
00480 return 130;
00481
00482 break;
00483
00484 case 'Y':
00485 return 27;
00486
00487 break;
00488
00489 case 'V':
00490 return 117;
00491
00492 break;
00493
00494 default:
00495 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00496 }
00497 }
00498
00499
00500
00501
00502
00503
00514 static DoubleReal getNADH010107(char aa)
00515 {
00516 switch (aa)
00517 {
00518 case 'A':
00519 return -2;
00520
00521 break;
00522
00523 case 'R':
00524 return -41;
00525
00526 break;
00527
00528 case 'N':
00529 return -97;
00530
00531 break;
00532
00533 case 'D':
00534 return 248;
00535
00536 break;
00537
00538 case 'C':
00539 return 329;
00540
00541 break;
00542
00543 case 'Q':
00544 return -37;
00545
00546 break;
00547
00548 case 'E':
00549 return 117;
00550
00551 break;
00552
00553 case 'G':
00554 return -66;
00555
00556 break;
00557
00558 case 'H':
00559 return -70;
00560
00561 break;
00562
00563 case 'I':
00564 return 28;
00565
00566 break;
00567
00568 case 'L':
00569 return 36;
00570
00571 break;
00572
00573 case 'K':
00574 return 115;
00575
00576 break;
00577
00578 case 'M':
00579 return 62;
00580
00581 break;
00582
00583 case 'F':
00584 return 120;
00585
00586 break;
00587
00588 case 'P':
00589 return -132;
00590
00591 break;
00592
00593 case 'S':
00594 return -52;
00595
00596 break;
00597
00598 case 'T':
00599 return 174;
00600
00601 break;
00602
00603 case 'W':
00604 return 179;
00605
00606 break;
00607
00608 case 'Y':
00609 return -7;
00610
00611 break;
00612
00613 case 'V':
00614 return 114;
00615
00616 break;
00617
00618 default:
00619 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00620 }
00621 }
00622
00623
00624
00625
00626
00627
00639 static DoubleReal getWILM950102(char aa)
00640 {
00641 switch (aa)
00642 {
00643 case 'A':
00644 return 2.62;
00645
00646 break;
00647
00648 case 'R':
00649 return 1.26;
00650
00651 break;
00652
00653 case 'N':
00654 return -1.27;
00655
00656 break;
00657
00658 case 'D':
00659 return -2.84;
00660
00661 break;
00662
00663 case 'C':
00664 return 0.73;
00665
00666 break;
00667
00668 case 'Q':
00669 return -1.69;
00670
00671 break;
00672
00673 case 'E':
00674 return -0.45;
00675
00676 break;
00677
00678 case 'G':
00679 return -1.15;
00680
00681 break;
00682
00683 case 'H':
00684 return -0.74;
00685
00686 break;
00687
00688 case 'I':
00689 return 4.38;
00690
00691 break;
00692
00693 case 'L':
00694 return 6.57;
00695
00696 break;
00697
00698 case 'K':
00699 return -2.78;
00700
00701 break;
00702
00703 case 'M':
00704 return -3.12;
00705
00706 break;
00707
00708 case 'F':
00709 return 9.14;
00710
00711 break;
00712
00713 case 'P':
00714 return -0.12;
00715
00716 break;
00717
00718 case 'S':
00719 return -1.39;
00720
00721 break;
00722
00723 case 'T':
00724 return 1.81;
00725
00726 break;
00727
00728 case 'W':
00729 return 5.91;
00730
00731 break;
00732
00733 case 'Y':
00734 return 1.39;
00735
00736 break;
00737
00738 case 'V':
00739 return 2.30;
00740
00741 break;
00742
00743 default:
00744 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00745 }
00746 }
00747
00748
00749
00750
00751
00762 static DoubleReal getROBB760107(char aa)
00763 {
00764 switch (aa)
00765 {
00766 case 'A':
00767 return 0.0;
00768
00769 break;
00770
00771 case 'R':
00772 return 1.1;
00773
00774 break;
00775
00776 case 'N':
00777 return -2.0;
00778
00779 break;
00780
00781 case 'D':
00782 return -2.6;
00783
00784 break;
00785
00786 case 'C':
00787 return 5.4;
00788
00789 break;
00790
00791 case 'Q':
00792 return 2.4;
00793
00794 break;
00795
00796 case 'E':
00797 return 3.1;
00798
00799 break;
00800
00801 case 'G':
00802 return -3.4;
00803
00804 break;
00805
00806 case 'H':
00807 return 0.8;
00808
00809 break;
00810
00811 case 'I':
00812 return -0.1;
00813
00814 break;
00815
00816 case 'L':
00817 return -3.7;
00818
00819 break;
00820
00821 case 'K':
00822 return -3.1;
00823
00824 break;
00825
00826 case 'M':
00827 return -2.1;
00828
00829 break;
00830
00831 case 'F':
00832 return 0.7;
00833
00834 break;
00835
00836 case 'P':
00837 return 7.4;
00838
00839 break;
00840
00841 case 'S':
00842 return 1.3;
00843
00844 break;
00845
00846 case 'T':
00847 return 0.0;
00848
00849 break;
00850
00851 case 'W':
00852 return -3.4;
00853
00854 break;
00855
00856 case 'Y':
00857 return 4.8;
00858
00859 break;
00860
00861 case 'V':
00862 return 2.7;
00863
00864 break;
00865
00866 default:
00867 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00868 }
00869 }
00870
00871
00872
00873
00874
00886 static DoubleReal getOOBM850104(char aa)
00887 {
00888 switch (aa)
00889 {
00890 case 'A':
00891 return -2.49;
00892
00893 break;
00894
00895 case 'R':
00896 return 2.55;
00897
00898 break;
00899
00900 case 'N':
00901 return 2.27;
00902
00903 break;
00904
00905 case 'D':
00906 return 8.86;
00907
00908 break;
00909
00910 case 'C':
00911 return -3.13;
00912
00913 break;
00914
00915 case 'Q':
00916 return 1.79;
00917
00918 break;
00919
00920 case 'E':
00921 return 4.04;
00922
00923 break;
00924
00925 case 'G':
00926 return -0.56;
00927
00928 break;
00929
00930 case 'H':
00931 return 4.22;
00932
00933 break;
00934
00935 case 'I':
00936 return -10.87;
00937
00938 break;
00939
00940 case 'L':
00941 return -7.16;
00942
00943 break;
00944
00945 case 'K':
00946 return -9.97;
00947
00948 break;
00949
00950 case 'M':
00951 return -4.96;
00952
00953 break;
00954
00955 case 'F':
00956 return -6.64;
00957
00958 break;
00959
00960 case 'P':
00961 return 5.19;
00962
00963 break;
00964
00965 case 'S':
00966 return -1.60;
00967
00968 break;
00969
00970 case 'T':
00971 return -4.75;
00972
00973 break;
00974
00975 case 'W':
00976 return -17.84;
00977
00978 break;
00979
00980 case 'Y':
00981 return 9.25;
00982
00983 break;
00984
00985 case 'V':
00986 return -3.97;
00987
00988 break;
00989
00990 default:
00991 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
00992 }
00993 }
00994
00995
00996
00997
00998
00999
01011 static DoubleReal getFAUJ880111(char aa)
01012 {
01013 switch (aa)
01014 {
01015 case 'A':
01016 return 0.;
01017
01018 break;
01019
01020 case 'R':
01021 return 1.;
01022
01023 break;
01024
01025 case 'N':
01026 return 0.;
01027
01028 break;
01029
01030 case 'D':
01031 return 0.;
01032
01033 break;
01034
01035 case 'C':
01036 return 0.;
01037
01038 break;
01039
01040 case 'Q':
01041 return 0.;
01042
01043 break;
01044
01045 case 'E':
01046 return 0.;
01047
01048 break;
01049
01050 case 'G':
01051 return 0.;
01052
01053 break;
01054
01055 case 'H':
01056 return 1.;
01057
01058 break;
01059
01060 case 'I':
01061 return 0.;
01062
01063 break;
01064
01065 case 'L':
01066 return 0.;
01067
01068 break;
01069
01070 case 'K':
01071 return 1.;
01072
01073 break;
01074
01075 case 'M':
01076 return 0.;
01077
01078 break;
01079
01080 case 'F':
01081 return 0.;
01082
01083 break;
01084
01085 case 'P':
01086 return 0.;
01087
01088 break;
01089
01090 case 'S':
01091 return 0.;
01092
01093 break;
01094
01095 case 'T':
01096 return 0.;
01097
01098 break;
01099
01100 case 'W':
01101 return 0.;
01102
01103 break;
01104
01105 case 'Y':
01106 return 0.;
01107
01108 break;
01109
01110 case 'V':
01111 return 0.;
01112
01113 break;
01114
01115 default:
01116 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
01117 }
01118 }
01119
01120
01121
01122
01123
01124
01125
01126
01138 static DoubleReal getFINA770101(char aa)
01139 {
01140 switch (aa)
01141 {
01142 case 'A':
01143 return 1.08;
01144
01145 break;
01146
01147 case 'R':
01148 return 1.05;
01149
01150 break;
01151
01152 case 'N':
01153 return 0.85;
01154
01155 break;
01156
01157 case 'D':
01158 return 0.85;
01159
01160 break;
01161
01162 case 'C':
01163 return 0.95;
01164
01165 break;
01166
01167 case 'Q':
01168 return 0.95;
01169
01170 break;
01171
01172 case 'E':
01173 return 1.15;
01174
01175 break;
01176
01177 case 'G':
01178 return 0.55;
01179
01180 break;
01181
01182 case 'H':
01183 return 1.00;
01184
01185 break;
01186
01187 case 'I':
01188 return 1.05;
01189
01190 break;
01191
01192 case 'L':
01193 return 1.25;
01194
01195 break;
01196
01197 case 'K':
01198 return 1.15;
01199
01200 break;
01201
01202 case 'M':
01203 return 1.15;
01204
01205 break;
01206
01207 case 'F':
01208 return 1.10;
01209
01210 break;
01211
01212 case 'P':
01213 return 0.71;
01214
01215 break;
01216
01217 case 'S':
01218 return 0.75;
01219
01220 break;
01221
01222 case 'T':
01223 return 0.75;
01224
01225 break;
01226
01227 case 'W':
01228 return 1.10;
01229
01230 break;
01231
01232 case 'Y':
01233 return 1.10;
01234
01235 break;
01236
01237 case 'V':
01238 return 0.95;
01239
01240 break;
01241
01242 default:
01243 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
01244 }
01245 }
01246
01247
01248
01249
01250
01251
01262 static DoubleReal getARGP820102(char aa)
01263 {
01264 switch (aa)
01265 {
01266 case 'A':
01267 return 1.18;
01268
01269 break;
01270
01271 case 'R':
01272 return 0.20;
01273
01274 break;
01275
01276 case 'N':
01277 return 0.23;
01278
01279 break;
01280
01281 case 'D':
01282 return 0.05;
01283
01284 break;
01285
01286 case 'C':
01287 return 1.89;
01288
01289 break;
01290
01291 case 'Q':
01292 return 0.72;
01293
01294 break;
01295
01296 case 'E':
01297 return 0.11;
01298
01299 break;
01300
01301 case 'G':
01302 return 0.49;
01303
01304 break;
01305
01306 case 'H':
01307 return 0.31;
01308
01309 break;
01310
01311 case 'I':
01312 return 1.45;
01313
01314 break;
01315
01316 case 'L':
01317 return 3.23;
01318
01319 break;
01320
01321 case 'K':
01322 return 0.06;
01323
01324 break;
01325
01326 case 'M':
01327 return 2.67;
01328
01329 break;
01330
01331 case 'F':
01332 return 1.96;
01333
01334 break;
01335
01336 case 'P':
01337 return 0.76;
01338
01339 break;
01340
01341 case 'S':
01342 return 0.97;
01343
01344 break;
01345
01346 case 'T':
01347 return 0.84;
01348
01349 break;
01350
01351 case 'W':
01352 return 0.77;
01353
01354 break;
01355
01356 case 'Y':
01357 return 0.39;
01358
01359 break;
01360
01361 case 'V':
01362 return 1.08;
01363
01364 break;
01365
01366 default:
01367 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
01368 }
01369 }
01370
01381 static DoubleReal calculateGB(const AASequence & seq, DoubleReal T = 500.0)
01382 {
01383
01384 DoubleReal R = Constants::GAS_CONSTANT / 1000.0;
01385
01386 char left = '>';
01387 char right;
01388
01389 DoubleReal k_app = 0.0;
01390
01391
01392
01393
01394
01395
01396
01397 for (Size i = 0; i <= seq.size(); i++)
01398 {
01399
01400 if (i > 0)
01401 {
01402 Residue leftchar = seq[i - 1];
01403 left = leftchar.getOneLetterCode()[0];
01404 }
01405
01406
01407 if (i == seq.size())
01408 {
01409 right = '<';
01410 }
01411 else
01412 {
01413 Residue rightchar = seq[i];
01414 right = rightchar.getOneLetterCode()[0];
01415 }
01416 DoubleReal contrib = exp((GBleft_(left) + GBdeltaright_(right)) / (R * T));
01417 if (i > 0 && i < seq.size())
01418 {
01419 contrib += exp(GBsidechain_(right) / (R * T));
01420 }
01421 k_app += contrib;
01422 }
01423
01424 return R * T * log(k_app) / log(2.0);
01425 }
01426
01427 protected:
01428
01436 static DoubleReal GBsidechain_(char aa)
01437 {
01438 switch (aa)
01439 {
01440 case 'A':
01441 return 0.0;
01442
01443 break;
01444
01445 case 'C':
01446 return 0.0;
01447
01448 break;
01449
01450 case 'D':
01451 return 784.0;
01452
01453 break;
01454
01455 case 'E':
01456 return 790.0;
01457
01458 break;
01459
01460 case 'F':
01461 return 0.0;
01462
01463 break;
01464
01465 case 'G':
01466 return 0.0;
01467
01468 break;
01469
01470 case 'H':
01471 return 927.84;
01472
01473 break;
01474
01475 case 'I':
01476 return 0.0;
01477
01478 break;
01479
01480 case 'K':
01481 return 926.74;
01482
01483 break;
01484
01485 case 'L':
01486 return 0.0;
01487
01488 break;
01489
01490 case 'M':
01491 return 830.0;
01492
01493 break;
01494
01495 case 'N':
01496 return 864.94;
01497
01498 break;
01499
01500 case 'P':
01501 return 0.0;
01502
01503 break;
01504
01505 case 'Q':
01506 return 865.25;
01507
01508 break;
01509
01510 case 'R':
01511 return 1000.0;
01512
01513 break;
01514
01515 case 'S':
01516 return 775.0;
01517
01518 break;
01519
01520 case 'T':
01521 return 780.0;
01522
01523 break;
01524
01525 case 'V':
01526 return 0.0;
01527
01528 break;
01529
01530 case 'W':
01531 return 909.53;
01532
01533 break;
01534
01535 case 'Y':
01536 return 790.0;
01537
01538 break;
01539
01540 default:
01541 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
01542 }
01543
01544 return 0.0;
01545 }
01546
01554 static DoubleReal GBleft_(char aa)
01555 {
01556 switch (aa)
01557 {
01558 case 'A':
01559 return 881.82;
01560
01561 break;
01562
01563 case 'C':
01564 return 881.15;
01565
01566 break;
01567
01568 case 'D':
01569 return 880.02;
01570
01571 break;
01572
01573 case 'E':
01574 return 880.10;
01575
01576 break;
01577
01578 case 'F':
01579 return 881.08;
01580
01581 break;
01582
01583 case 'G':
01584 return 881.17;
01585
01586 break;
01587
01588 case 'H':
01589 return 881.27;
01590
01591 break;
01592
01593 case 'I':
01594 return 880.99;
01595
01596 break;
01597
01598 case 'K':
01599 return 880.06;
01600
01601 break;
01602
01603 case 'L':
01604 return 881.88;
01605
01606 break;
01607
01608 case 'M':
01609 return 881.38;
01610
01611 break;
01612
01613 case 'N':
01614 return 881.18;
01615
01616 break;
01617
01618 case 'P':
01619 return 881.25;
01620
01621 break;
01622
01623 case 'Q':
01624 return 881.50;
01625
01626 break;
01627
01628 case 'R':
01629 return 882.98;
01630
01631 break;
01632
01633 case 'S':
01634 return 881.08;
01635
01636 break;
01637
01638 case 'T':
01639 return 881.14;
01640
01641 break;
01642
01643 case 'V':
01644 return 881.17;
01645
01646 break;
01647
01648 case 'W':
01649 return 881.31;
01650
01651 break;
01652
01653 case 'Y':
01654 return 881.20;
01655
01656 break;
01657
01658 case '>':
01659 return 916.84;
01660
01661 break;
01662
01663 default:
01664 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
01665
01666 }
01667
01668 return 0.0;
01669 }
01670
01678 static DoubleReal GBdeltaright_(char aa)
01679 {
01680 switch (aa)
01681 {
01682 case 'A':
01683 return 0.0;
01684
01685 break;
01686
01687 case 'C':
01688 return -0.69;
01689
01690 break;
01691
01692 case 'D':
01693 return -0.63;
01694
01695 break;
01696
01697 case 'E':
01698 return -0.39;
01699
01700 break;
01701
01702 case 'F':
01703 return 0.03;
01704
01705 break;
01706
01707 case 'G':
01708 return 0.92;
01709
01710 break;
01711
01712 case 'H':
01713 return -0.19;
01714
01715 break;
01716
01717 case 'I':
01718 return -1.17;
01719
01720 break;
01721
01722 case 'K':
01723 return -0.71;
01724
01725 break;
01726
01727 case 'L':
01728 return -0.09;
01729
01730 break;
01731
01732 case 'M':
01733 return 0.30;
01734
01735 break;
01736
01737 case 'N':
01738 return 1.56;
01739
01740 break;
01741
01742 case 'P':
01743 return 11.75;
01744
01745 break;
01746
01747 case 'Q':
01748 return 4.10;
01749
01750 break;
01751
01752 case 'R':
01753 return 6.28;
01754
01755 break;
01756
01757 case 'S':
01758 return 0.98;
01759
01760 break;
01761
01762 case 'T':
01763 return 1.21;
01764
01765 break;
01766
01767 case 'V':
01768 return -0.90;
01769
01770 break;
01771
01772 case 'W':
01773 return 0.10;
01774
01775 break;
01776
01777 case 'Y':
01778 return -0.38;
01779
01780 break;
01781
01782 case '<':
01783 return -95.82;
01784
01785 break;
01786
01787 default:
01788 throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, "Unkown amino acid one-letter-code", String(aa));
01789 }
01790
01791 return 0.0;
01792 }
01793
01794 private:
01795
01797 AAIndex();
01798 };
01799
01800 }
01801 #endif