# Salt Corrections

All relevant functions to compute salt correction at a given salt concentration and temperature.

The corrections for loop and stack are taken from Einert and Netz [2011].

All corrections returned are in units of \(\text{dcal} \cdot \text{mol}^{-1}\).

  Functions

  double vrna_salt_loop(int L, double salt, double T, double backbonelen)
    #include <ViennaRNA/params/salt.h>

    Get salt correction for a loop at a given salt concentration and temperature.

    Parameters:

      - L – backbone number in loop

      - salt – salt concentration (M)

      - T – absolute temperature (K)

      - backbonelen – Backbone Length, phosphate-to-phosphate distance (typically 6 for RNA, 6.76 for DNA)

    Returns:

      Salt correction for loop in dcal/mol

  int vrna_salt_loop_int(int L, double salt, double T, double backbonelen)
    #include <ViennaRNA/params/salt.h>

    Get salt correction for a loop at a given salt concentration and temperature.

    This functions is same as vrna_salt_loop but returns rounded salt correction in integer

    See also

    vrna_salt_loop

    Parameters:

      - L – backbone number in loop

      - salt – salt concentration (M)

      - T – absolute temperature (K)

      - backbonelen – Backbone Length, phosphate-to-phosphate distance (typically 6 for RNA, 6.76 for DNA)

    Returns:

      Rounded salt correction for loop in dcal/mol

  int vrna_salt_stack(double salt, double T, double hrise)
    #include <ViennaRNA/params/salt.h>

    Get salt correction for a stack at a given salt concentration and temperature.

    Parameters:

      - salt – salt concentration (M)

      - T – absolute temperature (K)

      - hrise – Helical Rise (typically 2.8 for RNA, 3.4 for DNA)

    Returns:

      Rounded salt correction for stack in dcal/mol

  void vrna_salt_ml(double saltLoop[], int lower, int upper, int *m, int *b)
    #include <ViennaRNA/params/salt.h>

    Fit linear function to loop salt correction.

    For a given range of loop size (backbone number), we perform a linear fitting on loop salt correction

    \[ \text{Loop correction} \approx m \cdot L + b. \]

    See also

    vrna_salt_loop()

    Parameters:

      - saltLoop – List of loop salt correction of size from 1

      - lower – Define the size lower bound for fitting

      - upper – Define the size upper bound for fitting

      - m – pointer to store the parameter m in fitting result

      - b – pointer to store the parameter b in fitting result

  int vrna_salt_duplex_init(vrna_md_t *md)
    #include <ViennaRNA/params/salt.h>

    Get salt correction for duplex initialization at a given salt concentration.

    Parameters:

      - md – Model details data structure that specfifies salt concentration in buffer (M)

    Returns:

      Rounded correction for duplex initialization in dcal/mol