# Deprecated Interface for Free Energy Evaluation

Using the functions below is discouraged as they have been marked deprecated and will be removed from the library in the (near) future!

  Defines

  ON_SAME_STRAND(I, J, C)
    #include <ViennaRNA/eval/internal.h>

  Functions

  int vrna_eval_ext_stem(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/exterior.h>
  int E_Stem(int type, int si1, int sj1, int extLoop, vrna_param_t *P)
    #include <ViennaRNA/eval/exterior.h>

    Compute the energy contribution of a stem branching off a loop-region.

    This function computes the energy contribution of a stem that branches off a loop region. This can be the case in multiloops, when a stem branching off increases the degree of the loop but also immediately interior base pairs of an exterior loop contribute free energy. To switch the behavior of the function according to the evaluation of a multiloop- or exterior-loop-stem, you pass the flag ‘extLoop’. The returned energy contribution consists of a TerminalAU penalty if the pair type is greater than 2, dangling end contributions of mismatching nucleotides adjacent to the stem if only one of the si1, sj1 parameters is greater than 0 and mismatch energies if both mismatching nucleotides are positive values. Thus, to avoid incorporating dangling end or mismatch energies just pass a negative number, e.g. -1 to the mismatch argument.

    This is an illustration of how the energy contribution is assembled:

    Here, (X,Y) is the base pair that closes the stem that branches off a loop region. The nucleotides si1 and sj1 are the 5’- and 3’- mismatches, respectively. If the base pair type of (X,Y) is greater than 2 (i.e. an A-U or G-U pair, the TerminalAU penalty will be included in the energy contribution returned. If si1 and sj1 are both nonnegative numbers, mismatch energies will also be included. If one of si1 or sj1 is a negative value, only 5’ or 3’ dangling end contributions are taken into account. To prohibit any of these mismatch contributions to be incorporated, just pass a negative number to both, si1 and sj1. In case the argument extLoop is 0, the returned energy contribution also includes the internal-loop-penalty of a multiloop stem with closing pair type.

    Deprecated:

      Please use one of the functions vrna_E_exterior_stem() and vrna_E_multibranch_stem() instead! Use the former for cases where `extLoop` != 0 and the latter otherwise.

    See also

    vrna_E_multibranch_stem(), _ExtLoop()

    Note

    This function is threadsafe

    Parameters:

      - type – The pair type of the first base pair un the stem

      - si1 – The 5’-mismatching nucleotide

      - sj1 – The 3’-mismatching nucleotide

      - extLoop – A flag that indicates whether the contribution reflects the one of an exterior loop or not

      - P – The data structure containing scaled energy parameters

    Returns:

      The Free energy of the branch off the loop in dcal/mol

  int E_ExtLoop(int type, int si1, int sj1, vrna_param_t *P)
    #include <ViennaRNA/eval/exterior.h>
  int vrna_E_ext_stem(unsigned int type, int n5d, int n3d, vrna_param_t *p)
    #include <ViennaRNA/eval/exterior.h>
  FLT_OR_DBL vrna_exp_E_ext_stem(unsigned int type, int n5d, int n3d, vrna_exp_param_t *p)
    #include <ViennaRNA/eval/exterior.h>
  FLT_OR_DBL exp_E_ExtLoop(int type, int si1, int sj1, vrna_exp_param_t *P)
    #include <ViennaRNA/eval/exterior.h>

    This is the partition function variant of E_ExtLoop()

    Deprecated:

      Use vrna_exp_E_ext_stem() instead!

    See also

    E_ExtLoop()

    Returns:

      The Boltzmann weighted energy contribution of the introduced exterior-loop stem

  FLT_OR_DBL exp_E_Stem(int type, int si1, int sj1, int extLoop, vrna_exp_param_t *P)
    #include <ViennaRNA/eval/exterior.h>

    Compute the Boltzmann weighted energy contribution of a stem branching off a loop-region

    This is the partition function variant of E_Stem()

    See also

    E_Stem()

    Note

    This function is threadsafe

    Returns:

      The Boltzmann weighted energy contribution of the branch off the loop

  static int E_Hairpin(int size, int type, int si1, int sj1, const char *string, vrna_param_t *P)
    #include <ViennaRNA/eval/hairpin.h>

    Compute the Energy of a hairpin-loop.

    To evaluate the free energy of a hairpin-loop, several parameters have to be known. A general hairpin-loop has this structure: where X-Y marks the closing pair [e.g. a (G,C) pair]. The length of this loop is 6 as there are six unpaired nucleotides (a1-a6) enclosed by (X,Y). The 5’ mismatching nucleotide is a1 while the 3’ mismatch is a6. The nucleotide sequence of this loop is “a1.a2.a3.a4.a5.a6”

    See also

    scale_parameters(), vrna_param_t

    Note

    The parameter sequence should contain the sequence of the loop in capital letters of the nucleic acid alphabet if the loop size is below 7. This is useful for unusually stable tri-, tetra- and hexa-loops which are treated differently (based on experimental data) if they are tabulated.

    Warning

    Not (really) thread safe! A threadsafe implementation will replace this function in a future release!

    Energy evaluation may change due to updates in global variable “tetra_loop”

    Parameters:

      - size – The size of the loop (number of unpaired nucleotides)

      - type – The pair type of the base pair closing the hairpin

      - si1 – The 5’-mismatching nucleotide

      - sj1 – The 3’-mismatching nucleotide

      - string – The sequence of the loop (May be `NULL`, otherwise mst be at least \(size + 2\) long)

      - P – The datastructure containing scaled energy parameters

    Returns:

      The Free energy of the Hairpin-loop in dcal/mol

  int vrna_E_hp_loop(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/hairpin.h>
  int vrna_E_ext_hp_loop(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/hairpin.h>
  int vrna_eval_hp_loop(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/hairpin.h>

    SWIG Wrapper Notes:

      This function is attached as method `eval_hp_loop()` to objects of type `fold_compound`. See, e.g. `RNA.fold_compound.eval_hp_loop()` in the Python API .

  int vrna_eval_ext_hp_loop(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/hairpin.h>
  static FLT_OR_DBL exp_E_Hairpin(int u, int type, short si1, short sj1, const char *string, vrna_exp_param_t *P)
    #include <ViennaRNA/eval/hairpin.h>

    Compute Boltzmann weight \(e^{-\Delta G/kT} \) of a hairpin loop.

    See also

    get_scaled_pf_parameters(), vrna_exp_param_t, E_Hairpin()

    Note

    multiply by scale[u+2]

    Warning

    Not (really) thread safe! A threadsafe implementation will replace this function in a future release!

    Energy evaluation may change due to updates in global variable “tetra_loop”

    Parameters:

      - u – The size of the loop (number of unpaired nucleotides)

      - type – The pair type of the base pair closing the hairpin

      - si1 – The 5’-mismatching nucleotide

      - sj1 – The 3’-mismatching nucleotide

      - string – The sequence of the loop (May be `NULL`, otherwise mst be at least \(size + 2\) long)

      - P – The datastructure containing scaled Boltzmann weights of the energy parameters

    Returns:

      The Boltzmann weight of the Hairpin-loop

  FLT_OR_DBL vrna_exp_E_hp_loop(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/hairpin.h>
  static int E_IntLoop(int n1, int n2, int type, int type_2, int si1, int sj1, int sp1, int sq1, vrna_param_t *P)
    #include <ViennaRNA/eval/internal.h>

    Compute the Energy of an internal-loop

    This function computes the free energy \(\Delta G\) of an internal-loop with the following structure: This general structure depicts an internal-loop that is closed by the base pair (X,Y). The enclosed base pair is (V,U) which leaves the unpaired bases a_1-a_n and b_1-b_n that constitute the loop. In this example, the length of the internal-loop is \((n+m)\)

    where n or m may be 0 resulting in a bulge-loop or base pair stack. The mismatching nucleotides for the closing pair (X,Y) are:

    5’-mismatch: a_1

    3’-mismatch: b_m

    and for the enclosed base pair (V,U):

    5’-mismatch: b_1

    3’-mismatch: a_n

    See also

    scale_parameters(), vrna_param_t

    Note

    Base pairs are always denoted in 5’->3’ direction. Thus the enclosed base pair must be ‘turned arround’ when evaluating the free energy of the internal-loop

    This function is threadsafe

    Parameters:

      - n1 – The size of the ‘left’-loop (number of unpaired nucleotides)

      - n2 – The size of the ‘right’-loop (number of unpaired nucleotides)

      - type – The pair type of the base pair closing the internal loop

      - type_2 – The pair type of the enclosed base pair

      - si1 – The 5’-mismatching nucleotide of the closing pair

      - sj1 – The 3’-mismatching nucleotide of the closing pair

      - sp1 – The 3’-mismatching nucleotide of the enclosed pair

      - sq1 – The 5’-mismatching nucleotide of the enclosed pair

      - P – The datastructure containing scaled energy parameters

    Returns:

      The Free energy of the Interior-loop in dcal/mol

  static FLT_OR_DBL exp_E_IntLoop(int u1, int u2, int type, int type2, short si1, short sj1, short sp1, short sq1, vrna_exp_param_t *P)
    #include <ViennaRNA/eval/internal.h>

    Compute Boltzmann weight of internal loop

    multiply by scale[u1+u2+2] for scaling

    See also

    get_scaled_pf_parameters(), vrna_exp_param_t, E_IntLoop()

    Note

    This function is threadsafe

    Parameters:

      - u1 – The size of the ‘left’-loop (number of unpaired nucleotides)

      - u2 – The size of the ‘right’-loop (number of unpaired nucleotides)

      - type – The pair type of the base pair closing the internal loop

      - type2 – The pair type of the enclosed base pair

      - si1 – The 5’-mismatching nucleotide of the closing pair

      - sj1 – The 3’-mismatching nucleotide of the closing pair

      - sp1 – The 3’-mismatching nucleotide of the enclosed pair

      - sq1 – The 5’-mismatching nucleotide of the enclosed pair

      - P – The datastructure containing scaled Boltzmann weights of the energy parameters

    Returns:

      The Boltzmann weight of the Interior-loop

  static int E_IntLoop_Co(int type, int type_2, int i, int j, int p, int q, int cutpoint, short si1, short sj1, short sp1, short sq1, int dangles, vrna_param_t *P)
    #include <ViennaRNA/eval/internal.h>
  static int __E_IntLoop_Co(int type, int type_2, int i, int j, int p, int q, int cutpoint, short si1, short sj1, short sp1, short sq1, int dangles, vrna_param_t *P)
    #include <ViennaRNA/eval/internal.h>
  static int ubf_eval_int_loop(int i, int j, int p, int q, int i1, int j1, int p1, int q1, short si, short sj, short sp, short sq, unsigned char type, unsigned char type_2, int *rtype, int ij, int cp, vrna_param_t *P, vrna_sc_t *sc)
    #include <ViennaRNA/eval/internal.h>
  static int ubf_eval_int_loop2(int i, int j, int p, int q, int i1, int j1, int p1, int q1, short si, short sj, short sp, short sq, unsigned char type, unsigned char type_2, int *rtype, int ij, unsigned int *sn, unsigned int *ss, vrna_param_t *P, vrna_sc_t *sc)
    #include <ViennaRNA/eval/internal.h>
  static int ubf_eval_ext_int_loop(int i, int j, int p, int q, int i1, int j1, int p1, int q1, short si, short sj, short sp, short sq, unsigned char type, unsigned char type_2, int length, vrna_param_t *P, vrna_sc_t *sc)
    #include <ViennaRNA/eval/internal.h>
  int vrna_eval_int_loop(vrna_fold_compound_t *fc, int i, int j, int k, int l)
    #include <ViennaRNA/eval/internal.h>

    SWIG Wrapper Notes:

      This function is attached as method `eval_int_loop()` to objects of type `fold_compound`. See, e.g. `RNA.fold_compound.eval_int_loop()` in the Python API .

  int vrna_E_stack(vrna_fold_compound_t *fc, int i, int j)
    #include <ViennaRNA/eval/internal.h>
  FLT_OR_DBL vrna_exp_E_interior_loop(vrna_fold_compound_t *fc, int i, int j, int k, int l)
    #include <ViennaRNA/eval/internal.h>
  static int E_MLstem(int type, int si1, int sj1, vrna_param_t *P)
    #include <ViennaRNA/eval/multibranch.h>
  static FLT_OR_DBL exp_E_MLstem(int type, int si1, int sj1, vrna_exp_param_t *P)
    #include <ViennaRNA/eval/multibranch.h>
  float energy_of_structure(const char *string, const char *structure, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded RNA using global model detail settings.

    If verbosity level is set to a value >0, energies of structure elements are printed to stdout

    Deprecated:

      Use vrna_eval_structure() or vrna_eval_structure_verbose() instead!

    See also

    vrna_eval_structure()

    Note

    OpenMP: This function relies on several global model settings variables and thus is not to be considered threadsafe. See energy_of_struct_par() for a completely threadsafe implementation.

    Parameters:

      - string – RNA sequence

      - structure – secondary structure in dot-bracket notation

      - verbosity_level – a flag to turn verbose output on/off

    Returns:

      the free energy of the input structure given the input sequence in kcal/mol

  float energy_of_struct_par(const char *string, const char *structure, vrna_param_t *parameters, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded RNA.

    If verbosity level is set to a value >0, energies of structure elements are printed to stdout

    Deprecated:

      Use vrna_eval_structure() or vrna_eval_structure_verbose() instead!

    See also

    vrna_eval_structure()

    Parameters:

      - string – RNA sequence in uppercase letters

      - structure – Secondary structure in dot-bracket notation

      - parameters – A data structure containing the prescaled energy contributions and the model details.

      - verbosity_level – A flag to turn verbose output on/off

    Returns:

      The free energy of the input structure given the input sequence in kcal/mol

  float energy_of_circ_structure(const char *string, const char *structure, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded circular RNA.

    If verbosity level is set to a value >0, energies of structure elements are printed to stdout

    Deprecated:

      Use vrna_eval_structure() or vrna_eval_structure_verbose() instead!

    See also

    vrna_eval_structure()

    Note

    OpenMP: This function relies on several global model settings variables and thus is not to be considered threadsafe. See energy_of_circ_struct_par() for a completely threadsafe implementation.

    Parameters:

      - string – RNA sequence

      - structure – Secondary structure in dot-bracket notation

      - verbosity_level – A flag to turn verbose output on/off

    Returns:

      The free energy of the input structure given the input sequence in kcal/mol

  float energy_of_circ_struct_par(const char *string, const char *structure, vrna_param_t *parameters, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded circular RNA.

    If verbosity level is set to a value >0, energies of structure elements are printed to stdout

    Deprecated:

      Use vrna_eval_structure() or vrna_eval_structure_verbose() instead!

    See also

    vrna_eval_structure()

    Parameters:

      - string – RNA sequence

      - structure – Secondary structure in dot-bracket notation

      - parameters – A data structure containing the prescaled energy contributions and the model details.

      - verbosity_level – A flag to turn verbose output on/off

    Returns:

      The free energy of the input structure given the input sequence in kcal/mol

  float energy_of_gquad_structure(const char *string, const char *structure, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>
  float energy_of_gquad_struct_par(const char *string, const char *structure, vrna_param_t *parameters, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>
  int energy_of_structure_pt(const char *string, short *ptable, short *s, short *s1, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded RNA.

    If verbosity level is set to a value >0, energies of structure elements are printed to stdout

    Deprecated:

      Use vrna_eval_structure_pt() or vrna_eval_structure_pt_verbose() instead!

    See also

    vrna_eval_structure_pt()

    Note

    OpenMP: This function relies on several global model settings variables and thus is not to be considered threadsafe. See energy_of_struct_pt_par() for a completely threadsafe implementation.

    Parameters:

      - string – RNA sequence

      - ptable – the pair table of the secondary structure

      - s – encoded RNA sequence

      - s1 – encoded RNA sequence

      - verbosity_level – a flag to turn verbose output on/off

    Returns:

      the free energy of the input structure given the input sequence in 10kcal/mol

  int energy_of_struct_pt_par(const char *string, short *ptable, short *s, short *s1, vrna_param_t *parameters, int verbosity_level)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded RNA.

    If verbosity level is set to a value >0, energies of structure elements are printed to stdout

    Deprecated:

      Use vrna_eval_structure_pt() or vrna_eval_structure_pt_verbose() instead!

    See also

    vrna_eval_structure_pt()

    Parameters:

      - string – RNA sequence in uppercase letters

      - ptable – The pair table of the secondary structure

      - s – Encoded RNA sequence

      - s1 – Encoded RNA sequence

      - parameters – A data structure containing the prescaled energy contributions and the model details.

      - verbosity_level – A flag to turn verbose output on/off

    Returns:

      The free energy of the input structure given the input sequence in 10kcal/mol

  float energy_of_move(const char *string, const char *structure, int m1, int m2)
    #include <ViennaRNA/eval/structures.h>

    Calculate energy of a move (closing or opening of a base pair)

    If the parameters m1 and m2 are negative, it is deletion (opening) of a base pair, otherwise it is insertion (opening).

    Deprecated:

      Use vrna_eval_move() instead!

    See also

    vrna_eval_move()

    Parameters:

      - string – RNA sequence

      - structure – secondary structure in dot-bracket notation

      - m1 – first coordinate of base pair

      - m2 – second coordinate of base pair

    Returns:

      energy change of the move in kcal/mol

  int energy_of_move_pt(short *pt, short *s, short *s1, int m1, int m2)
    #include <ViennaRNA/eval/structures.h>

    Calculate energy of a move (closing or opening of a base pair)

    If the parameters m1 and m2 are negative, it is deletion (opening) of a base pair, otherwise it is insertion (opening).

    Deprecated:

      Use vrna_eval_move_pt() instead!

    See also

    vrna_eval_move_pt()

    Parameters:

      - pt – the pair table of the secondary structure

      - s – encoded RNA sequence

      - s1 – encoded RNA sequence

      - m1 – first coordinate of base pair

      - m2 – second coordinate of base pair

    Returns:

      energy change of the move in 10cal/mol

  int loop_energy(short *ptable, short *s, short *s1, int i)
    #include <ViennaRNA/eval/structures.h>

    Calculate energy of a loop.

    Deprecated:

      Use vrna_eval_loop_pt() instead!

    See also

    vrna_eval_loop_pt()

    Parameters:

      - ptable – the pair table of the secondary structure

      - s – encoded RNA sequence

      - s1 – encoded RNA sequence

      - i – position of covering base pair

    Returns:

      free energy of the loop in 10cal/mol

  float energy_of_struct(const char *string, const char *structure)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded RNA

    Deprecated:

      This function is deprecated and should not be used in future programs! Use energy_of_structure() instead!

    See also

    energy_of_structure, energy_of_circ_struct(), energy_of_struct_pt()

    Note

    This function is not entirely threadsafe! Depending on the state of the global variable eos_debug it prints energy information to stdout or not…

    Parameters:

      - string – RNA sequence

      - structure – secondary structure in dot-bracket notation

    Returns:

      the free energy of the input structure given the input sequence in kcal/mol

  int energy_of_struct_pt(const char *string, short *ptable, short *s, short *s1)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded RNA

    Deprecated:

      This function is deprecated and should not be used in future programs! Use energy_of_structure_pt() instead!

    See also

    make_pair_table(), energy_of_structure()

    Note

    This function is not entirely threadsafe! Depending on the state of the global variable eos_debug it prints energy information to stdout or not…

    Parameters:

      - string – RNA sequence

      - ptable – the pair table of the secondary structure

      - s – encoded RNA sequence

      - s1 – encoded RNA sequence

    Returns:

      the free energy of the input structure given the input sequence in 10kcal/mol

  float energy_of_circ_struct(const char *string, const char *structure)
    #include <ViennaRNA/eval/structures.h>

    Calculate the free energy of an already folded circular RNA

    Deprecated:

      This function is deprecated and should not be used in future programs Use energy_of_circ_structure() instead!

    See also

    energy_of_circ_structure(), energy_of_struct(), energy_of_struct_pt()

    Note

    This function is not entirely threadsafe! Depending on the state of the global variable eos_debug it prints energy information to stdout or not…

    Parameters:

      - string – RNA sequence

      - structure – secondary structure in dot-bracket notation

    Returns:

      the free energy of the input structure given the input sequence in kcal/mol

  Variables

  int cut_point

    first pos of second seq for cofolding

  int eos_debug

    verbose info from energy_of_struct