/*
Automatically generated using the TurnerParser
TurnerParser (c) 2008,2009,2010
Christian Hoener zu Siederdissen, TBI Vienna
choener (at) tbi.univie.ac.at
The library enabling this can be found at:
http://hackage.haskell.org/package/BiobaseVienna
the program can be found at:
(sorry, not yet)
install using cabal: cabal install (sorry, not yet)
*/
/*
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 stacking 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-Neighbor 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
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "ViennaRNA/energy_const.h"
#define NST 0 /* Energy for nonstandard stacked pairs */
#define DEF -50 /* Default terminal mismatch, used for I */
/* and any non_pairing bases */
#define NSM 0 /* terminal mismatch for non standard pairs */
#define PUBLIC
PUBLIC double Tmeasure = 37+K0; /* temperature of param measurements */
/* PUBLIC double lxc37=107.9; */
PUBLIC double lxc37=107.856;
PUBLIC int ML_intern37=-90;
PUBLIC int ML_interndH=-220;
PUBLIC int ML_closing37=930;
PUBLIC int ML_closingdH=3000;
PUBLIC int ML_BASE37=0;
PUBLIC int ML_BASEdH=0;
PUBLIC int MAX_NINIO=300;
PUBLIC int ninio37=60;
PUBLIC int niniodH=320;
PUBLIC int TerminalAU37=50;
PUBLIC int TerminalAUdH=370;
PUBLIC int DuplexInit37=410;
PUBLIC int DuplexInitdH=360;
PUBLIC int TripleC37=100;
PUBLIC int TripleCdH=1860;
PUBLIC int MultipleCA37=30;
PUBLIC int MultipleCAdH=340;
PUBLIC int MultipleCB37=160;
PUBLIC int MultipleCBdH=760;
PUBLIC int GQuadAlpha37 = -1800;
PUBLIC int GQuadAlphadH = -11934;
PUBLIC int GQuadBeta37 = 1200;
PUBLIC int GQuadBetadH = 0;
PUBLIC int stack37[NBPAIRS+1][NBPAIRS+1] =
{{ INF, INF, INF, INF, INF, INF, INF, INF}
,{ INF, -240, -330, -210, -140, -210, -210, -140}
,{ INF, -330, -340, -250, -150, -220, -240, -150}
,{ INF, -210, -250, 130, -50, -140, -130, 130}
,{ INF, -140, -150, -50, 30, -60, -100, 30}
,{ INF, -210, -220, -140, -60, -110, -90, -60}
,{ INF, -210, -240, -130, -100, -90, -130, -90}
,{ INF, -140, -150, 130, 30, -60, -90, 130}};
PUBLIC int stackdH[NBPAIRS+1][NBPAIRS+1] =
{{ INF, INF, INF, INF, INF, INF, INF, INF}
,{ INF, -1060, -1340, -1210, -560, -1050, -1040, -560}
,{ INF, -1340, -1490, -1260, -830, -1140, -1240, -830}
,{ INF, -1210, -1260, -1460, -1350, -880, -1280, -880}
,{ INF, -560, -830, -1350, -930, -320, -700, -320}
,{ INF, -1050, -1140, -880, -320, -940, -680, -320}
,{ INF, -1040, -1240, -1280, -700, -680, -770, -680}
,{ INF, -560, -830, -880, -320, -320, -680, -320}};
PUBLIC int hairpin37[31] = { INF, INF, INF, 540, 560, 570, 540, 600, 550, 640, 650, 660, 670, 680, 690, 690, 700, 710, 710, 720, 720, 730, 730, 740, 740, 750, 750, 750, 760, 760, 770};
PUBLIC int hairpindH[31] = { INF, INF, INF, 130, 480, 360, -290, 130, -290, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500};
PUBLIC int bulge37[31] = { INF, 380, 280, 320, 360, 400, 440, 460, 470, 480, 490, 500, 510, 520, 530, 540, 540, 550, 550, 560, 570, 570, 580, 580, 580, 590, 590, 600, 600, 600, 610};
PUBLIC int bulgedH[31] = { INF, 1060, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710};
PUBLIC int internal_loop37[31] = { INF, INF, 100, 100, 110, 200, 200, 210, 230, 240, 250, 260, 270, 280, 290, 290, 300, 310, 310, 320, 330, 330, 340, 340, 350, 350, 350, 360, 360, 370, 370};
PUBLIC int internal_loopdH[31] = { INF, INF, -720, -720, -720, -680, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130};
PUBLIC int mismatchI37[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, -80, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, -100, 0, -100, 0}
,{ 0, 0, 0, 0, -60}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, -80, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, -100, 0, -100, 0}
,{ 0, 0, 0, 0, -60}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, -10, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -30, 70, -30, 70}
,{ 70, 70, 70, 70, 10}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, -10, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -30, 70, -30, 70}
,{ 70, 70, 70, 70, 10}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, -10, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -30, 70, -30, 70}
,{ 70, 70, 70, 70, 10}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, -10, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -30, 70, -30, 70}
,{ 70, 70, 70, 70, 10}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, -10, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -30, 70, -30, 70}
,{ 70, 70, 70, 70, 10}
}};
PUBLIC int mismatchIdH[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 280, 0, 0, 280, 0}
,{ 0, 0, 0, -340, 0}
,{ 0, 0, 0, 0, 0}
,{ 280, -760, 0, 280, 0}
,{ 0, 0, 0, 0, -580}
}
,{{ 280, 0, 0, 280, 0}
,{ 0, 0, 0, -340, 0}
,{ 0, 0, 0, 0, 0}
,{ 280, -760, 0, 280, 0}
,{ 0, 0, 0, 0, -580}
}
,{{ 790, 500, 500, 790, 500}
,{ 500, 500, 500, 170, 500}
,{ 500, 500, 500, 500, 500}
,{ 790, -260, 500, 790, 500}
,{ 500, 500, 500, 500, -80}
}
,{{ 790, 500, 500, 790, 500}
,{ 500, 500, 500, 170, 500}
,{ 500, 500, 500, 500, 500}
,{ 790, -260, 500, 790, 500}
,{ 500, 500, 500, 500, -80}
}
,{{ 790, 500, 500, 790, 500}
,{ 500, 500, 500, 170, 500}
,{ 500, 500, 500, 500, 500}
,{ 790, -260, 500, 790, 500}
,{ 500, 500, 500, 500, -80}
}
,{{ 790, 500, 500, 790, 500}
,{ 500, 500, 500, 170, 500}
,{ 500, 500, 500, 500, 500}
,{ 790, -260, 500, 790, 500}
,{ 500, 500, 500, 500, -80}
}
,{{ 790, 500, 500, 790, 500}
,{ 500, 500, 500, 170, 500}
,{ 500, 500, 500, 500, 500}
,{ 790, -260, 500, 790, 500}
,{ 500, 500, 500, 500, -80}
}};
PUBLIC int mismatchH37[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ -80, -100, -110, -100, -80}
,{ -140, -150, -150, -140, -150}
,{ -80, -100, -110, -100, -80}
,{ -150, -230, -150, -240, -150}
,{ -100, -100, -140, -100, -210}
}
,{{ -50, -110, -70, -110, -50}
,{ -110, -110, -150, -130, -150}
,{ -50, -110, -70, -110, -50}
,{ -150, -250, -150, -220, -150}
,{ -100, -110, -100, -110, -160}
}
,{{ 20, 20, -20, -10, -20}
,{ 20, 20, -50, -30, -50}
,{ -10, -10, -20, -10, -20}
,{ -50, -100, -50, -110, -50}
,{ -10, -10, -30, -10, -100}
}
,{{ 0, -20, -10, -20, 0}
,{ -30, -50, -30, -60, -30}
,{ 0, -20, -10, -20, 0}
,{ -30, -90, -30, -110, -30}
,{ -10, -20, -10, -20, -90}
}
,{{ -10, -10, -20, -10, -20}
,{ -30, -30, -50, -30, -50}
,{ -10, -10, -20, -10, -20}
,{ -50, -120, -50, -110, -50}
,{ -10, -10, -30, -10, -120}
}
,{{ 0, -20, -10, -20, 0}
,{ -30, -50, -30, -50, -30}
,{ 0, -20, -10, -20, 0}
,{ -30, -150, -30, -150, -30}
,{ -10, -20, -10, -20, -90}
}
,{{ 20, 20, -10, -10, 0}
,{ 20, 20, -30, -30, -30}
,{ 0, -10, -10, -10, 0}
,{ -30, -90, -30, -110, -30}
,{ -10, -10, -10, -10, -90}
}};
PUBLIC int mismatchHdH[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 560, -570, 560, -560, -270}
,{ -560, -910, -560, -560, -560}
,{ -270, -570, -340, -570, -270}
,{ 560, -1400, 560, -920, -560}
,{ -530, -570, -530, -570, -1440}
}
,{{ 50, -520, 50, -560, -400}
,{ -400, -520, -400, -560, -400}
,{ 50, -720, 50, -720, -420}
,{ -400, -1290, -400, -620, -400}
,{ -30, -720, -30, -720, -1080}
}
,{{ 970, 140, 970, 140, 570}
,{ 570, 30, 570, 20, 570}
,{ 970, 140, 970, 140, 340}
,{ 570, -270, 570, 20, 570}
,{ 830, 140, 830, 140, -50}
}
,{{ 230, 100, 230, 220, 190}
,{ -110, -110, -260, -520, -260}
,{ 190, -60, -140, -60, 190}
,{ 220, 100, -260, 220, -260}
,{ 230, -60, 230, -60, -70}
}
,{{ 970, 140, 970, 140, 570}
,{ 570, -20, 570, 20, 570}
,{ 970, 140, 970, 140, 340}
,{ 570, -520, 570, 20, 570}
,{ 830, 140, 830, 140, -380}
}
,{{ 230, -30, 230, -60, 190}
,{ -30, -30, -260, -520, -260}
,{ 190, -60, -140, -60, 190}
,{ -260, -590, -260, -520, -260}
,{ 230, -60, 230, -60, -70}
}
,{{ 970, 140, 970, 220, 570}
,{ 570, 30, 570, 20, 570}
,{ 970, 140, 970, 140, 340}
,{ 570, 100, 570, 220, 570}
,{ 830, 140, 830, 140, -50}
}};
/* mismatch_multi */
PUBLIC int mismatchM37[NBPAIRS+1][5][5] =
{{ /* NP.. */
{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
},
{ /* CG.. */
{ -50, -110, -50, -140, -70}
,{ -110, -110, -110, -160, -110}
,{ -70, -150, -70, -150, -100}
,{ -110, -130, -110, -140, -110}
,{ -50, -150, -50, -150, -70}
},
{ /* GC.. */
{ -80, -140, -80, -140, -100}
,{ -100, -150, -100, -140, -100}
,{ -110, -150, -110, -150, -140}
,{ -100, -140, -100, -160, -100}
,{ -80, -150, -80, -150, -120}
},
{ /* GU.. */
{ -50, -80, -50, -50, -50}
,{ -50, -100, -70, -50, -70}
,{ -60, -80, -60, -80, -60}
,{ -70, -110, -70, -80, -70}
,{ -50, -80, -50, -80, -50}
},
{ /* UG.. */
{ -30, -30, -60, -60, -60}
,{ -30, -30, -60, -60, -60}
,{ -70, -100, -70, -100, -80}
,{ -60, -80, -60, -80, -60}
,{ -60, -100, -70, -100, -60}
},
{ /* AU.. */
{ -50, -80, -50, -80, -50}
,{ -70, -100, -70, -110, -70}
,{ -60, -80, -60, -80, -60}
,{ -70, -110, -70, -120, -70}
,{ -50, -80, -50, -80, -50}
},
{ /* UA.. */
{ -60, -80, -60, -80, -60}
,{ -60, -80, -60, -80, -60}
,{ -70, -100, -70, -100, -80}
,{ -60, -80, -60, -80, -60}
,{ -70, -100, -70, -100, -80}
},
{ /* NN.. */
{ -30, -30, -50, -50, -50}
,{ -30, -30, -60, -50, -60}
,{ -60, -80, -60, -80, -60}
,{ -60, -80, -60, -80, -60}
,{ -50, -80, -50, -80, -50}
}};
/* mismatch_multi_enthalpies */
PUBLIC int mismatchMdH[NBPAIRS+1][5][5] =
{{ /* NP.. */
{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
},
{ /* CG.. */
{ 50, -400, 50, -400, -30}
,{ -520, -520, -720, -710, -720}
,{ 50, -400, 50, -400, -30}
,{ -560, -560, -720, -620, -720}
,{ -400, -400, -420, -400, -500}
},
{ /* GC.. */
{ -270, -560, -270, -560, -530}
,{ -570, -910, -570, -820, -570}
,{ -340, -560, -340, -560, -530}
,{ -560, -560, -570, -920, -570}
,{ -270, -560, -270, -560, -860}
},
{ /* GU.. */
{ 310, -480, -180, 310, 140}
,{ 310, -480, -430, 310, -430}
,{ -140, -630, -510, -630, -140}
,{ -150, -890, -430, -150, -430}
,{ 140, -630, -180, -630, 140}
},
{ /* UG.. */
{ 600, 200, 600, 200, 460}
,{ -60, -340, -230, -60, -230}
,{ 600, 200, 600, 200, 460}
,{ -230, -350, -230, -350, -230}
,{ 200, 200, -30, 200, 160}
},
{ /* AU.. */
{ 140, -400, -180, -380, 140}
,{ -380, -400, -430, -380, -430}
,{ -140, -630, -510, -630, -140}
,{ -430, -890, -430, -890, -430}
,{ 140, -630, -180, -630, 140}
},
{ /* UA.. */
{ 600, 200, 600, 200, 460}
,{ -230, -390, -230, -310, -230}
,{ 600, 200, 600, 200, 460}
,{ -230, -350, -230, -350, -230}
,{ 200, 200, -30, 200, -170}
},
{ /* NN.. */
{ 600, 200, 600, 310, 460}
,{ 310, -340, -230, 310, -230}
,{ 600, 200, 600, 200, 460}
,{ -150, -350, -230, -150, -230}
,{ 200, 200, -30, 200, 160}
}};
PUBLIC int mismatch1nI37[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
}};
PUBLIC int mismatch1nIdH[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
}};
PUBLIC int mismatch23I37[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, -50, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, -110, 0, -70, 0}
,{ 0, 0, 0, 0, -30}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, -120, 0, -70, 0}
,{ 0, 0, 0, 0, -30}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -40, 70, 0, 70}
,{ 70, 70, 70, 70, 40}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 20, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -40, 70, 0, 70}
,{ 70, 70, 70, 70, 40}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -40, 70, 0, 70}
,{ 70, 70, 70, 70, 40}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 20, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -40, 70, 0, 70}
,{ 70, 70, 70, 70, 40}
}
,{{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, 70, 70, 70, 70}
,{ 70, -40, 70, 0, 70}
,{ 70, 70, 70, 70, 40}
}};
PUBLIC int mismatch23IdH[NBPAIRS+1][5][5] =
{{{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, -570, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, -860, 0, -900, 0}
,{ 0, 0, 0, 0, -640}
}
,{{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, 0, 0, 0, 0}
,{ 0, -1090, 0, -900, 0}
,{ 0, 0, 0, 0, -640}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, -580, 500, -400, 500}
,{ 500, 500, 500, 500, -140}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, -60, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, -360, 500, -400, 500}
,{ 500, 500, 500, 500, -140}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, -580, 500, -400, 500}
,{ 500, 500, 500, 500, -140}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, -60, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, -360, 500, -400, 500}
,{ 500, 500, 500, 500, -140}
}
,{{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, 500, 500, 500, 500}
,{ 500, -360, 500, -400, 500}
,{ 500, 500, 500, 500, -140}
}};
/* mismatch_exterior */
PUBLIC int mismatchExt37[NBPAIRS+1][5][5] =
{{ /* NP.. */
{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
},
{ /* CG.. */
{ -50, -110, -50, -140, -70}
,{ -110, -110, -110, -160, -110}
,{ -70, -150, -70, -150, -100}
,{ -110, -130, -110, -140, -110}
,{ -50, -150, -50, -150, -70}
},
{ /* GC.. */
{ -80, -140, -80, -140, -100}
,{ -100, -150, -100, -140, -100}
,{ -110, -150, -110, -150, -140}
,{ -100, -140, -100, -160, -100}
,{ -80, -150, -80, -150, -120}
},
{ /* GU.. */
{ -50, -80, -50, -50, -50}
,{ -50, -100, -70, -50, -70}
,{ -60, -80, -60, -80, -60}
,{ -70, -110, -70, -80, -70}
,{ -50, -80, -50, -80, -50}
},
{ /* UG.. */
{ -30, -30, -60, -60, -60}
,{ -30, -30, -60, -60, -60}
,{ -70, -100, -70, -100, -80}
,{ -60, -80, -60, -80, -60}
,{ -60, -100, -70, -100, -60}
},
{ /* AU.. */
{ -50, -80, -50, -80, -50}
,{ -70, -100, -70, -110, -70}
,{ -60, -80, -60, -80, -60}
,{ -70, -110, -70, -120, -70}
,{ -50, -80, -50, -80, -50}
},
{ /* UA.. */
{ -60, -80, -60, -80, -60}
,{ -60, -80, -60, -80, -60}
,{ -70, -100, -70, -100, -80}
,{ -60, -80, -60, -80, -60}
,{ -70, -100, -70, -100, -80}
},
{ /* NN.. */
{ -30, -30, -50, -50, -50}
,{ -30, -30, -60, -50, -60}
,{ -60, -80, -60, -80, -60}
,{ -60, -80, -60, -80, -60}
,{ -50, -80, -50, -80, -50}
}};
/* mismatch_exterior_enthalpies */
PUBLIC int mismatchExtdH[NBPAIRS+1][5][5] =
{{ /* NP.. */
{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
,{ INF, INF, INF, INF, INF}
},
{ /* CG.. */
{ 50, -400, 50, -400, -30}
,{ -520, -520, -720, -710, -720}
,{ 50, -400, 50, -400, -30}
,{ -560, -560, -720, -620, -720}
,{ -400, -400, -420, -400, -500}
},
{ /* GC.. */
{ -270, -560, -270, -560, -530}
,{ -570, -910, -570, -820, -570}
,{ -340, -560, -340, -560, -530}
,{ -560, -560, -570, -920, -570}
,{ -270, -560, -270, -560, -860}
},
{ /* GU.. */
{ 310, -480, -180, 310, 140}
,{ 310, -480, -430, 310, -430}
,{ -140, -630, -510, -630, -140}
,{ -150, -890, -430, -150, -430}
,{ 140, -630, -180, -630, 140}
},
{ /* UG.. */
{ 600, 200, 600, 200, 460}
,{ -60, -340, -230, -60, -230}
,{ 600, 200, 600, 200, 460}
,{ -230, -350, -230, -350, -230}
,{ 200, 200, -30, 200, 160}
},
{ /* AU.. */
{ 140, -400, -180, -380, 140}
,{ -380, -400, -430, -380, -430}
,{ -140, -630, -510, -630, -140}
,{ -430, -890, -430, -890, -430}
,{ 140, -630, -180, -630, 140}
},
{ /* UA.. */
{ 600, 200, 600, 200, 460}
,{ -230, -390, -230, -310, -230}
,{ 600, 200, 600, 200, 460}
,{ -230, -350, -230, -350, -230}
,{ 200, 200, -30, 200, -170}
},
{ /* NN.. */
{ 600, 200, 600, 310, 460}
,{ 310, -340, -230, 310, -230}
,{ 600, 200, 600, 200, 460}
,{ -150, -350, -230, -150, -230}
,{ 200, 200, -30, 200, 160}
}};
/* dangle5 */
PUBLIC int dangle5_37[NBPAIRS+1][5] =
{ /* N A C G U */
/* NP */ { INF, INF, INF, INF, INF},
/* CG */ { -10, -50, -30, -20, -10},
/* GC */ { -0, -20, -30, -0, -0},
/* GU */ { -20, -30, -30, -40, -20},
/* UG */ { -10, -30, -10, -20, -20},
/* AU */ { -20, -30, -30, -40, -20},
/* UA */ { -10, -30, -10, -20, -20},
/* NN */ { -0, -20, -10, -0, -0}
};
/* dangle3 */
PUBLIC int dangle3_37[NBPAIRS+1][5] =
{ /* N A C G U */
/* NP */ { INF, INF, INF, INF, INF},
/* CG */ { -40, -110, -40, -130, -60},
/* GC */ { -80, -170, -80, -170, -120},
/* GU */ { -10, -70, -10, -70, -10},
/* UG */ { -50, -80, -50, -80, -60},
/* AU */ { -10, -70, -10, -70, -10},
/* UA */ { -50, -80, -50, -80, -60},
/* NN */ { -10, -70, -10, -70, -10}
};
/* dangle5_enthalpies */
PUBLIC int dangle5_dH[NBPAIRS+1][5] =
{ /* N A C G U */
/* NP */ { INF, INF, INF, INF, INF},
/* CG */ { 330, -240, 330, 80, -140},
/* GC */ { 70, -160, 70, -460, -40},
/* GU */ { 310, 160, 220, 70, 310},
/* UG */ { 690, -50, 690, 60, 60},
/* AU */ { 310, 160, 220, 70, 310},
/* UA */ { 690, -50, 690, 60, 60},
/* NN */ { 690, 160, 690, 80, 310}
};
/* dangle3_enthalpies */
PUBLIC int dangle3_dH[NBPAIRS+1][5] =
{ /* N A C G U */
/* NP */ { INF, INF, INF, INF, INF},
/* CG */ { -280, -740, -280, -640, -360},
/* GC */ { -410, -900, -410, -860, -750},
/* GU */ { -70, -570, -70, -580, -220},
/* UG */ { -90, -490, -90, -550, -230},
/* AU */ { -70, -570, -70, -580, -220},
/* UA */ { -90, -490, -90, -550, -230},
/* NN */ { -70, -490, -70, -550, -220}
};
PUBLIC char Triloops[241] =
"CAACG "
"GUUAC "
;
PUBLIC int Triloop37[40] = { 680, 690};
PUBLIC int TriloopdH[40] = { 2370, 1080};
PUBLIC char Tetraloops[281] =
"CAACGG "
"CCAAGG "
"CCACGG "
"CCCAGG "
"CCGAGG "
"CCGCGG "
"CCUAGG "
"CCUCGG "
"CUAAGG "
"CUACGG "
"CUCAGG "
"CUCCGG "
"CUGCGG "
"CUUAGG "
"CUUCGG "
"CUUUGG "
;
PUBLIC int Tetraloop37[40] = { 550, 330, 370, 340, 350, 360, 370, 250, 360, 280, 370, 270, 280, 350, 370, 370};
PUBLIC int TetraloopdH[40] = { 690, -1030, -330, -890, -660, -750, -350, -1390, -760, -1070, -660, -1290, -1070, -620, -1530, -680};
PUBLIC char Hexaloops[361] =
"ACAGUACU "
"ACAGUGAU "
"ACAGUGCU "
"ACAGUGUU "
;
PUBLIC int Hexaloop37[40] = { 280, 360, 290, 180};
PUBLIC int HexaloopdH[40] = { -1680, -1140, -1280, -1540};
#include "intl11.h"
#include "intl11dH.h"
#include "intl21.h"
#include "intl21dH.h"
#include "intl22.h"
#include "intl22dH.h"