(Abstract) Data Structures

All datastructures and typedefs shared among the ViennaRNA Package can be found here.

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>