| 1 | /* |
|---|
| 2 | Current free energy parameters are summarized in: |
|---|
| 3 | |
|---|
| 4 | D.H.Mathews, J. Sabina, M. ZUker, D.H. Turner |
|---|
| 5 | "Expanded sequence dependence of thermodynamic parameters improves |
|---|
| 6 | prediction of RNA secondary structure" |
|---|
| 7 | JMB, 288, pp 911-940, 1999 |
|---|
| 8 | |
|---|
| 9 | Enthalpies taken from: |
|---|
| 10 | |
|---|
| 11 | A. Walter, D Turner, J Kim, M Lyttle, P M"uller, D Mathews, M Zuker |
|---|
| 12 | "Coaxial stckaing of helices enhances binding of oligoribonucleotides.." |
|---|
| 13 | PNAS, 91, pp 9218-9222, 1994 |
|---|
| 14 | |
|---|
| 15 | D.H. Turner, N. Sugimoto, and S.M. Freier. |
|---|
| 16 | "RNA Structure Prediction", |
|---|
| 17 | Ann. Rev. Biophys. Biophys. Chem. 17, 167-192, 1988. |
|---|
| 18 | |
|---|
| 19 | John A.Jaeger, Douglas H.Turner, and Michael Zuker. |
|---|
| 20 | "Improved predictions of secondary structures for RNA", |
|---|
| 21 | PNAS, 86, 7706-7710, October 1989. |
|---|
| 22 | |
|---|
| 23 | L. He, R. Kierzek, J. SantaLucia, A.E. Walter, D.H. Turner |
|---|
| 24 | "Nearest-Neughbor Parameters for GU Mismatches...." |
|---|
| 25 | Biochemistry 1991, 30 11124-11132 |
|---|
| 26 | |
|---|
| 27 | A.E. Peritz, R. Kierzek, N, Sugimoto, D.H. Turner |
|---|
| 28 | "Thermodynamic Study of Internal Loops in Oligoribonucleotides..." |
|---|
| 29 | Biochemistry 1991, 30, 6428--6435 |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | */ |
|---|
| 33 | |
|---|
| 34 | #ifndef ENERGY_PARAM_H |
|---|
| 35 | #define ENERGY_PARAM_H |
|---|
| 36 | |
|---|
| 37 | #include <iostream> |
|---|
| 38 | #include <cstdlib> // by katoh |
|---|
| 39 | |
|---|
| 40 | using namespace std; |
|---|
| 41 | namespace MXSCARNA { |
|---|
| 42 | class energy_param { |
|---|
| 43 | |
|---|
| 44 | static const int INF; |
|---|
| 45 | static const int NST; |
|---|
| 46 | static const int DEF; |
|---|
| 47 | |
|---|
| 48 | static const double lxc37; /* parameter for logarithmic loop |
|---|
| 49 | energy extrapolation */ |
|---|
| 50 | static const int stack37[8][8]; |
|---|
| 51 | static const int enthalpies[8][8]; |
|---|
| 52 | static const int oldhairpin37[31]; |
|---|
| 53 | static const int hairpin37[31]; |
|---|
| 54 | static const int oldbulge37[31]; |
|---|
| 55 | static const int bulge37[31]; |
|---|
| 56 | static const int oldinternal_loop37[31]; |
|---|
| 57 | static const int internal_loop37[31]; |
|---|
| 58 | static const int mismatchI37[8][5][5]; |
|---|
| 59 | static const int mismatchH37[8][5][5]; |
|---|
| 60 | static const int mism_H[8][5][5]; |
|---|
| 61 | static const int dangle5_37[8][5]; |
|---|
| 62 | static const int dangle3_37[8][5]; |
|---|
| 63 | static const int dangle3_H[8][5]; |
|---|
| 64 | static const int dangle5_H[8][5]; |
|---|
| 65 | static const int ML_BASE37; |
|---|
| 66 | static const int ML_closing37; |
|---|
| 67 | static const int ML_intern37; |
|---|
| 68 | static const int MAX_NINIO; |
|---|
| 69 | static const int F_ninio37[5]; |
|---|
| 70 | static const char Tetraloops[1400]; |
|---|
| 71 | static const char Tetrastrings[30][7]; |
|---|
| 72 | static const int TETRA_ENERGY37[200]; |
|---|
| 73 | static const int TETRA_ENTH37; |
|---|
| 74 | static const int TerminalAU; |
|---|
| 75 | static const int DuplexInit; |
|---|
| 76 | |
|---|
| 77 | static const int int11_37[8][8][5][5]; |
|---|
| 78 | static const int int11_H[8][8][5][5]; |
|---|
| 79 | static const int int21_37[8][8][5][5][5]; |
|---|
| 80 | static const int int21_H[8][8][5][5][5]; |
|---|
| 81 | static const int int22_37[8][8][5][5][5][5]; |
|---|
| 82 | static const int int22_H[8][8][5][5][5][5]; |
|---|
| 83 | |
|---|
| 84 | int convertPairType(int type); |
|---|
| 85 | int convertBaseType(int type); |
|---|
| 86 | int convertLeftType(int type); |
|---|
| 87 | int convertRightType(int type); |
|---|
| 88 | |
|---|
| 89 | public: |
|---|
| 90 | int getMaxNinio(); |
|---|
| 91 | int getNinio(int i); |
|---|
| 92 | int getDangle5(int i, int j); |
|---|
| 93 | int getDangle3(int i, int j); |
|---|
| 94 | int getHairpin(int i); |
|---|
| 95 | int getInternalLoop(int i); |
|---|
| 96 | int getBulge(int i); |
|---|
| 97 | const char *getTetraLoop(int i); |
|---|
| 98 | int getTetraLoopEnergy(int i); |
|---|
| 99 | int getStack(int i, int j); |
|---|
| 100 | int getTstackH(int i, int j); |
|---|
| 101 | int getTstackI(int i, int j); |
|---|
| 102 | int getInt11(int i, int j, int k); |
|---|
| 103 | int getInt21(int i, int j, int k, int l); |
|---|
| 104 | int getInt22(int i, int j, int k, int l); |
|---|
| 105 | int getMLintern(); |
|---|
| 106 | int getMLBase(); |
|---|
| 107 | int getMLclosing(); |
|---|
| 108 | int getTerminalAU(); |
|---|
| 109 | }; |
|---|
| 110 | } |
|---|
| 111 | #endif |
|---|