SHAPE Reactivity Data
Incorporate SHAPE reactivity structure probing data into the folding recursions by means of soft constraints.
Details for our implementation to incorporate SHAPE reactivity data to guide secondary structure prediction can be found in Lorenz et al. [2016].
Functions
-
void vrna_constraints_add_SHAPE(vrna_fold_compound_t *fc, const char *shape_file, const char *shape_method, const char *shape_conversion, int verbose, unsigned int constraint_type)
- #include <ViennaRNA/constraints/SHAPE.h>
-
void vrna_constraints_add_SHAPE_ali(vrna_fold_compound_t *fc, const char *shape_method, const char **shape_files, const int *shape_file_association, int verbose, unsigned int constraint_type)
- #include <ViennaRNA/constraints/SHAPE.h>
-
int vrna_sc_add_SHAPE_deigan(vrna_fold_compound_t *fc, const double *reactivities, double m, double b, unsigned int options)
- #include <ViennaRNA/constraints/SHAPE.h>
Add SHAPE reactivity data as soft constraints (Deigan et al. method)
This approach of SHAPE directed RNA folding uses the simple linear ansatz
\[ \Delta G_{\text{SHAPE}}(i) = m \ln(\text{SHAPE reactivity}(i)+1)+ b \]to convert SHAPE reactivity values to pseudo energies whenever a nucleotide \( i \) contributes to a stacked pair. A positive slope \( m \) penalizes high reactivities in paired regions, while a negative intercept \( b \) results in a confirmatory `bonus’ free energy for correctly predicted base pairs. Since the energy evaluation of a base pair stack involves two pairs, the pseudo energies are added for all four contributing nucleotides. Consequently, the energy term is applied twice for pairs inside a helix and only once for pairs adjacent to other structures. For all other loop types the energy model remains unchanged even when the experimental data highly disagrees with a certain motif.
- SWIG Wrapper Notes:
This function is attached as method
sc_add_SHAPE_deigan()
to objects of typefold_compound
. See, e.g.RNA.fold_compound.sc_add_SHAPE_deigan()
in the Python API .
Note
For further details, we refer to Deigan et al. [2009] .
- Parameters:
fc – The vrna_fold_compound_t the soft constraints are associated with
reactivities – A vector of normalized SHAPE reactivities
m – The slope of the conversion function
b – The intercept of the conversion function
options – The options flag indicating how/where to store the soft constraints
- Returns:
1 on successful extraction of the method, 0 on errors
-
int vrna_sc_add_SHAPE_deigan_ali(vrna_fold_compound_t *fc, const char **shape_files, const int *shape_file_association, double m, double b, unsigned int options)
- #include <ViennaRNA/constraints/SHAPE.h>
Add SHAPE reactivity data from files as soft constraints for consensus structure prediction (Deigan et al. method)
- SWIG Wrapper Notes:
This function is attached as method
sc_add_SHAPE_deigan_ali()
to objects of typefold_compound
. See, e.g.RNA.fold_compound.sc_add_SHAPE_deigan_ali()
in the Python API .
- Parameters:
fc – The vrna_fold_compound_t the soft constraints are associated with
shape_files – A set of filenames that contain normalized SHAPE reactivity data
shape_file_association – An array of integers that associate the files with sequences in the alignment
m – The slope of the conversion function
b – The intercept of the conversion function
options – The options flag indicating how/where to store the soft constraints
- Returns:
1 on successful extraction of the method, 0 on errors
-
int vrna_sc_add_SHAPE_zarringhalam(vrna_fold_compound_t *fc, const double *reactivities, double b, double default_value, const char *shape_conversion, unsigned int options)
- #include <ViennaRNA/constraints/SHAPE.h>
Add SHAPE reactivity data as soft constraints (Zarringhalam et al. method)
This method first converts the observed SHAPE reactivity of nucleotide \( i \) into a probability \( q_i \) that position \( i \) is unpaired by means of a non-linear map. Then pseudo-energies of the form
\[ \Delta G_{\text{SHAPE}}(x,i) = \beta\ |x_i - q_i| \]are computed, where \( x_i=0 \) if position \( i \) is unpaired and \( x_i=1 \) if \( i \) is paired in a given secondary structure. The parameter \( \beta \) serves as scaling factor. The magnitude of discrepancy between prediction and experimental observation is represented by \( |x_i - q_i| \).
- SWIG Wrapper Notes:
This function is attached as method
sc_add_SHAPE_zarringhalam()
to objects of typefold_compound
. See, e.g.RNA.fold_compound.sc_add_SHAPE_zarringhalam()
in the Python API .
Note
For further details, we refer to Zarringhalam et al. [2012]
- Parameters:
fc – The vrna_fold_compound_t the soft constraints are associated with
reactivities – A vector of normalized SHAPE reactivities
b – The scaling factor \( \beta \) of the conversion function
default_value – The default value for a nucleotide where reactivity data is missing for
shape_conversion – A flag that specifies how to convert reactivities to probabilities
options – The options flag indicating how/where to store the soft constraints
- Returns:
1 on successful extraction of the method, 0 on errors
-
int vrna_sc_SHAPE_to_pr(const char *shape_conversion, double *values, int length, double default_value)
- #include <ViennaRNA/constraints/SHAPE.h>
Convert SHAPE reactivity values to probabilities for being unpaired.
This function parses the informations from a given file and stores the result in the preallocated string sequence and the FLT_OR_DBL array values.
See also
- Parameters:
shape_conversion – String definining the method used for the conversion process
values – Pointer to an array of SHAPE reactivities
length – Length of the array of SHAPE reactivities
default_value – Result used for position with invalid/missing reactivity values
-
void vrna_constraints_add_SHAPE(vrna_fold_compound_t *fc, const char *shape_file, const char *shape_method, const char *shape_conversion, int verbose, unsigned int constraint_type)