(Abstract) Data Structures#
All datastructures and typedefs shared among the ViennaRNA Package can be found here.
The Fold Compound#
API to create, modify, and delete vrna_fold_compound_t
data structures.
Defines
-
VRNA_STATUS_MFE_PRE#
Status message indicating that MFE computations are about to begin.
#include <ViennaRNA/fold_compound.h>
-
VRNA_STATUS_MFE_POST#
Status message indicating that MFE computations are finished.
#include <ViennaRNA/fold_compound.h>
-
VRNA_STATUS_PF_PRE#
Status message indicating that Partition function computations are about to begin.
#include <ViennaRNA/fold_compound.h>
-
VRNA_STATUS_PF_POST#
Status message indicating that Partition function computations are finished.
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_DEFAULT#
Option flag to specify default settings/requirements.
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_MFE#
Option flag to specify requirement of Minimum Free Energy (MFE) DP matrices and corresponding set of energy parameters.
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_PF#
Option flag to specify requirement of Partition Function (PF) DP matrices and corresponding set of Boltzmann factors.
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_HYBRID#
Option flag to specify requirement of dimer DP matrices.
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_EVAL_ONLY#
Option flag to specify that neither MFE, nor PF DP matrices are required.
#include <ViennaRNA/fold_compound.h>
Use this flag in conjuntion with VRNA_OPTION_MFE, and VRNA_OPTION_PF to save memory for a vrna_fold_compound_t obtained from vrna_fold_compound(), or vrna_fold_compound_comparative() in cases where only energy evaluation but no structure prediction is required.
-
VRNA_OPTION_WINDOW#
Option flag to specify requirement of DP matrices for local folding approaches.
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_F5#
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_F3#
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_WINDOW_F5#
#include <ViennaRNA/fold_compound.h>
-
VRNA_OPTION_WINDOW_F3#
#include <ViennaRNA/fold_compound.h>
Typedefs
-
typedef struct vrna_fc_s vrna_fold_compound_t#
Typename for the fold_compound data structure vrna_fc_s.
#include <ViennaRNA/fold_compound.h>
-
typedef void (*vrna_auxdata_free_f)(void *data)#
Callback to free memory allocated for auxiliary user-provided data.
#include <ViennaRNA/fold_compound.h>
This type of user-implemented function usually deletes auxiliary data structures. The user must take care to free all the memory occupied by the data structure passed.
- Notes on Callback Functions:
This callback is supposed to free memory occupied by an auxiliary data structure. It will be called when the vrna_fold_compound_t is erased from memory through a call to vrna_fold_compound_free() and will be passed the address of memory previously bound to the vrna_fold_compound_t via vrna_fold_compound_add_auxdata().
See also
vrna_fold_compound_add_auxdata(), vrna_fold_compound_free(), vrna_fold_compound_add_callback()
- Param data:
The data that needs to be free’d
-
typedef int (*vrna_auxdata_prepare_f)(vrna_fold_compound_t *fc, void *data, unsigned int event, void *event_data)#
Callback to prepare user-provided data based on some event.
#include <ViennaRNA/fold_compound.h>
- Param fc:
The fold compound the event was emitted from
- Param data:
The user-defined data that may be prepared according to the event
- Param event:
The event
- Param event_data:
Some additional data corresponding to the event
- Return:
non-zero if the preparation was successful, 0 otherwise
-
typedef void vrna_callback_free_auxdata(void *data)#
Callback to free memory allocated for auxiliary user-provided data.
#include <ViennaRNA/fold_compound.h>
- Deprecated:
Use vrna_auxdata_free_f(void *data) instead!
-
typedef void (*vrna_recursion_status_f)(vrna_fold_compound_t *fc, unsigned char status, void *data)#
Callback to perform specific user-defined actions before, or after recursive computations.
#include <ViennaRNA/fold_compound.h>
- Notes on Callback Functions:
This function will be called to notify a third-party implementation about the status of a currently ongoing recursion. The purpose of this callback mechanism is to provide users with a simple way to ensure pre- and post conditions for auxiliary mechanisms attached to our implementations.
See also
vrna_fold_compound_add_auxdata(), vrna_fold_compound_add_callback(), vrna_mfe(), vrna_pf(), VRNA_STATUS_MFE_PRE, VRNA_STATUS_MFE_POST, VRNA_STATUS_PF_PRE, VRNA_STATUS_PF_POST
- Param fc:
The fold compound emitting the status
- Param status:
The status indicator
- Param data:
The data structure that was assigned with vrna_fold_compound_add_auxdata()
-
typedef void vrna_callback_recursion_status(unsigned char status, void *data)#
#include <ViennaRNA/fold_compound.h>
Enums
-
enum vrna_fc_type_e#
An enumerator that is used to specify the type of a vrna_fold_compound_t.
#include <ViennaRNA/fold_compound.h>
Values:
-
enumerator VRNA_FC_TYPE_SINGLE#
Type is suitable for single, and hybridizing sequences
-
enumerator VRNA_FC_TYPE_COMPARATIVE#
Type is suitable for sequence alignments (consensus structure prediction)
-
enumerator VRNA_FC_TYPE_SINGLE#
Functions
-
vrna_fold_compound_t *vrna_fold_compound(const char *sequence, const vrna_md_t *md_p, unsigned int options)#
Retrieve a vrna_fold_compound_t data structure for single sequences and hybridizing sequences.
#include <ViennaRNA/fold_compound.h>
This function provides an easy interface to obtain a prefilled vrna_fold_compound_t by passing a single sequence, or two contatenated sequences as input. For the latter, sequences need to be seperated by an ‘&’ character like this:
char *sequence = "GGGG&CCCC";
The optional parameter
md_pcan be used to specify the model details for successive computations based on the content of the generated vrna_fold_compound_t. Passing NULL will instruct the function to use default model details. The third parameteroptionsmay be used to specify dynamic programming (DP) matrix requirements.Options
VRNA_OPTION_DEFAULT - Option flag to specify default settings/requirements.
VRNA_OPTION_MFE - Option flag to specify requirement of Minimum Free Energy (MFE) DP matrices and corresponding set of energy parameters.
VRNA_OPTION_PF - Option flag to specify requirement of Partition Function (PF) DP matrices and corresponding set of Boltzmann factors.
VRNA_OPTION_WINDOW - Option flag to specify requirement of DP matrices for local folding approaches.
The above options may be OR-ed together.
If you just need the folding compound serving as a container for your data, you can simply pass VRNA_OPTION_DEFAULT to the
optionparameter. This creates a vrna_fold_compound_t without DP matrices, thus saving memory. Subsequent calls of any structure prediction function will then take care of allocating the memory required for the DP matrices. If you only intend to evaluate structures instead of actually predicting them, you may use the VRNA_OPTION_EVAL_ONLY macro. This will seriously speedup the creation of the vrna_fold_compound_t.Note
The sequence string must be uppercase, and should contain only RNA (resp. DNA) alphabet depending on what energy parameter set is used
- Parameters:
sequence – A single sequence, or two concatenated sequences seperated by an ‘&’ character
md_p – An optional set of model details
options – The options for DP matrices memory allocation
- Returns:
A prefilled vrna_fold_compound_t ready to be used for computations (may be
NULLon error)
-
vrna_fold_compound_t *vrna_fold_compound_comparative(const char **sequences, vrna_md_t *md_p, unsigned int options)#
Retrieve a vrna_fold_compound_t data structure for sequence alignments.
#include <ViennaRNA/fold_compound.h>
This function provides an easy interface to obtain a prefilled vrna_fold_compound_t by passing an alignment of sequences.
The optional parameter
md_pcan be used to specify the model details for successive computations based on the content of the generated vrna_fold_compound_t. Passing NULL will instruct the function to use default model details. The third parameteroptionsmay be used to specify dynamic programming (DP) matrix requirements.Options
VRNA_OPTION_DEFAULT - Option flag to specify default settings/requirements.
VRNA_OPTION_MFE - Option flag to specify requirement of Minimum Free Energy (MFE) DP matrices and corresponding set of energy parameters.
VRNA_OPTION_PF - Option flag to specify requirement of Partition Function (PF) DP matrices and corresponding set of Boltzmann factors.
VRNA_OPTION_WINDOW - Option flag to specify requirement of DP matrices for local folding approaches.
The above options may be OR-ed together.
If you just need the folding compound serving as a container for your data, you can simply pass VRNA_OPTION_DEFAULT to the
optionparameter. This creates a vrna_fold_compound_t without DP matrices, thus saving memory. Subsequent calls of any structure prediction function will then take care of allocating the memory required for the DP matrices. If you only intend to evaluate structures instead of actually predicting them, you may use the VRNA_OPTION_EVAL_ONLY macro. This will seriously speedup the creation of the vrna_fold_compound_t.See also
vrna_fold_compound_free(), vrna_fold_compound(), vrna_md_t, VRNA_OPTION_MFE, VRNA_OPTION_PF, VRNA_OPTION_EVAL_ONLY, read_clustal()
Note
The sequence strings must be uppercase, and should contain only RNA (resp. DNA) alphabet including gap characters depending on what energy parameter set is used.
- Parameters:
sequences – A sequence alignment including ‘gap’ characters
md_p – An optional set of model details
options – The options for DP matrices memory allocation
- Returns:
A prefilled vrna_fold_compound_t ready to be used for computations (may be
NULLon error)
-
vrna_fold_compound_t *vrna_fold_compound_comparative2(const char **sequences, const char **names, const unsigned char *orientation, const unsigned long long *start, const unsigned long long *genome_size, vrna_md_t *md_p, unsigned int options)#
#include <ViennaRNA/fold_compound.h>
-
vrna_fold_compound_t *vrna_fold_compound_TwoD(const char *sequence, const char *s1, const char *s2, vrna_md_t *md_p, unsigned int options)#
#include <ViennaRNA/fold_compound.h>
-
int vrna_fold_compound_prepare(vrna_fold_compound_t *fc, unsigned int options)#
#include <ViennaRNA/fold_compound.h>
-
void vrna_fold_compound_free(vrna_fold_compound_t *fc)#
Free memory occupied by a vrna_fold_compound_t.
#include <ViennaRNA/fold_compound.h>
See also
vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_mx_mfe_free(), vrna_mx_pf_free()
- Parameters:
fc – The vrna_fold_compound_t that is to be erased from memory
-
void vrna_fold_compound_add_auxdata(vrna_fold_compound_t *fc, void *data, vrna_auxdata_free_f f)#
Add auxiliary data to the vrna_fold_compound_t.
#include <ViennaRNA/fold_compound.h>
This function allows one to bind arbitrary data to a vrna_fold_compound_t which may later on be used by one of the callback functions, e.g. vrna_recursion_status_f(). To allow for proper cleanup of the memory occupied by this auxiliary data, the user may also provide a pointer to a cleanup function that free’s the corresponding memory. This function will be called automatically when the vrna_fold_compound_t is free’d with vrna_fold_compound_free().
See also
Note
Before attaching the arbitrary data pointer, this function will call the vrna_auxdata_free_f() on any pre-existing data that is already attached.
- Parameters:
fc – The fold_compound the arbitrary data pointer should be associated with
data – A pointer to an arbitrary data structure
f – A pointer to function that free’s memory occupied by the arbitrary data (May be NULL)
-
void vrna_fold_compound_add_callback(vrna_fold_compound_t *fc, vrna_recursion_status_f f)#
Add a recursion status callback to the vrna_fold_compound_t.
#include <ViennaRNA/fold_compound.h>
Binding a recursion status callback function to a vrna_fold_compound_t allows one to perform arbitrary operations just before, or after an actual recursive computations, e.g. MFE prediction, is performed by the RNAlib. The callback function will be provided with a pointer to its vrna_fold_compound_t, and a status message. Hence, it has complete access to all variables that incluence the recursive computations.
See also
vrna_recursion_status_f(), vrna_fold_compound_t, VRNA_STATUS_MFE_PRE, VRNA_STATUS_MFE_POST, VRNA_STATUS_PF_PRE, VRNA_STATUS_PF_POST
- Parameters:
fc – The fold_compound the callback function should be attached to
f – The pointer to the recursion status callback function
-
struct vrna_fc_s#
- #include <ViennaRNA/fold_compound.h>
The most basic data structure required by many functions throughout the RNAlib.
- SWIG Wrapper Notes:
-
This data structure is wrapped as class
fold_compoundwith several related functions attached as methods.A new
fold_compoundcan be obtained by calling one of its constructors:fold_compound(seq)- Initialize with a single sequence, or two concatenated sequences separated by an ampersand character&(for cofolding)fold_compound(aln)- Initialize with a sequence alignment aln stored as a list of sequences (with gap characters).
The resulting object has a list of attached methods which in most cases directly correspond to functions that mainly operate on the corresponding
Cdata structure:type()- Get the type of the fold_compound (See vrna_fc_type_e)length()- Get the length of the sequence(s) or alignment stored within thefold_compound.
See, e.g.
RNA.fold_compoundin the The RNA Python module.
See also
vrna_fold_compound_t.type, vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), VRNA_FC_TYPE_SINGLE, VRNA_FC_TYPE_COMPARATIVE
Note
Please read the documentation of this data structure carefully! Some attributes are only available for specific types this data structure can adopt.
Warning
Reading/Writing from/to attributes that are not within the scope of the current type usually result in undefined behavior!
Common data fields
-
const vrna_fc_type_e type#
The type of the vrna_fold_compound_t.
#include <ViennaRNA/fold_compound.h>
Currently possible values are VRNA_FC_TYPE_SINGLE, and VRNA_FC_TYPE_COMPARATIVE
Warning
Do not edit this attribute, it will be automagically set by the corresponding get() methods for the vrna_fold_compound_t. The value specified in this attribute dictates the set of other attributes to use within this data structure.
-
unsigned int length#
The length of the sequence (or sequence alignment).
#include <ViennaRNA/fold_compound.h>
-
int cutpoint#
The position of the (cofold) cutpoint within the provided sequence. If there is no cutpoint, this field will be set to -1.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *strand_number#
The strand number a particular nucleotide is associated with.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *strand_order#
The strand order, i.e. permutation of current concatenated sequence.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *strand_order_uniq#
The strand order array where identical sequences have the same ID.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *strand_start#
The start position of a particular strand within the current concatenated sequence.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *strand_end#
The end (last) position of a particular strand within the current concatenated sequence.
#include <ViennaRNA/fold_compound.h>
-
unsigned int strands#
Number of interacting strands.
#include <ViennaRNA/fold_compound.h>
-
vrna_seq_t *nucleotides#
Set of nucleotide sequences.
#include <ViennaRNA/fold_compound.h>
-
vrna_msa_t *alignment#
Set of alignments.
#include <ViennaRNA/fold_compound.h>
-
vrna_hc_t *hc#
The hard constraints data structure used for structure prediction.
#include <ViennaRNA/fold_compound.h>
-
vrna_mx_mfe_t *matrices#
The MFE DP matrices.
#include <ViennaRNA/fold_compound.h>
-
vrna_mx_pf_t *exp_matrices#
The PF DP matrices.
#include <ViennaRNA/fold_compound.h>
-
vrna_param_t *params#
The precomputed free energy contributions for each type of loop.
#include <ViennaRNA/fold_compound.h>
-
vrna_exp_param_t *exp_params#
The precomputed free energy contributions as Boltzmann factors.
#include <ViennaRNA/fold_compound.h>
-
int *iindx#
DP matrix accessor.
#include <ViennaRNA/fold_compound.h>
-
int *jindx#
DP matrix accessor.
#include <ViennaRNA/fold_compound.h>
User-defined data fields
-
vrna_recursion_status_f stat_cb#
Recursion status callback (usually called just before, and after recursive computations in the library.
#include <ViennaRNA/fold_compound.h>
-
void *auxdata#
A pointer to auxiliary, user-defined data.
#include <ViennaRNA/fold_compound.h>
-
vrna_auxdata_free_f free_auxdata#
A callback to free auxiliary user data whenever the fold_compound itself is free’d.
#include <ViennaRNA/fold_compound.h>
-
vrna_sd_t *domains_struc#
Additional structured domains.
#include <ViennaRNA/fold_compound.h>
-
vrna_gr_aux_t aux_grammar#
Additional decomposition grammar rules.
#include <ViennaRNA/fold_compound.h>
Additional data fields for Distance Class Partitioning
These data fields are typically populated with meaningful data only if used in the context of Distance Class Partitioning
-
unsigned int maxD1#
Maximum allowed base pair distance to first reference.
#include <ViennaRNA/fold_compound.h>
-
unsigned int maxD2#
Maximum allowed base pair distance to second reference.
#include <ViennaRNA/fold_compound.h>
-
short *reference_pt1#
A pairtable of the first reference structure.
#include <ViennaRNA/fold_compound.h>
-
short *reference_pt2#
A pairtable of the second reference structure.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *referenceBPs1#
Matrix containing number of basepairs of reference structure1 in interval [i,j].
#include <ViennaRNA/fold_compound.h>
-
unsigned int *referenceBPs2#
Matrix containing number of basepairs of reference structure2 in interval [i,j].
#include <ViennaRNA/fold_compound.h>
-
unsigned int *bpdist#
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,j].
#include <ViennaRNA/fold_compound.h>
-
unsigned int *mm1#
Maximum matching matrix, reference struct 1 disallowed.
#include <ViennaRNA/fold_compound.h>
-
unsigned int *mm2#
Maximum matching matrix, reference struct 2 disallowed.
#include <ViennaRNA/fold_compound.h>
Additional data fields for local folding
These data fields are typically populated with meaningful data only if used in the context of local folding
-
int window_size#
window size for local folding sliding window approach
#include <ViennaRNA/fold_compound.h>
-
char **ptype_local#
Pair type array (for local folding).
#include <ViennaRNA/fold_compound.h>
-
vrna_zsc_dat_t zscore_data#
Data structure with settings for z-score computations.
#include <ViennaRNA/fold_compound.h>
- [union].__unnamed0__
Public Members
- [struct].__unnamed0__.__unnamed0__
Data fields available for single/hybrid structure prediction
-
char *sequence#
The input sequence string.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
short *sequence_encoding#
Numerical encoding of the input sequence.
#include <ViennaRNA/fold_compound.h>
See also
vrna_sequence_encode()
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
short *encoding5#
#include <ViennaRNA/fold_compound.h>
-
short *encoding3#
#include <ViennaRNA/fold_compound.h>
-
short *sequence_encoding2#
#include <ViennaRNA/fold_compound.h>
-
char *ptype#
Pair type array.
#include <ViennaRNA/fold_compound.h>
Contains the numerical encoding of the pair type for each pair (i,j) used in MFE, Partition function and Evaluation computations.
See also
Note
This array is always indexed via jindx, in contrast to previously different indexing between mfe and pf variants!
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
char *ptype_pf_compat#
ptype array indexed via iindx
#include <ViennaRNA/fold_compound.h>
- Deprecated:
This attribute will vanish in the future! It’s meant for backward compatibility only!
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
char *sequence#
- [struct].__unnamed0__.__unnamed1__
Data fields for consensus structure prediction
-
char **sequences#
The aligned sequences.
#include <ViennaRNA/fold_compound.h>
Note
The end of the alignment is indicated by a NULL pointer in the second dimension
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
unsigned int n_seq#
The number of sequences in the alignment.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
char *cons_seq#
The consensus sequence of the aligned sequences.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short *S_cons#
Numerical encoding of the consensus sequence.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S#
Numerical encoding of the sequences in the alignment.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S5#
S5[s][i] holds next base 5’ of i in sequence s.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S3#
Sl[s][i] holds next base 3’ of i in sequence s.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
char **Ss#
#include <ViennaRNA/fold_compound.h>
-
unsigned int **a2s#
#include <ViennaRNA/fold_compound.h>
-
int *pscore#
Precomputed array of pair types expressed as pairing scores.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
int **pscore_local#
Precomputed array of pair types expressed as pairing scores.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short *pscore_pf_compat#
Precomputed array of pair types expressed as pairing scores indexed via iindx.
#include <ViennaRNA/fold_compound.h>
- Deprecated:
This attribute will vanish in the future!
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
vrna_sc_t **scs#
A set of soft constraints (for each sequence in the alignment).
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
int oldAliEn#
#include <ViennaRNA/fold_compound.h>
-
char **sequences#
- vrna_fc_s.[union].__unnamed0__
Public Members
- [struct].__unnamed0__.__unnamed0__
Data fields available for single/hybrid structure prediction
-
char *sequence#
The input sequence string.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
short *sequence_encoding#
Numerical encoding of the input sequence.
#include <ViennaRNA/fold_compound.h>
See also
vrna_sequence_encode()
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
short *encoding5#
#include <ViennaRNA/fold_compound.h>
-
short *encoding3#
#include <ViennaRNA/fold_compound.h>
-
short *sequence_encoding2#
#include <ViennaRNA/fold_compound.h>
-
char *ptype#
Pair type array.
#include <ViennaRNA/fold_compound.h>
Contains the numerical encoding of the pair type for each pair (i,j) used in MFE, Partition function and Evaluation computations.
See also
Note
This array is always indexed via jindx, in contrast to previously different indexing between mfe and pf variants!
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
char *ptype_pf_compat#
ptype array indexed via iindx
#include <ViennaRNA/fold_compound.h>
- Deprecated:
This attribute will vanish in the future! It’s meant for backward compatibility only!
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
char *sequence#
- [struct].__unnamed0__.__unnamed1__
Data fields for consensus structure prediction
-
char **sequences#
The aligned sequences.
#include <ViennaRNA/fold_compound.h>
Note
The end of the alignment is indicated by a NULL pointer in the second dimension
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
unsigned int n_seq#
The number of sequences in the alignment.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
char *cons_seq#
The consensus sequence of the aligned sequences.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short *S_cons#
Numerical encoding of the consensus sequence.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S#
Numerical encoding of the sequences in the alignment.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S5#
S5[s][i] holds next base 5’ of i in sequence s.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S3#
Sl[s][i] holds next base 3’ of i in sequence s.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
char **Ss#
#include <ViennaRNA/fold_compound.h>
-
unsigned int **a2s#
#include <ViennaRNA/fold_compound.h>
-
int *pscore#
Precomputed array of pair types expressed as pairing scores.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
int **pscore_local#
Precomputed array of pair types expressed as pairing scores.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short *pscore_pf_compat#
Precomputed array of pair types expressed as pairing scores indexed via iindx.
#include <ViennaRNA/fold_compound.h>
- Deprecated:
This attribute will vanish in the future!
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
vrna_sc_t **scs#
A set of soft constraints (for each sequence in the alignment).
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
int oldAliEn#
#include <ViennaRNA/fold_compound.h>
-
char **sequences#
- vrna_fc_s.[struct].__unnamed0__.__unnamed0__
Data fields available for single/hybrid structure prediction
-
char *sequence#
The input sequence string.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
short *sequence_encoding#
Numerical encoding of the input sequence.
#include <ViennaRNA/fold_compound.h>
See also
vrna_sequence_encode()
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
short *encoding5#
#include <ViennaRNA/fold_compound.h>
-
short *encoding3#
#include <ViennaRNA/fold_compound.h>
-
short *sequence_encoding2#
#include <ViennaRNA/fold_compound.h>
-
char *ptype#
Pair type array.
#include <ViennaRNA/fold_compound.h>
Contains the numerical encoding of the pair type for each pair (i,j) used in MFE, Partition function and Evaluation computations.
See also
Note
This array is always indexed via jindx, in contrast to previously different indexing between mfe and pf variants!
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
char *ptype_pf_compat#
ptype array indexed via iindx
#include <ViennaRNA/fold_compound.h>
- Deprecated:
This attribute will vanish in the future! It’s meant for backward compatibility only!
Warning
Only available if
type==VRNA_FC_TYPE_SINGLE
-
char *sequence#
- vrna_fc_s.[struct].__unnamed0__.__unnamed1__
Data fields for consensus structure prediction
-
char **sequences#
The aligned sequences.
#include <ViennaRNA/fold_compound.h>
Note
The end of the alignment is indicated by a NULL pointer in the second dimension
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
unsigned int n_seq#
The number of sequences in the alignment.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
char *cons_seq#
The consensus sequence of the aligned sequences.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short *S_cons#
Numerical encoding of the consensus sequence.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S#
Numerical encoding of the sequences in the alignment.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S5#
S5[s][i] holds next base 5’ of i in sequence s.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short **S3#
Sl[s][i] holds next base 3’ of i in sequence s.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
char **Ss#
#include <ViennaRNA/fold_compound.h>
-
unsigned int **a2s#
#include <ViennaRNA/fold_compound.h>
-
int *pscore#
Precomputed array of pair types expressed as pairing scores.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
int **pscore_local#
Precomputed array of pair types expressed as pairing scores.
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
short *pscore_pf_compat#
Precomputed array of pair types expressed as pairing scores indexed via iindx.
#include <ViennaRNA/fold_compound.h>
- Deprecated:
This attribute will vanish in the future!
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
vrna_sc_t **scs#
A set of soft constraints (for each sequence in the alignment).
#include <ViennaRNA/fold_compound.h>
Warning
Only available if
type==VRNA_FC_TYPE_COMPARATIVE
-
int oldAliEn#
#include <ViennaRNA/fold_compound.h>
-
char **sequences#
-
VRNA_STATUS_MFE_PRE#
The Dynamic Programming Matrices#
This module provides interfaces that deal with creation and destruction of dynamic programming matrices used within the RNAlib.
Defines
-
VRNA_MX_FLAG_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_MS5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_MS3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_G#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
VRNA_MX_FLAG_MAX#
#include <ViennaRNA/datastructures/dp_matrices.h>
Typedefs
-
typedef struct vrna_mx_mfe_s vrna_mx_mfe_t#
Typename for the Minimum Free Energy (MFE) DP matrices data structure vrna_mx_mfe_s.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
typedef struct vrna_mx_pf_s vrna_mx_pf_t#
Typename for the Partition Function (PF) DP matrices data structure vrna_mx_pf_s.
#include <ViennaRNA/datastructures/dp_matrices.h>
Enums
-
enum vrna_mx_type_e#
An enumerator that is used to specify the type of a polymorphic Dynamic Programming (DP) matrix data structure.
#include <ViennaRNA/datastructures/dp_matrices.h>
See also
Values:
-
enumerator VRNA_MX_DEFAULT#
Default DP matrices.
-
enumerator VRNA_MX_WINDOW#
DP matrices suitable for local structure prediction using window approach.
See also
-
enumerator VRNA_MX_2DFOLD#
DP matrices suitable for distance class partitioned structure prediction.
See also
-
enumerator VRNA_MX_DEFAULT#
Functions
-
int vrna_mx_add(vrna_fold_compound_t *fc, vrna_mx_type_e type, unsigned int options)#
Add Dynamic Programming (DP) matrices (allocate memory).
#include <ViennaRNA/datastructures/dp_matrices.h>
This function adds DP matrices of a specific type to the provided vrna_fold_compound_t, such that successive DP recursion can be applied. The function caller has to specify which type of DP matrix is requested, see vrna_mx_type_e, and what kind of recursive algorithm will be applied later on, using the parameters type, and options, respectively. For the latter, Minimum free energy (MFE), and Partition function (PF) computations are distinguished. A third option that may be passed is VRNA_OPTION_HYBRID, indicating that auxiliary DP arrays are required for RNA-RNA interaction prediction.
See also
vrna_mx_mfe_add(), vrna_mx_pf_add(), vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), vrna_mx_pf_free(), vrna_mx_mfe_free(), vrna_mx_type_e, VRNA_OPTION_MFE, VRNA_OPTION_PF, VRNA_OPTION_HYBRID, VRNA_OPTION_EVAL_ONLY
Note
Usually, there is no need to call this function, since the constructors of vrna_fold_compound_t are handling all the DP matrix memory allocation.
- Parameters:
fc – The vrna_fold_compound_t that holds pointers to the DP matrices
type – The type of DP matrices requested
options – Option flags that specify the kind of DP matrices, such as MFE or PF arrays, and auxiliary requirements
- Returns:
1 if DP matrices were properly allocated and attached, 0 otherwise
-
int vrna_mx_mfe_add(vrna_fold_compound_t *fc, vrna_mx_type_e mx_type, unsigned int options)#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int vrna_mx_pf_add(vrna_fold_compound_t *fc, vrna_mx_type_e mx_type, unsigned int options)#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int vrna_mx_prepare(vrna_fold_compound_t *fc, unsigned int options)#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
void vrna_mx_mfe_free(vrna_fold_compound_t *fc)#
Free memory occupied by the Minimum Free Energy (MFE) Dynamic Programming (DP) matrices.
#include <ViennaRNA/datastructures/dp_matrices.h>
See also
vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), vrna_mx_pf_free()
- Parameters:
fc – The vrna_fold_compound_t storing the MFE DP matrices that are to be erased from memory
-
void vrna_mx_pf_free(vrna_fold_compound_t *fc)#
Free memory occupied by the Partition Function (PF) Dynamic Programming (DP) matrices.
#include <ViennaRNA/datastructures/dp_matrices.h>
See also
vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), vrna_mx_mfe_free()
- Parameters:
fc – The vrna_fold_compound_t storing the PF DP matrices that are to be erased from memory
-
struct vrna_mx_mfe_s#
- #include <ViennaRNA/datastructures/dp_matrices.h>
Minimum Free Energy (MFE) Dynamic Programming (DP) matrices data structure required within the vrna_fold_compound_t.
Common fields for MFE matrices
-
const vrna_mx_type_e type#
#include <ViennaRNA/datastructures/dp_matrices.h>
Type of the DP matrices
-
unsigned int length#
Length of the sequence, therefore an indicator of the size of the DP matrices.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
unsigned int strands#
#include <ViennaRNA/datastructures/dp_matrices.h>
Number of strands
Public Members
-
union vrna_mx_mfe_s.[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
- [union].__unnamed0__
Public Members
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
- [struct].__unnamed0__.__unnamed0__
Default DP matrices
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_DEFAULT
-
int *c#
Energy array, given that i-j pair.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f5#
Energy of 5’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f3#
Energy of 3’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fms5#
Energy for connected interstrand configurations.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fms3#
nergy for connected interstrand configurations
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fML#
Multi-loop auxiliary energy array.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM1#
Second ML array, only for unique multibrnach loop decomposition.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM2#
Energy for a multibranch loop region with exactly two stems, extending to 3’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM1_new#
ML array with exactly one component within 5’end and i, ending at i (for circRNA).
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM2_real#
Energy for a multibranch loop region with at least two stems.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_int_t *c_gq#
Energies of g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int Fc#
Minimum Free Energy of entire circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcH#
Minimum Free Energy of hairpin loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcI#
Minimum Free Energy of internal loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcM#
Minimum Free Energy of multibranch loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *c#
- [struct].__unnamed0__.__unnamed1__
Local Folding DP matrices using window approach
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_WINDOW
-
int **c_local#
Energy array, given that i-j pair.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f3_local#
Energy of 5’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fML_local#
Multi-loop auxiliary energy array.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **ggg_local#
Energies of g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
unsigned int ggg_local_shift#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **c_local#
- [struct].__unnamed0__.__unnamed2__
Distance Class DP matrices
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_2DFOLD
-
int ***E_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_F5_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_F3_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_C_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M1_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M2_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_Fc_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcH_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcI_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcM_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_F5#
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
-
const vrna_mx_type_e type#
- vrna_mx_mfe_s.[union].__unnamed0__
Public Members
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
- [struct].__unnamed0__.__unnamed0__
Default DP matrices
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_DEFAULT
-
int *c#
Energy array, given that i-j pair.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f5#
Energy of 5’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f3#
Energy of 3’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fms5#
Energy for connected interstrand configurations.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fms3#
nergy for connected interstrand configurations
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fML#
Multi-loop auxiliary energy array.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM1#
Second ML array, only for unique multibrnach loop decomposition.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM2#
Energy for a multibranch loop region with exactly two stems, extending to 3’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM1_new#
ML array with exactly one component within 5’end and i, ending at i (for circRNA).
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM2_real#
Energy for a multibranch loop region with at least two stems.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_int_t *c_gq#
Energies of g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int Fc#
Minimum Free Energy of entire circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcH#
Minimum Free Energy of hairpin loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcI#
Minimum Free Energy of internal loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcM#
Minimum Free Energy of multibranch loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *c#
- [struct].__unnamed0__.__unnamed1__
Local Folding DP matrices using window approach
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_WINDOW
-
int **c_local#
Energy array, given that i-j pair.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f3_local#
Energy of 5’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fML_local#
Multi-loop auxiliary energy array.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **ggg_local#
Energies of g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
unsigned int ggg_local_shift#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **c_local#
- [struct].__unnamed0__.__unnamed2__
Distance Class DP matrices
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_2DFOLD
-
int ***E_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_F5_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_F3_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_C_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M1_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M2_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_Fc_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcH_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcI_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcM_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_F5#
-
struct vrna_mx_mfe_s.[anonymous].[anonymous] [anonymous]#
- vrna_mx_mfe_s.[struct].__unnamed0__.__unnamed0__
Default DP matrices
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_DEFAULT
-
int *c#
Energy array, given that i-j pair.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f5#
Energy of 5’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f3#
Energy of 3’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fms5#
Energy for connected interstrand configurations.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fms3#
nergy for connected interstrand configurations
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fML#
Multi-loop auxiliary energy array.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM1#
Second ML array, only for unique multibrnach loop decomposition.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM2#
Energy for a multibranch loop region with exactly two stems, extending to 3’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM1_new#
ML array with exactly one component within 5’end and i, ending at i (for circRNA).
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *fM2_real#
Energy for a multibranch loop region with at least two stems.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_int_t *c_gq#
Energies of g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int Fc#
Minimum Free Energy of entire circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcH#
Minimum Free Energy of hairpin loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcI#
Minimum Free Energy of internal loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int FcM#
Minimum Free Energy of multibranch loop cases in circular RNA.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *c#
- vrna_mx_mfe_s.[struct].__unnamed0__.__unnamed1__
Local Folding DP matrices using window approach
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_WINDOW
-
int **c_local#
Energy array, given that i-j pair.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *f3_local#
Energy of 5’ end.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **fML_local#
Multi-loop auxiliary energy array.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **ggg_local#
Energies of g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
unsigned int ggg_local_shift#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **c_local#
- vrna_mx_mfe_s.[struct].__unnamed0__.__unnamed2__
Distance Class DP matrices
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_2DFOLD
-
int ***E_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_F5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_F3#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_C#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Fc#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **E_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_FcM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_F5_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_F3_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_C_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M1_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *E_M2_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_Fc_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcH_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcI_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int E_FcM_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int ***E_F5#
-
struct vrna_mx_pf_s#
- #include <ViennaRNA/datastructures/dp_matrices.h>
Partition function (PF) Dynamic Programming (DP) matrices data structure required within the vrna_fold_compound_t.
Common fields for DP matrices
-
const vrna_mx_type_e type#
#include <ViennaRNA/datastructures/dp_matrices.h>
Type of the DP matrices
-
unsigned int length#
#include <ViennaRNA/datastructures/dp_matrices.h>
Size of the DP matrices (i.e. sequence length)
-
FLT_OR_DBL *scale#
#include <ViennaRNA/datastructures/dp_matrices.h>
Boltzmann factor scaling
-
FLT_OR_DBL *expMLbase#
#include <ViennaRNA/datastructures/dp_matrices.h>
Boltzmann factors for unpaired bases in multibranch loop
Public Members
-
union vrna_mx_pf_s.[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
- [union].__unnamed0__
Public Members
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
- [struct].__unnamed0__.__unnamed0__
Default PF matrices
Note
These data fields are available if
vrna_mx_pf_t.type == VRNA_MX_DEFAULT
-
FLT_OR_DBL *q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qb#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *probs#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *q1k#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qln#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_FLT_OR_DBL_t *q_gq#
Boltzmann factors for g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_FLT_OR_DBL_t *p_gq#
probabilities for g-quadruplexes
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qo#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm2_real#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm1_new#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qho#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qio#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qmo#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *q#
- [struct].__unnamed0__.__unnamed1__
Local Folding DP matrices using window approach
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_WINDOW
-
FLT_OR_DBL **q_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qb_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qm_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **pR#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qm2_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **QI5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **q2l#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qmb#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **G_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **q_local#
- [struct].__unnamed0__.__unnamed2__
Distance Class DP matrices
Note
These data fields are available if
vrna_mx_pf_t.type == VRNA_MX_2DFOLD
-
FLT_OR_DBL ***Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_B_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M1_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M2_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_c_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cH_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cI_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cM_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q#
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
-
const vrna_mx_type_e type#
- vrna_mx_pf_s.[union].__unnamed0__
Public Members
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/datastructures/dp_matrices.h>
- [struct].__unnamed0__.__unnamed0__
Default PF matrices
Note
These data fields are available if
vrna_mx_pf_t.type == VRNA_MX_DEFAULT
-
FLT_OR_DBL *q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qb#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *probs#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *q1k#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qln#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_FLT_OR_DBL_t *q_gq#
Boltzmann factors for g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_FLT_OR_DBL_t *p_gq#
probabilities for g-quadruplexes
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qo#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm2_real#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm1_new#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qho#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qio#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qmo#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *q#
- [struct].__unnamed0__.__unnamed1__
Local Folding DP matrices using window approach
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_WINDOW
-
FLT_OR_DBL **q_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qb_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qm_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **pR#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qm2_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **QI5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **q2l#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qmb#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **G_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **q_local#
- [struct].__unnamed0__.__unnamed2__
Distance Class DP matrices
Note
These data fields are available if
vrna_mx_pf_t.type == VRNA_MX_2DFOLD
-
FLT_OR_DBL ***Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_B_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M1_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M2_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_c_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cH_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cI_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cM_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q#
-
struct vrna_mx_pf_s.[anonymous].[anonymous] [anonymous]#
- vrna_mx_pf_s.[struct].__unnamed0__.__unnamed0__
Default PF matrices
Note
These data fields are available if
vrna_mx_pf_t.type == VRNA_MX_DEFAULT
-
FLT_OR_DBL *q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qb#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *probs#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *q1k#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qln#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_FLT_OR_DBL_t *q_gq#
Boltzmann factors for g-quadruplexes.
#include <ViennaRNA/datastructures/dp_matrices.h>
-
vrna_smx_csr_FLT_OR_DBL_t *p_gq#
probabilities for g-quadruplexes
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qo#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm2_real#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *qm1_new#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qho#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qio#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL qmo#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *q#
- vrna_mx_pf_s.[struct].__unnamed0__.__unnamed1__
Local Folding DP matrices using window approach
Note
These data fields are available if
vrna_mx_mfe_t.type == VRNA_MX_WINDOW
-
FLT_OR_DBL **q_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qb_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qm_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **pR#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qm2_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **QI5#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **q2l#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **qmb#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **G_local#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **q_local#
- vrna_mx_pf_s.[struct].__unnamed0__.__unnamed2__
Distance Class DP matrices
Note
These data fields are available if
vrna_mx_pf_t.type == VRNA_MX_2DFOLD
-
FLT_OR_DBL ***Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_B#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M1#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_min_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int **l_max_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_min_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *k_max_Q_M2#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_c#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cH#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cI#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL **Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_min_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int *l_max_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_min_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
int k_max_Q_cM#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_B_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M1_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL *Q_M2_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_c_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cH_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cI_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL Q_cM_rem#
#include <ViennaRNA/datastructures/dp_matrices.h>
-
FLT_OR_DBL ***Q#
-
VRNA_MX_FLAG_F5#
Hash Tables#
Various implementations of hash table functions.
Abstract interface
-
typedef struct vrna_hash_table_s *vrna_hash_table_t#
A hash table object.
#include <ViennaRNA/datastructures/hash_tables.h>
See also
-
typedef int (*vrna_ht_cmp_f)(void *x, void *y)#
Callback function to compare two hash table entries.
#include <ViennaRNA/datastructures/hash_tables.h>
See also
- Param x:
A hash table entry
- Param y:
A hash table entry
- Return:
-1 if x is smaller, +1 if x is larger than y. 0 if \(x == y \)
-
typedef int vrna_callback_ht_compare_entries(void *x, void *y)#
#include <ViennaRNA/datastructures/hash_tables.h>
-
typedef unsigned int (*vrna_ht_hashfunc_f)(void *x, unsigned long hashtable_size)#
Callback function to generate a hash key, i.e. hash function.
#include <ViennaRNA/datastructures/hash_tables.h>
See also
- Param x:
A hash table entry
- Param hashtable_size:
The size of the hash table
- Return:
The hash table key for entry
x
-
typedef unsigned int vrna_callback_ht_hash_function(void *x, unsigned long hashtable_size)#
#include <ViennaRNA/datastructures/hash_tables.h>
-
typedef int (*vrna_ht_free_f)(void *x)#
Callback function to free a hash table entry.
#include <ViennaRNA/datastructures/hash_tables.h>
See also
- Param x:
A hash table entry
- Return:
0 on success
-
typedef int vrna_callback_ht_free_entry(void *x)#
#include <ViennaRNA/datastructures/hash_tables.h>
-
vrna_hash_table_t vrna_ht_init(unsigned int b, vrna_ht_cmp_f compare_function, vrna_ht_hashfunc_f hash_function, vrna_ht_free_f free_hash_entry)#
Get an initialized hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
This function returns a ready-to-use hash table with pre-allocated memory for a particular number of entries.
Note
If all function pointers are
NULL, this function initializes the hash table with default functions, i.e.vrna_ht_db_comp() for the
compare_function,vrna_ht_db_hash_func() for the
hash_function, andvrna_ht_db_free_entry() for the
free_hash_entry
arguments.
Warning
If
hash_bitsis larger than 27 you have to compile it with the flag gcc -mcmodel=large.- Parameters:
b – Number of bits for the hash table. This determines the size ( \(2^b -1\)).
compare_function – A function pointer to compare any two entries in the hash table (may be
NULL)hash_function – A function pointer to retrieve the hash value of any entry (may be
NULL)free_hash_entry – A function pointer to free the memory occupied by any entry (may be
NULL)
- Returns:
An initialized, empty hash table, or
NULLon any error
-
unsigned long vrna_ht_size(vrna_hash_table_t ht)#
Get the size of the hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
- Parameters:
ht – The hash table
- Returns:
The size of the hash table, i.e. the maximum number of entries
-
unsigned long vrna_ht_collisions(struct vrna_hash_table_s *ht)#
Get the number of collisions in the hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
- Parameters:
ht – The hash table
- Returns:
The number of collisions in the hash table
-
void *vrna_ht_get(vrna_hash_table_t ht, void *x)#
Get an element from the hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
This function takes an object
xand performs a look-up whether the object is stored within the hash tableht. If the object is already stored inht, the function simply returns the entry, otherwise it returnsNULL.See also
vrna_ht_insert(), vrna_hash_delete(), vrna_ht_init()
- Parameters:
ht – The hash table
x – The hash entry to look-up
- Returns:
The entry
xif it is stored inht,NULLotherwise
-
int vrna_ht_insert(vrna_hash_table_t ht, void *x)#
Insert an object into a hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
Writes the pointer to your hash entry into the table.
See also
vrna_ht_init(), vrna_hash_delete(), vrna_ht_clear()
Warning
In case of collisions, this function simply increments the hash key until a free entry in the hash table is found.
- Parameters:
ht – The hash table
x – The hash entry
- Returns:
0 on success, 1 if the value is already in the hash table, -1 on error.
-
void vrna_ht_remove(vrna_hash_table_t ht, void *x)#
Remove an object from the hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
Deletes the pointer to your hash entry from the table.
Note
This function doesn’t free any memory occupied by the hash entry.
- Parameters:
ht – The hash table
x – The hash entry
-
void vrna_ht_clear(vrna_hash_table_t ht)#
Clear the hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
This function removes all entries from the hash table and automatically free’s the memory occupied by each entry using the bound vrna_ht_free_f() function.
See also
- Parameters:
ht – The hash table
-
void vrna_ht_free(vrna_hash_table_t ht)#
Free all memory occupied by the hash table.
#include <ViennaRNA/datastructures/hash_tables.h>
This function removes all entries from the hash table by calling the vrna_ht_free_f() function for each entry. Finally, the memory occupied by the hash table itself is free’d as well.
- Parameters:
ht – The hash table
Dot-Bracket / Free Energy entries
-
int vrna_ht_db_comp(void *x, void *y)#
Default hash table entry comparison.
#include <ViennaRNA/datastructures/hash_tables.h>
This is the default comparison function for hash table entries. It assumes the both entries
xandyare of type vrna_ht_entry_db_t and compares thestructureattribute of both entries- Parameters:
x – A hash table entry of type vrna_ht_entry_db_t
y – A hash table entry of type vrna_ht_entry_db_t
- Returns:
-1 if x is smaller, +1 if x is larger than y. 0 if both are equal.
-
unsigned int vrna_ht_db_hash_func(void *x, unsigned long hashtable_size)#
Default hash function.
#include <ViennaRNA/datastructures/hash_tables.h>
This is the default hash function for hash table insertion/lookup. It assumes that entries are of type vrna_ht_entry_db_t and uses the Bob Jenkins 1996 mix function to create a hash key from the
structureattribute of the hash entry.- Parameters:
x – A hash table entry to compute the key for
hashtable_size – The size of the hash table
- Returns:
The hash key for entry
x
-
int vrna_ht_db_free_entry(void *hash_entry)#
Default function to free memory occupied by a hash entry.
#include <ViennaRNA/datastructures/hash_tables.h>
This function assumes that hash entries are of type vrna_ht_entry_db_t and free’s the memory occupied by that entry.
- Parameters:
hash_entry – The hash entry to remove from memory
- Returns:
0 on success
-
struct vrna_ht_entry_db_t#
- #include <ViennaRNA/datastructures/hash_tables.h>
Default hash table entry.
-
typedef struct vrna_hash_table_s *vrna_hash_table_t#
Heaps#
Interface for an abstract implementation of a heap data structure.
Typedefs
-
typedef struct vrna_heap_s *vrna_heap_t#
An abstract heap data structure.
#include <ViennaRNA/datastructures/heap.h>
-
typedef int (*vrna_heap_cmp_f)(const void *a, const void *b, void *data)#
Heap compare function prototype.
#include <ViennaRNA/datastructures/heap.h>
Use this prototype to design the compare function for the heap implementation. The arbitrary data pointer
datamay be used to get access to further information required to actually compare the two valuesaandb.Note
The heap implementation acts as a min-heap, therefore, the minimum element will be present at the heap’s root. In case a max-heap is required, simply reverse the logic of this compare function.
- Param a:
The first object to compare
- Param b:
The second object to compare
- Param data:
An arbitrary data pointer passed through from the heap implementation
- Return:
A value less than zero if
a<b, a value greater than zero ifa>b, and 0 otherwise
-
typedef int vrna_callback_heap_cmp(const void *a, const void *b, void *data)#
#include <ViennaRNA/datastructures/heap.h>
-
typedef size_t (*vrna_heap_get_pos_f)(const void *a, void *data)#
Retrieve the position of a particular heap entry within the heap.
#include <ViennaRNA/datastructures/heap.h>
- Param a:
The object to look-up within the heap
- Param data:
An arbitrary data pointer passed through from the heap implementation
- Return:
The position of the element
awithin the heap, or 0 if it is not in the heap
-
typedef size_t vrna_callback_heap_get_pos(const void *a, void *data)#
#include <ViennaRNA/datastructures/heap.h>
-
typedef void (*vrna_heap_set_pos_f)(const void *a, size_t pos, void *data)#
Store the position of a particular heap entry within the heap.
#include <ViennaRNA/datastructures/heap.h>
- Param a:
The object whose position shall be stored
- Param pos:
The current position of
awithin the heap, or 0 if a was deleted- Param data:
An arbitrary data pointer passed through from the heap implementation
-
typedef void vrna_callback_heap_set_pos(const void *a, size_t pos, void *data)#
#include <ViennaRNA/datastructures/heap.h>
Functions
-
vrna_heap_t vrna_heap_init(size_t n, vrna_heap_cmp_f cmp, vrna_heap_get_pos_f get_entry_pos, vrna_heap_set_pos_f set_entry_pos, void *data)#
Initialize a heap data structure.
#include <ViennaRNA/datastructures/heap.h>
This function initializes a heap data structure. The implementation is based on a min-heap, i.e. the minimal element is located at the root of the heap. However, by reversing the logic of the compare function, one can easily transform this into a max-heap implementation.
Beside the regular operations on a heap data structure, we implement removal and update of arbitrary elements within the heap. For that purpose, however, one requires a reverse-index lookup system that, (i) for a given element stores the current position in the heap, and (ii) allows for fast lookup of an elements current position within the heap. The corresponding getter- and setter- functions may be provided through the arguments
get_entry_posandset_entry_pos, respectively.Sometimes, it is difficult to simply compare two data structures without any context. Therefore, the compare function is provided with a user-defined data pointer that can hold any context required.
See also
vrna_heap_free(), vrna_heap_insert(), vrna_heap_pop(), vrna_heap_top(), vrna_heap_remove(), vrna_heap_update(), vrna_heap_t, vrna_heap_cmp_f, vrna_heap_get_pos_f, vrna_heap_set_pos_f
Warning
If any of the arguments
get_entry_posorset_entry_posis NULL, the operations vrna_heap_update() and vrna_heap_remove() won’t work.- Parameters:
n – The initial size of the heap, i.e. the number of elements to store
cmp – The address of a compare function that will be used to fullfill the partial order requirement
get_entry_pos – The address of a function that retrieves the position of an element within the heap (or NULL)
set_entry_pos – The address of a function that stores the position of an element within the heap (or NULL)
data – An arbitrary data pointer passed through to the compare function
cmp, and the set/get functionsget_entry_pos/set_entry_pos
- Returns:
An initialized heap data structure, or NULL on error
-
void vrna_heap_free(vrna_heap_t h)#
Free memory occupied by a heap data structure.
#include <ViennaRNA/datastructures/heap.h>
See also
- Parameters:
h – The heap that should be free’d
-
size_t vrna_heap_size(struct vrna_heap_s *h)#
Get the size of a heap data structure, i.e. the number of stored elements.
#include <ViennaRNA/datastructures/heap.h>
- Parameters:
h – The heap data structure
- Returns:
The number of elements currently stored in the heap, or 0 upon any error
-
void vrna_heap_insert(vrna_heap_t h, void *v)#
Insert an element into the heap.
#include <ViennaRNA/datastructures/heap.h>
See also
vrna_heap_init(), vrna_heap_pop(), vrna_heap_top(), vrna_heap_free(), vrna_heap_remove(), vrna_heap_update()
- Parameters:
h – The heap data structure
v – A pointer to the object that is about to be inserted into the heap
-
void *vrna_heap_pop(vrna_heap_t h)#
Pop (remove and return) the object at the root of the heap.
#include <ViennaRNA/datastructures/heap.h>
This function removes the root from the heap and returns it to the caller.
See also
vrna_heap_init(), vrna_heap_top(), vrna_heap_insert(), vrna_heap_free() vrna_heap_remove(), vrna_heap_update()
- Parameters:
h – The heap data structure
- Returns:
The object at the root of the heap, i.e. the minimal element (or NULL if (a) the heap is empty or (b) any error occurred)
-
const void *vrna_heap_top(vrna_heap_t h)#
Get the object at the root of the heap.
#include <ViennaRNA/datastructures/heap.h>
See also
vrna_heap_init(), vrna_heap_pop(), vrna_heap_insert(), vrna_heap_free() vrna_heap_remove(), vrna_heap_update()
- Parameters:
h – The heap data structure
- Returns:
The object at the root of the heap, i.e. the minimal element (or NULL if (a) the heap is empty or (b) any error occurred)
-
void *vrna_heap_remove(vrna_heap_t h, const void *v)#
Remove an arbitrary element within the heap.
#include <ViennaRNA/datastructures/heap.h>
See also
vrna_heap_init(), vrna_heap_get_pos_f, vrna_heap_set_pos_f, vrna_heap_pop(), vrna_heap_free()
Warning
This function won’t work if the heap was not properly initialized with callback functions for fast reverse-index mapping!
- Parameters:
h – The heap data structure
v – The object to remove from the heap
- Returns:
The object that was removed from the heap (or NULL if (a) it wasn’t found or (b) any error occurred)
-
void *vrna_heap_update(vrna_heap_t h, void *v)#
Update an arbitrary element within the heap.
#include <ViennaRNA/datastructures/heap.h>
See also
vrna_heap_init(), vrna_heap_get_pos_f, vrna_heap_set_pos_f vrna_heap_pop(), vrna_heap_remove(), vrna_heap_free()
Note
If the object that is to be updated is not currently stored in the heap, it will be inserted. In this case, the function returns NULL.
Warning
This function won’t work if the heap was not properly initialized with callback functions for fast reverse-index mapping!
- Parameters:
h – The heap data structure
v – The object to update
- Returns:
The ‘previous’ object within the heap that now got replaced by
v(or NULL if (a) it wasn’t found or (b) any error occurred)
-
typedef struct vrna_heap_s *vrna_heap_t#
Arrays#
Interface for an abstract implementation of an array data structure.
Defines
-
vrna_array(Type)#
Define an array.
#include <ViennaRNA/datastructures/array.h>
-
vrna_array_make(Type, Name)#
Make an array
Nameof typeType.#include <ViennaRNA/datastructures/array.h>
-
VRNA_ARRAY_GROW_FORMULA(n)#
The default growth formula for array.
#include <ViennaRNA/datastructures/array.h>
-
VRNA_ARRAY_HEADER(input)#
Retrieve a pointer to the header of an array
input.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_size(input)#
Get the number of elements of an array
input.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_capacity(input)#
Get the size of an array
input, i.e. its actual capacity.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_set_capacity(a, capacity)#
Explicitely set the capacity of an array
a.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_init_size(a, init_size)#
Initialize an array
awith a particular pre-allocated sizeinit_size.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_init(a)#
Initialize an array
a.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_free(a)#
Release memory of an array
a.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_append(a, item)#
Safely append an item to an array
a.#include <ViennaRNA/datastructures/array.h>
-
vrna_array_grow(a, min_capacity)#
Grow an array
ato provide a minimum capacitymin_capacity.#include <ViennaRNA/datastructures/array.h>
-
VRNA_ARRAY_REGISTER(TYPE)#
#include <ViennaRNA/datastructures/array.h>
Create/register a typedef for a vrna_array of a particular type
Note
This macro automatically adds the prefix
vrna_and the suffix_array_tto theTYPEargument to build the new typename
-
VRNA_ARRAY_REGISTER_NAME(TYPE, TYPENAME)#
#include <ViennaRNA/datastructures/array.h>
Create a typedef for a vrna_array of a particular type
Use
TYPEandTYPENAMEto specify the type and new typename of the array.
Typedefs
-
typedef struct vrna_array_header_s vrna_array_header_t#
The header of an array.
#include <ViennaRNA/datastructures/array.h>
Functions
-
void *vrna__array_set_capacity(void *array, size_t capacity, size_t element_size)#
Explicitely set the capacity of an array.
#include <ViennaRNA/datastructures/array.h>
Note
Do not use this function. Rather resort to the vrna_array_set_capacity macro
-
struct vrna_array_header_s#
- #include <ViennaRNA/datastructures/array.h>
The header of an array.
-
vrna_array(Type)#
Strings#
Defines
-
VRNA_STRING_HEADER(s)#
#include <ViennaRNA/datastructures/string.h>
Typedefs
-
typedef char *vrna_string_t#
#include <ViennaRNA/datastructures/string.h>
-
typedef struct vrna_string_header_s vrna_string_header_t#
The header of an array.
#include <ViennaRNA/datastructures/string.h>
Functions
-
vrna_string_t vrna_string_make(char const *str)#
#include <ViennaRNA/datastructures/string.h>
-
void vrna_string_free(vrna_string_t str)#
#include <ViennaRNA/datastructures/string.h>
-
size_t vrna_string_length(vrna_string_t const str)#
#include <ViennaRNA/datastructures/string.h>
-
size_t vrna_string_size(vrna_string_t const str)#
#include <ViennaRNA/datastructures/string.h>
-
vrna_string_t vrna_string_append(vrna_string_t str, vrna_string_t const other)#
#include <ViennaRNA/datastructures/string.h>
-
vrna_string_t vrna_string_append_cstring(vrna_string_t str, char const *other)#
#include <ViennaRNA/datastructures/string.h>
-
vrna_string_t vrna_string_make_space_for(vrna_string_t str, size_t add_len)#
#include <ViennaRNA/datastructures/string.h>
-
size_t vrna_string_available_space(vrna_string_t const str)#
#include <ViennaRNA/datastructures/string.h>
-
struct vrna_string_header_s#
- #include <ViennaRNA/datastructures/string.h>
The header of an array.
Public Members
-
size_t len#
The length of the string.
#include <ViennaRNA/datastructures/string.h>
-
size_t size#
The actual capacity of an array.
#include <ViennaRNA/datastructures/string.h>
-
size_t shift_post#
#include <ViennaRNA/datastructures/string.h>
-
char backup#
#include <ViennaRNA/datastructures/string.h>
-
size_t len#
-
VRNA_STRING_HEADER(s)#
Buffers#
Functions that provide dynamically buffered stream-like data structures.
Typedefs
-
typedef struct vrna_cstr_s *vrna_cstr_t#
#include <ViennaRNA/datastructures/char_stream.h>
-
typedef struct vrna_ordered_stream_s *vrna_ostream_t#
An ordered output stream structure with unordered insert capabilities.
#include <ViennaRNA/datastructures/stream_output.h>
-
typedef void (*vrna_stream_output_f)(void *auxdata, unsigned int i, void *data)#
Ordered stream processing callback.
#include <ViennaRNA/datastructures/stream_output.h>
This callback will be processed in sequential order as soon as sequential data in the output stream becomes available.
Note
The callback must also release the memory occupied by the data passed since the stream will lose any reference to it after the callback has been executed.
- Param auxdata:
A shared pointer for all calls, as provided by the second argument to vrna_ostream_init()
- Param i:
The index number of the data passed to
data- Param data:
A block of data ready for processing
-
typedef void vrna_callback_stream_output(void *auxdata, unsigned int i, void *data)#
#include <ViennaRNA/datastructures/stream_output.h>
Functions
-
vrna_cstr_t vrna_cstr(size_t size, FILE *output)#
Create a dynamic char * stream data structure.
#include <ViennaRNA/datastructures/char_stream.h>
See also
vrna_cstr_free(), vrna_cstr_close(), vrna_cstr_fflush(), vrna_cstr_discard(), vrna_cstr_printf()
- Parameters:
size – The initial size of the buffer in characters
output – An optional output file stream handle that is used to write the collected data to (defaults to stdout if NULL)
-
void vrna_cstr_discard(struct vrna_cstr_s *buf)#
Discard the current content of the dynamic char * stream data structure.
#include <ViennaRNA/datastructures/char_stream.h>
See also
vrna_cstr_free(), vrna_cstr_close(), vrna_cstr_fflush(), vrna_cstr_printf()
- Parameters:
buf – The dynamic char * stream data structure to free
-
void vrna_cstr_free(vrna_cstr_t buf)#
Free the memory occupied by a dynamic char * stream data structure.
#include <ViennaRNA/datastructures/char_stream.h>
This function first flushes any remaining character data within the stream and then free’s the memory occupied by the data structure.
See also
- Parameters:
buf – The dynamic char * stream data structure to free
-
void vrna_cstr_close(vrna_cstr_t buf)#
Free the memory occupied by a dynamic char * stream and close the output stream.
#include <ViennaRNA/datastructures/char_stream.h>
This function first flushes any remaining character data within the stream then closes the attached output file stream (if any), and finally free’s the memory occupied by the data structure.
See also
- Parameters:
buf – The dynamic char * stream data structure to free
-
void vrna_cstr_fflush(struct vrna_cstr_s *buf)#
Flush the dynamic char * output stream.
#include <ViennaRNA/datastructures/char_stream.h>
This function flushes the collected char * stream, either by writing to the attached file handle, or simply by writing to stdout if no file handle has been attached upon construction using vrna_cstr().
See also
- Parameters:
buf – The dynamic char * stream data structure to flush
- Post:
The stream buffer is empty after execution of this function
-
const char *vrna_cstr_string(vrna_cstr_t buf)#
#include <ViennaRNA/datastructures/char_stream.h>
-
int vrna_cstr_vprintf(vrna_cstr_t buf, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
int vrna_cstr_printf(vrna_cstr_t buf, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_message_info(vrna_cstr_t buf, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_message_vinfo(vrna_cstr_t buf, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_message_warning(struct vrna_cstr_s *buf, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_message_vwarning(struct vrna_cstr_s *buf, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_fasta_header(vrna_cstr_t buf, const char *head)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_printf_structure(struct vrna_cstr_s *buf, const char *structure, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_vprintf_structure(struct vrna_cstr_s *buf, const char *structure, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_printf_comment(struct vrna_cstr_s *buf, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_vprintf_comment(struct vrna_cstr_s *buf, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_printf_thead(struct vrna_cstr_s *buf, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_vprintf_thead(struct vrna_cstr_s *buf, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_printf_tbody(struct vrna_cstr_s *buf, const char *format, ...)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_vprintf_tbody(struct vrna_cstr_s *buf, const char *format, va_list args)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_sd_corr(struct vrna_cstr_s *buf)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_ext_loop(struct vrna_cstr_s *buf, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_ext_loop_revert(struct vrna_cstr_s *buf, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_hp_loop(struct vrna_cstr_s *buf, int i, int j, char si, char sj, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_hp_loop_revert(struct vrna_cstr_s *buf, int i, int j, char si, char sj, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_int_loop(struct vrna_cstr_s *buf, int i, int j, char si, char sj, int k, int l, char sk, char sl, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_int_loop_revert(struct vrna_cstr_s *buf, int i, int j, char si, char sj, int k, int l, char sk, char sl, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_mb_loop(struct vrna_cstr_s *buf, int i, int j, char si, char sj, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_mb_loop_revert(struct vrna_cstr_s *buf, int i, int j, char si, char sj, int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
void vrna_cstr_print_eval_gquad(struct vrna_cstr_s *buf, unsigned int i, unsigned int j, unsigned int L, unsigned int l[3], int energy)#
#include <ViennaRNA/datastructures/char_stream.h>
-
vrna_ostream_t vrna_ostream_init(vrna_stream_output_f output, void *auxdata)#
Get an initialized ordered output stream.
#include <ViennaRNA/datastructures/stream_output.h>
- Parameters:
output – A callback function that processes and releases data in the stream
auxdata – A pointer to auxiliary data passed as first argument to the
outputcallback
- Returns:
An initialized ordered output stream
-
void vrna_ostream_free(vrna_ostream_t dat)#
Free an initialized ordered output stream.
#include <ViennaRNA/datastructures/stream_output.h>
See also
- Parameters:
dat – The output stream for which occupied memory should be free’d
-
int vrna_ostream_threadsafe(void)#
#include <ViennaRNA/datastructures/stream_output.h>
-
void vrna_ostream_request(vrna_ostream_t dat, unsigned int num)#
Request index in ordered output stream.
#include <ViennaRNA/datastructures/stream_output.h>
This function must be called prior to vrna_ostream_provide() to indicate that data associted with a certain index number is expected to be inserted into the stream in the future.
- Parameters:
dat – The output stream for which the index is requested
num – The index to request data for
-
void vrna_ostream_provide(vrna_ostream_t dat, unsigned int i, void *data)#
Provide output stream data for a particular index.
#include <ViennaRNA/datastructures/stream_output.h>
See also
- Parameters:
dat – The output stream for which data is provided
i – The index of the provided data
data – The data provided
- Pre:
The index data is provided for must have been requested using vrna_ostream_request() beforehand.
-
typedef struct vrna_cstr_s *vrna_cstr_t#
Common Data Structures#
Typedefs
-
typedef struct vrna_elem_prob_s vrna_plist_t#
Typename for the base pair list repesenting data structure vrna_elem_prob_s.
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct vrna_cpair_s vrna_cpair_t#
Typename for data structure vrna_cpair_s.
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct vrna_data_linear_s vrna_data_lin_t#
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct vrna_color_s vrna_color_t#
#include <ViennaRNA/datastructures/basic.h>
-
typedef double FLT_OR_DBL#
Typename for floating point number in partition function computations.
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct vrna_basepair_s PAIR#
Old typename of vrna_basepair_s.
#include <ViennaRNA/datastructures/basic.h>
- Deprecated:
Use vrna_basepair_t instead!
-
typedef struct vrna_elem_prob_s plist#
Old typename of vrna_elem_prob_s.
#include <ViennaRNA/datastructures/basic.h>
- Deprecated:
Use vrna_ep_t or vrna_elem_prob_s instead!
-
typedef struct vrna_cpair_s cpair#
Old typename of vrna_cpair_s.
#include <ViennaRNA/datastructures/basic.h>
- Deprecated:
Use vrna_cpair_t instead!
-
typedef struct vrna_sect_s sect#
Old typename of vrna_sect_s.
#include <ViennaRNA/datastructures/basic.h>
- Deprecated:
Use vrna_sect_t instead!
-
typedef vrna_bp_stack_t bondT#
Old typename of #vrna_bp_stack_s.
#include <ViennaRNA/datastructures/basic.h>
- Deprecated:
Use vrna_bp_stack_t instead!
-
typedef struct pu_contrib pu_contrib#
contributions to p_u
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct interact interact#
interaction data structure for RNAup
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct pu_out pu_out#
Collection of all free_energy of beeing unpaired values for output.
#include <ViennaRNA/datastructures/basic.h>
-
typedef struct constrain constrain#
constraints for cofolding
#include <ViennaRNA/datastructures/basic.h>
Functions
-
void vrna_C11_features(void)#
Dummy symbol to check whether the library was build using C11/C++11 features.
#include <ViennaRNA/datastructures/basic.h>
By default, several data structures of our new v3.0 API use C11/C++11 features, such as unnamed unions, unnamed structs. However, these features can be deactivated at compile time to allow building the library and executables with compilers that do not support these features.
Now, the problem arises that once our static library is compiled and a third-party application is supposed to link against it, it needs to know, at compile time, how to correctly address particular data structures. This is usually implicitely taken care of through the API exposed in our header files. Unfortunately, we had some preprocessor directives in our header files that changed the API depending on the capabilities of the compiler the third-party application is build with. This in turn prohibited the use of an RNAlib compiled without C11/C++11 support in a program that compiles/links with enabled C11/C++11 support and vice-versa.
Therefore, we introduce this dummy symbol which can be used to check, whether the static library was build with C11/C++11 features.
- Since
v2.2.9
Note
If the symbol is present, the library was build with enabled C11/C++11 features support and no action is required. However, if the symbol is missing in RNAlib >= 2.2.9, programs that link to RNAlib must define a pre-processor identifier VRNA_DISABLE_C11_FEATURES before including any ViennaRNA Package header file, for instance by adding a CPPFLAG
CPPFLAGS+=-DVRNA_DISABLE_C11_FEATURES
-
struct vrna_basepair_t#
- #include <ViennaRNA/datastructures/basic.h>
Typename for base pair element.
- Deprecated:
Use vrna_bp_t instead!
-
struct vrna_bp_stack_t#
- #include <ViennaRNA/datastructures/basic.h>
Typename for the base pair stack element.
-
struct pu_contrib
- #include <ViennaRNA/datastructures/basic.h>
contributions to p_u
Public Members
-
double **H#
hairpin loops
#include <ViennaRNA/datastructures/basic.h>
-
double **I#
internal loops
#include <ViennaRNA/datastructures/basic.h>
-
double **M#
multi loops
#include <ViennaRNA/datastructures/basic.h>
-
double **E#
exterior loop
#include <ViennaRNA/datastructures/basic.h>
-
int length#
length of the input sequence
#include <ViennaRNA/datastructures/basic.h>
-
int w#
longest unpaired region
#include <ViennaRNA/datastructures/basic.h>
-
double **H#
-
struct interact
- #include <ViennaRNA/datastructures/basic.h>
interaction data structure for RNAup
Public Members
-
double *Pi#
probabilities of interaction
#include <ViennaRNA/datastructures/basic.h>
-
double *Gi#
free energies of interaction
#include <ViennaRNA/datastructures/basic.h>
-
double Gikjl#
full free energy for interaction between [k,i] k<i in longer seq and [j,l] j<l in shorter seq
#include <ViennaRNA/datastructures/basic.h>
-
double Gikjl_wo#
Gikjl without contributions for prob_unpaired.
#include <ViennaRNA/datastructures/basic.h>
-
int i#
k<i in longer seq
#include <ViennaRNA/datastructures/basic.h>
-
int k#
k<i in longer seq
#include <ViennaRNA/datastructures/basic.h>
-
int j#
j<l in shorter seq
#include <ViennaRNA/datastructures/basic.h>
-
int l#
j<l in shorter seq
#include <ViennaRNA/datastructures/basic.h>
-
int length#
length of longer sequence
#include <ViennaRNA/datastructures/basic.h>
-
double *Pi#
-
struct pu_out
- #include <ViennaRNA/datastructures/basic.h>
Collection of all free_energy of beeing unpaired values for output.
Public Members
-
int len#
sequence length
#include <ViennaRNA/datastructures/basic.h>
-
int u_vals#
number of different -u values
#include <ViennaRNA/datastructures/basic.h>
-
int contribs#
[-c “SHIME”]
#include <ViennaRNA/datastructures/basic.h>
-
char **header#
header line
#include <ViennaRNA/datastructures/basic.h>
-
double **u_values#
(the -u values * [-c “SHIME”]) * seq len
#include <ViennaRNA/datastructures/basic.h>
-
int len#
-
struct constrain
- #include <ViennaRNA/datastructures/basic.h>
constraints for cofolding
-
struct duplexT#
- #include <ViennaRNA/datastructures/basic.h>
Data structure for RNAduplex.
Public Members
-
int i#
#include <ViennaRNA/datastructures/basic.h>
-
int j#
#include <ViennaRNA/datastructures/basic.h>
-
int end#
#include <ViennaRNA/datastructures/basic.h>
-
char *structure#
#include <ViennaRNA/datastructures/basic.h>
-
double energy#
#include <ViennaRNA/datastructures/basic.h>
-
double energy_backtrack#
#include <ViennaRNA/datastructures/basic.h>
-
double opening_backtrack_x#
#include <ViennaRNA/datastructures/basic.h>
-
double opening_backtrack_y#
#include <ViennaRNA/datastructures/basic.h>
-
int offset#
#include <ViennaRNA/datastructures/basic.h>
-
double dG1#
#include <ViennaRNA/datastructures/basic.h>
-
double dG2#
#include <ViennaRNA/datastructures/basic.h>
-
double ddG#
#include <ViennaRNA/datastructures/basic.h>
-
int tb#
#include <ViennaRNA/datastructures/basic.h>
-
int te#
#include <ViennaRNA/datastructures/basic.h>
-
int qb#
#include <ViennaRNA/datastructures/basic.h>
-
int qe#
#include <ViennaRNA/datastructures/basic.h>
-
int i#
-
struct node#
- #include <ViennaRNA/datastructures/basic.h>
Data structure for RNAsnoop (fold energy list).
-
struct snoopT#
- #include <ViennaRNA/datastructures/basic.h>
Data structure for RNAsnoop.
Public Members
-
int i#
#include <ViennaRNA/datastructures/basic.h>
-
int j#
#include <ViennaRNA/datastructures/basic.h>
-
int u#
#include <ViennaRNA/datastructures/basic.h>
-
char *structure#
#include <ViennaRNA/datastructures/basic.h>
-
float energy#
#include <ViennaRNA/datastructures/basic.h>
-
float Duplex_El#
#include <ViennaRNA/datastructures/basic.h>
-
float Duplex_Er#
#include <ViennaRNA/datastructures/basic.h>
-
float Loop_E#
#include <ViennaRNA/datastructures/basic.h>
-
float Loop_D#
#include <ViennaRNA/datastructures/basic.h>
-
float pscd#
#include <ViennaRNA/datastructures/basic.h>
-
float psct#
#include <ViennaRNA/datastructures/basic.h>
-
float pscg#
#include <ViennaRNA/datastructures/basic.h>
-
float Duplex_Ol#
#include <ViennaRNA/datastructures/basic.h>
-
float Duplex_Or#
#include <ViennaRNA/datastructures/basic.h>
-
float Duplex_Ot#
#include <ViennaRNA/datastructures/basic.h>
-
float fullStemEnergy#
#include <ViennaRNA/datastructures/basic.h>
-
int i#
-
struct dupVar
- #include <ViennaRNA/datastructures/basic.h>
Data structure used in RNApkplex.
Public Members
-
int i#
#include <ViennaRNA/datastructures/basic.h>
-
int j#
#include <ViennaRNA/datastructures/basic.h>
-
int end#
#include <ViennaRNA/datastructures/basic.h>
-
char *pk_helix#
#include <ViennaRNA/datastructures/basic.h>
-
char *structure#
#include <ViennaRNA/datastructures/basic.h>
-
double energy#
#include <ViennaRNA/datastructures/basic.h>
-
int offset#
#include <ViennaRNA/datastructures/basic.h>
-
double dG1#
#include <ViennaRNA/datastructures/basic.h>
-
double dG2#
#include <ViennaRNA/datastructures/basic.h>
-
double ddG#
#include <ViennaRNA/datastructures/basic.h>
-
int tb#
#include <ViennaRNA/datastructures/basic.h>
-
int te#
#include <ViennaRNA/datastructures/basic.h>
-
int qb#
#include <ViennaRNA/datastructures/basic.h>
-
int qe#
#include <ViennaRNA/datastructures/basic.h>
-
int inactive#
#include <ViennaRNA/datastructures/basic.h>
-
int processed#
#include <ViennaRNA/datastructures/basic.h>
-
int i#
-
typedef struct vrna_elem_prob_s vrna_plist_t#