#ifndef __VIENNA_RNA_PACKAGE_OLD_EPARS__
#define __VIENNA_RNA_PACKAGE_OLD_EPARS__
/**
\file 1.8.4_epars.h
\brief Free energy parameters for parameter file conversion
This file contains the free energy parameters used in ViennaRNAPackage 1.8.4.
They 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
*/
#define K0 273.15
#ifdef INF
#undef INF
#endif
#define INF 1000000
#define NBPAIRS 7
#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 */
PRIVATE double Tmeasure_184 = 37 + K0; /* temperature of param measurements */
PRIVATE double lxc37_184 = 107.856; /* parameter for logarithmic loop
energy extrapolation */
PRIVATE int stack37_184[NBPAIRS+1][NBPAIRS+1] =
/* CG GC GU UG AU UA */
{ { INF, INF, INF, INF, INF, INF, INF, INF},
{ INF, -240, -330, -210, -140, -210, -210, NST},
{ INF, -330, -340, -250, -150, -220, -240, NST},
{ INF, -210, -250, 130, -50, -140, -130, NST},
{ INF, -140, -150, -50, 30, -60, -100, NST},
{ INF, -210, -220, -140, -60, -110, -90, NST},
{ INF, -210, -240, -130, -100, -90, -130, NST},
{ INF, NST, NST, NST, NST, NST, NST, NST}};
/* enthalpies (0.01*kcal/mol at 37 C) for stacked pairs */
/* different from mfold-2.3, which uses values from mfold-2.2 */
PRIVATE int enthalpies_184[NBPAIRS+1][NBPAIRS+1] =
/* CG GC GU UG AU UA */
{ { INF, INF, INF, INF, INF, INF, INF, INF},
{ INF, -1060, -1340, -1210, -560, -1050, -1040, NST},
{ INF, -1340, -1490, -1260, -830, -1140, -1240, NST},
{ INF, -1210, -1260, -1460, -1350, -880, -1280, NST},
{ INF, -560, -830, -1350, -930, -320, -700, NST},
{ INF, -1050, -1140, -880, -320, -940, -680, NST},
{ INF, -1040, -1240, -1280, -700, -680, -770, NST},
{ INF, NST, NST, NST, NST, NST, NST, NST}};
/* old values are here just for comparison */
PRIVATE int oldhairpin37_184[31] = { /* from ViennaRNA 1.3 */
INF, INF, INF, 410, 490, 440, 470, 500, 510, 520, 531,
542, 551, 560, 568, 575, 582, 589, 595, 601, 606,
611, 616, 621, 626, 630, 634, 638, 642, 646, 650};
PRIVATE int hairpin37_184[31] = {
INF, INF, INF, 570, 560, 560, 540, 590, 560, 640, 650,
660, 670, 678, 686, 694, 701, 707, 713, 719, 725,
730, 735, 740, 744, 749, 753, 757, 761, 765, 769};
PRIVATE int oldbulge37_184[31] = {
INF, 390, 310, 350, 420, 480, 500, 516, 531, 543, 555,
565, 574, 583, 591, 598, 605, 612, 618, 624, 630,
635, 640, 645, 649, 654, 658, 662, 666, 670, 673};
PRIVATE int bulge37_184[31] = {
INF, 380, 280, 320, 360, 400, 440, 459, 470, 480, 490,
500, 510, 519, 527, 534, 541, 548, 554, 560, 565,
571, 576, 580, 585, 589, 594, 598, 602, 605, 609};
PRIVATE int oldinternal_loop37_184[31] = {
INF, INF, 410, 510, 490, 530, 570, 587, 601, 614, 625,
635, 645, 653, 661, 669, 676, 682, 688, 694, 700,
705, 710, 715, 720, 724, 728, 732, 736, 740, 744};
PRIVATE int internal_loop37_184[31] = {
INF, INF, 410, 510, 170, 180, 200, 220, 230, 240, 250,
260, 270, 278, 286, 294, 301, 307, 313, 319, 325,
330, 335, 340, 345, 349, 353, 357, 361, 365, 369};
/* terminal mismatches */
/* mismatch free energies for interior loops at 37C */
PRIVATE int mismatchI37_184[NBPAIRS+1][5][5] =
{ /* @@ */
{{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}},
{ /* CG */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 0, 0, -110, 0}, /* A@ AA AC AG AU */
{ 0, 0, 0, 0, 0}, /* C@ CA CC CG CU */
{ 0, -110, 0, 0, 0}, /* G@ GA GC GG GU */
{ 0, 0, 0, 0, -70}},/* U@ UA UC UG UU */
{ /* GC */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 0, 0, -110, 0}, /* A@ AA AC AG AU */
{ 0, 0, 0, 0, 0}, /* C@ CA CC CG CU */
{ 0, -110, 0, 0, 0}, /* G@ GA GC GG GU */
{ 0, 0, 0, 0, -70}},/* U@ UA UC UG UU */
{ /* GU */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 70, 70, -40, 70}, /* A@ AA AC AG AU */
{ 0, 70, 70, 70, 70}, /* C@ CA CC CG CU */
{ 0, -40, 70, 70, 70}, /* G@ GA GC GG GU */
{ 0, 70, 70, 70, 0}},/* U@ UA UC UG UU */
{ /* UG */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 70, 70, -40, 70}, /* A@ AA AC AG AU */
{ 0, 70, 70, 70, 70}, /* C@ CA CC CG CU */
{ 0, -40, 70, 70, 70}, /* G@ GA GC GG GU */
{ 0, 70, 70, 70, 0}},/* U@ UA UC UG UU */
{ /* AU */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 70, 70, -40, 70}, /* A@ AA AC AG AU */
{ 0, 70, 70, 70, 70}, /* C@ CA CC CG CU */
{ 0, -40, 70, 70, 70}, /* G@ GA GC GG GU */
{ 0, 70, 70, 70, 0}},/* U@ UA UC UG UU */
{ /* UA */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 70, 70, -40, 70}, /* A@ AA AC AG AU */
{ 0, 70, 70, 70, 70}, /* C@ CA CC CG CU */
{ 0, -40, 70, 70, 70}, /* G@ GA GC GG GU */
{ 0, 70, 70, 70, 0}},/* U@ UA UC UG UU */
{ /* @@ */
{ 90, 90, 90, 90, 90},{ 90, 90, 90, 90,-20},{ 90, 90, 90, 90, 90},
{ 90,-20, 90, 90, 90},{ 90, 90, 90, 90, 20}}
};
/* mismatch free energies for hairpins at 37C */
PRIVATE int mismatchH37_184[NBPAIRS+1][5][5] =
{ /* @@ */
{{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}},
{ /* CG */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ -90, -150, -150, -140, -180}, /* A@ AA AC AG AU */
{ -90, -100, -90, -290, -80}, /* C@ CA CC CG CU */
{ -90, -220, -200, -160, -110}, /* G@ GA GC GG GU */
{ -90, -170, -140, -180, -200}},/* U@ UA UC UG UU */
{ /* GC */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ -70, -110, -150, -130, -210}, /* A@ AA AC AG AU */
{ -70, -110, -70, -240, -50}, /* C@ CA CC CG CU */
{ -70, -240, -290, -140, -120}, /* G@ GA GC GG GU */
{ -70, -190, -100, -220, -150}},/* U@ UA UC UG UU */
{ /* GU */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, 20, -50, -30, -30}, /* A@ AA AC AG AU */
{ 0, -10, -20, -150, -20}, /* C@ CA CC CG CU */
{ 0, -90, -110, -30, 0}, /* G@ GA GC GG GU */
{ 0, -30, -30, -40, -110}},/* U@ UA UC UG UU */
{ /* UG */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, -50, -30, -60, -50}, /* A@ AA AC AG AU */
{ 0, -20, -10, -170, 0}, /* C@ CA CC CG CU */
{ 0, -80, -120, -30, -70}, /* G@ GA GC GG GU */
{ 0, -60, -10, -60, -80}},/* U@ UA UC UG UU */
{ /* AU */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, -30, -50, -30, -30}, /* A@ AA AC AG AU */
{ 0, -10, -20, -150, -20}, /* C@ CA CC CG CU */
{ 0, -110, -120, -20, 20}, /* G@ GA GC GG GU */
{ 0, -30, -30, -60, -110}},/* U@ UA UC UG UU */
{ /* UA */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ 0, -50, -30, -60, -50}, /* A@ AA AC AG AU */
{ 0, -20, -10, -120, -0}, /* C@ CA CC CG CU */
{ 0, -140, -120, -70, -20}, /* G@ GA GC GG GU */
{ 0, -30, -10, -50, -80}},/* U@ UA UC UG UU */
{ /* @@ */
{ 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}}
};
/* mismatch energies in multiloops */
PRIVATE int mismatchM37_184[NBPAIRS+1][5][5];
/* these are probably junk */
/* mismatch enthalpies for temperature scaling */
PRIVATE int mism_H_184[NBPAIRS+1][5][5] =
{ /* no pair */
{{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}},
{ /* CG */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ DEF,-1030, -950,-1030,-1030}, /* A@ AA AC AG AU */
{ DEF, -520, -450, -520, -670}, /* C@ CA CC CG CU */
{ DEF, -940, -940, -940, -940}, /* G@ GA GC GG GU */
{ DEF, -810, -740, -810, -860}},/* U@ UA UC UG UU */
{ /* GC */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ DEF, -520, -880, -560, -880}, /* A@ AA AC AG AU */
{ DEF, -720, -310, -310, -390}, /* C@ CA CC CG CU */
{ DEF, -710, -740, -620, -740}, /* G@ GA GC GG GU */
{ DEF, -500, -500, -500, -570}},/* U@ UA UC UG UU */
{ /* GU */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ DEF, -430, -600, -600, -600}, /* A@ AA AC AG AU */
{ DEF, -260, -240, -240, -240}, /* C@ CA CC CG CU */
{ DEF, -340, -690, -690, -690}, /* G@ GA GC GG GU */
{ DEF, -330, -330, -330, -330}},/* U@ UA UC UG UU */
{ /* UG */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ DEF, -720, -790, -960, -810}, /* A@ AA AC AG AU */
{ DEF, -480, -480, -360, -480}, /* C@ CA CC CG CU */
{ DEF, -660, -810, -920, -810}, /* G@ GA GC GG GU */
{ DEF, -550, -440, -550, -360}},/* U@ UA UC UG UU */
{ /* AU */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ DEF, -430, -600, -600, -600}, /* A@ AA AC AG AU */
{ DEF, -260, -240, -240, -240}, /* C@ CA CC CG CU */
{ DEF, -340, -690, -690, -690}, /* G@ GA GC GG GU */
{ DEF, -330, -330, -330, -330}},/* U@ UA UC UG UU */
{ /* UA */
{ 0, 0, 0, 0, 0}, /* @@ @A @C @G @U */
{ DEF, -400, -630, -890, -590}, /* A@ AA AC AG AU */
{ DEF, -430, -510, -200, -180}, /* C@ CA CC CG CU */
{ DEF, -380, -680, -890, -680}, /* G@ GA GC GG GU */
{ DEF, -280, -140, -280, -140}},/* U@ UA UC UG UU */
{ /* nonstandard pair */
{DEF,DEF,DEF,DEF,DEF},{DEF,DEF,DEF,DEF,DEF},{DEF,DEF,DEF,DEF,DEF},
{DEF,DEF,DEF,DEF,DEF},{DEF,DEF,DEF,DEF,DEF}}
};
/* 5' dangling ends (unpaird base stacks on first paired base) */
PRIVATE int dangle5_37_184[NBPAIRS+1][5]=
{/* @ A C G U */
{ INF, INF, INF, INF, INF}, /* no pair */
{ INF, -50, -30, -20, -10}, /* CG (stacks on C) */
{ INF, -20, -30, -0, -0}, /* GC (stacks on G) */
{ INF, -30, -30, -40, -20}, /* GU */
{ INF, -30, -10, -20, -20}, /* UG */
{ INF, -30, -30, -40, -20}, /* AU */
{ INF, -30, -10, -20, -20}, /* UA */
{ 0, 0, 0, 0, 0} /* @ */
};
/* 3' dangling ends (unpaired base stacks on second paired base */
PRIVATE int dangle3_37_184[NBPAIRS+1][5]=
{/* @ A C G U */
{ INF, INF, INF, INF, INF}, /* no pair */
{ INF, -110, -40, -130, -60}, /* CG (stacks on G) */
{ INF, -170, -80, -170, -120}, /* GC */
{ INF, -70, -10, -70, -10}, /* GU */
{ INF, -80, -50, -80, -60}, /* UG */
{ INF, -70, -10, -70, -10}, /* AU */
{ INF, -80, -50, -80, -60}, /* UA */
{ 0, 0, 0, 0, 0} /* @ */
};
/* enthalpies for temperature scaling */
PRIVATE int dangle3_H_184[NBPAIRS+1][5] =
{/* @ A C G U */
{ INF, INF, INF, INF, INF}, /* no pair */
{ 0, -740, -280, -640, -360},
{ 0, -900, -410, -860, -750},
{ 0, -740, -240, -720, -490},
{ 0, -490, -90, -550, -230},
{ 0, -570, -70, -580, -220},
{ 0, -490, -90, -550, -230},
{ 0, 0, 0, 0, 0}
};
PRIVATE int dangle5_H_184[NBPAIRS+1][5] =
{/* @ A C G U */
{ INF, INF, INF, INF, INF}, /* no pair */
{ 0, -240, 330, 80, -140},
{ 0, -160, 70, -460, -40},
{ 0, 160, 220, 70, 310},
{ 0, -150, 510, 10, 100},
{ 0, 160, 220, 70, 310},
{ 0, -50, 690, -60, -60},
{ 0, 0, 0, 0, 0}
};
/* constants for linearly destabilizing contributions for multi-loops
F = ML_closing + ML_intern*k + ML_BASE*u */
/* old versions erroneously used ML_intern*(k-1) */
PRIVATE int ML_BASE37_184 = 0;
PRIVATE int ML_closing37_184 = 340;
PRIVATE int ML_intern37_184 = 40;
/* Ninio-correction for asymmetric internal loops with branches n1 and n2 */
/* ninio_energy = min{max_ninio, |n1-n2|*F_ninio[min{4.0, n1, n2}] } */
PRIVATE int MAX_NINIO_184 = 300; /* maximum correction */
PRIVATE int F_ninio37_184[5] = { 0, 40, 50, 20, 10 }; /* only F[2] used */
/* stabilizing contribution due to special hairpins of size 4 (tetraloops) */
PRIVATE char Tetraloops_184[1400] = /* place for up to 200 tetra loops */
"GGGGAC "
"GGUGAC "
"CGAAAG "
"GGAGAC "
"CGCAAG "
"GGAAAC "
"CGGAAG "
"CUUCGG "
"CGUGAG "
"CGAAGG "
"CUACGG "
"GGCAAC "
"CGCGAG "
"UGAGAG "
"CGAGAG "
"AGAAAU "
"CGUAAG "
"CUAACG "
"UGAAAG "
"GGAAGC "
"GGGAAC "
"UGAAAA "
"AGCAAU "
"AGUAAU "
"CGGGAG "
"AGUGAU "
"GGCGAC "
"GGGAGC "
"GUGAAC "
"UGGAAA "
;
PRIVATE int TETRA_ENERGY37_184[200] = {
-300, -300, -300, -300, -300, -300, -300, -300, -300, -250, -250, -250,
-250, -250, -200, -200, -200, -200, -200, -150, -150, -150, -150, -150,
-150, -150, -150, -150, -150, -150};
PRIVATE int TETRA_ENTH37_184 = -400;
PRIVATE char Triloops_184[241] = "";
PRIVATE int Triloop_E37_184[40];
/* penalty for AU (or GU) terminating helix) */
/* mismatches already contain these */
PRIVATE int TerminalAU_184 = 50;
/* penalty for forming a bi-molecular duplex */
PRIVATE int DuplexInit_184 = 410;
#endif