new mafft v 6.857 with extensions
[jabaws.git] / binaries / src / mafft / extensions / mxscarna_src / vienna / energy_param.hpp
diff --git a/binaries/src/mafft/extensions/mxscarna_src/vienna/energy_param.hpp b/binaries/src/mafft/extensions/mxscarna_src/vienna/energy_param.hpp
new file mode 100644 (file)
index 0000000..b6bcd4c
--- /dev/null
@@ -0,0 +1,111 @@
+/* 
+    Current free energy parameters are summarized in:
+
+    D.H.Mathews, J. Sabina, M. ZUker, D.H. Turner
+    "Expanded sequence dependence of thermodynamic parameters improves
+    prediction of RNA secondary structure"
+    JMB, 288, pp 911-940, 1999
+
+    Enthalpies taken from:
+    
+    A. Walter, D Turner, J Kim, M Lyttle, P M"uller, D Mathews, M Zuker
+    "Coaxial stckaing of helices enhances binding of oligoribonucleotides.."
+    PNAS, 91, pp 9218-9222, 1994
+    
+    D.H. Turner, N. Sugimoto, and S.M. Freier.
+    "RNA Structure Prediction",
+    Ann. Rev. Biophys. Biophys. Chem. 17, 167-192, 1988.
+
+    John A.Jaeger, Douglas H.Turner, and Michael Zuker.
+    "Improved predictions of secondary structures for RNA",
+    PNAS, 86, 7706-7710, October 1989.
+    
+    L. He, R. Kierzek, J. SantaLucia, A.E. Walter, D.H. Turner
+    "Nearest-Neughbor Parameters for GU Mismatches...."
+    Biochemistry 1991, 30 11124-11132
+
+    A.E. Peritz, R. Kierzek, N, Sugimoto, D.H. Turner
+    "Thermodynamic Study of Internal Loops in Oligoribonucleotides..."
+    Biochemistry 1991, 30, 6428--6435
+
+    
+*/
+
+#ifndef ENERGY_PARAM_H
+#define ENERGY_PARAM_H
+
+#include <iostream>
+#include <cstdlib> // by katoh
+
+using namespace std;
+namespace MXSCARNA {
+class energy_param {
+
+    static const int    INF;
+    static const int    NST;
+    static const int    DEF;
+
+    static const double lxc37; /* parameter for logarithmic loop
+                             energy extrapolation            */
+    static const int stack37[8][8];
+    static const int enthalpies[8][8];
+    static const int oldhairpin37[31];
+    static const int hairpin37[31];
+    static const int oldbulge37[31];
+    static const int bulge37[31];
+    static const int oldinternal_loop37[31];
+    static const int internal_loop37[31];
+    static const int mismatchI37[8][5][5];
+    static const int mismatchH37[8][5][5];
+    static const int mism_H[8][5][5];
+    static const int dangle5_37[8][5];
+    static const int dangle3_37[8][5];
+    static const int dangle3_H[8][5];
+    static const int dangle5_H[8][5];
+    static const int ML_BASE37;
+    static const int ML_closing37;
+    static const int ML_intern37;
+    static const int MAX_NINIO;
+    static const int F_ninio37[5];
+    static const char Tetraloops[1400];
+    static const char Tetrastrings[30][7];
+    static const int TETRA_ENERGY37[200];
+    static const int TETRA_ENTH37;
+    static const int TerminalAU;
+    static const int DuplexInit;
+
+    static const int int11_37[8][8][5][5];
+    static const int int11_H[8][8][5][5];
+    static const int int21_37[8][8][5][5][5];
+    static const int int21_H[8][8][5][5][5];
+    static const int int22_37[8][8][5][5][5][5];
+    static const int int22_H[8][8][5][5][5][5];
+
+    int convertPairType(int type);
+    int convertBaseType(int type);
+    int convertLeftType(int type);
+    int convertRightType(int type);
+ public:
+    int getMaxNinio();
+    int getNinio(int i);
+    int getDangle5(int i, int j);
+    int getDangle3(int i, int j);
+    int getHairpin(int i);
+    int getInternalLoop(int i);
+    int getBulge(int i);
+    const char *getTetraLoop(int i);
+    int getTetraLoopEnergy(int i);
+    int getStack(int i, int j);
+    int getTstackH(int i, int j);
+    int getTstackI(int i, int j);
+    int getInt11(int i, int j, int k);
+    int getInt21(int i, int j, int k, int l);
+    int getInt22(int i, int j, int k, int l);
+    int getMLintern();
+    int getMLBase();
+    int getMLclosing();
+    int getTerminalAU();
+};
+}
+#endif