(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().

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.

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)

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_p can 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 parameter options may 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 option parameter. 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 NULL on 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_p can 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 parameter options may 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 option parameter. 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 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 NULL on 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>

Parameters:
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().

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.

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_compound with several related functions attached as methods.

A new fold_compound can 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 C data 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 the fold_compound.

See, e.g. RNA.fold_compound in the The RNA Python module.

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_ud_t *domains_up#

Additional unstructured 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>

Public Members

union vrna_fc_s.[anonymous] [anonymous]#
#include <ViennaRNA/fold_compound.h>
[union].__unnamed0__

Public Members

struct vrna_fc_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/fold_compound.h>
struct vrna_fc_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/fold_compound.h>
[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.

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

vrna_sc_t *sc#

The soft constraints for usage in structure prediction and evaluation.

#include <ViennaRNA/fold_compound.h>

Warning

Only available if

type==VRNA_FC_TYPE_SINGLE

[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>
vrna_fc_s.[union].__unnamed0__

Public Members

struct vrna_fc_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/fold_compound.h>
struct vrna_fc_s.[anonymous].[anonymous] [anonymous]#
#include <ViennaRNA/fold_compound.h>
[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.

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

vrna_sc_t *sc#

The soft constraints for usage in structure prediction and evaluation.

#include <ViennaRNA/fold_compound.h>

Warning

Only available if

type==VRNA_FC_TYPE_SINGLE

[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>
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.

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

vrna_sc_t *sc#

The soft constraints for usage in structure prediction and evaluation.

#include <ViennaRNA/fold_compound.h>

Warning

Only available if

type==VRNA_FC_TYPE_SINGLE

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>

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>

Values:

enumerator VRNA_MX_DEFAULT#

Default DP matrices.

enumerator VRNA_MX_WINDOW#

DP matrices suitable for local structure prediction using window approach.

enumerator VRNA_MX_2DFOLD#

DP matrices suitable for distance class partitioned structure prediction.

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.

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>

Parameters:
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>

Parameters:
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>
[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>
[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>
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>
[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>
[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>
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>
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>
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>
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>
[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>
[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>
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>
[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>
[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>
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>
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>
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>

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>

typedef int (*vrna_ht_cmp_f)(void *x, void *y)#

Callback function to compare two hash table entries.

#include <ViennaRNA/datastructures/hash_tables.h>

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>

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>

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.

arguments.

Warning

If hash_bits is 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 NULL on 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 x and performs a look-up whether the object is stored within the hash table ht. If the object is already stored in ht, the function simply returns the entry, otherwise it returns NULL.

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 x if it is stored in ht, NULL otherwise

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.

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 x and y are of type vrna_ht_entry_db_t and compares the structure attribute of both entries

Parameters:
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 structure attribute 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.

Public Members

char *structure#
#include <ViennaRNA/datastructures/hash_tables.h>

A secondary structure in dot-bracket notation

float energy#
#include <ViennaRNA/datastructures/hash_tables.h>

The free energy of structure

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 data may be used to get access to further information required to actually compare the two values a and b.

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 if a > 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 a within 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 a within 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_pos and set_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.

Warning

If any of the arguments get_entry_pos or set_entry_pos is 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 functions get_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

vrna_heap_init()

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>

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.

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>

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>

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>

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)

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 Name of type Type.

#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 a with a particular pre-allocated size init_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 a to provide a minimum capacity min_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_t to the TYPE argument 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 TYPE and TYPENAME to 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.

Public Members

size_t num#

The number of elements in an array.

#include <ViennaRNA/datastructures/array.h>
size_t size#

The actual capacity of an array.

#include <ViennaRNA/datastructures/array.h>

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>

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>

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.

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.

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().

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 output callback

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>

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>

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.

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>
typedef struct node folden#

Data structure for RNAsnoop (fold energy list).

#include <ViennaRNA/datastructures/basic.h>
typedef struct dupVar dupVar#

Data structure used in RNApkplex.

#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!

Public Members

int i#
#include <ViennaRNA/datastructures/basic.h>
int j#
#include <ViennaRNA/datastructures/basic.h>
struct vrna_bp_stack_t#
#include <ViennaRNA/datastructures/basic.h>

Typename for the base pair stack element.

Public Members

unsigned int i#
#include <ViennaRNA/datastructures/basic.h>
unsigned int j#
#include <ViennaRNA/datastructures/basic.h>
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>
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>
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>
struct constrain
#include <ViennaRNA/datastructures/basic.h>

constraints for cofolding

Public Members

int *indx#
#include <ViennaRNA/datastructures/basic.h>
char *ptype#
#include <ViennaRNA/datastructures/basic.h>
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>
struct node#
#include <ViennaRNA/datastructures/basic.h>

Data structure for RNAsnoop (fold energy list).

Public Members

int k#
#include <ViennaRNA/datastructures/basic.h>
int energy#
#include <ViennaRNA/datastructures/basic.h>
struct node *next#
#include <ViennaRNA/datastructures/basic.h>
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>
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>