Data Structures and Preprocessor Macros

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

Collaboration diagram for Data Structures and Preprocessor Macros:

## Modules

| The Fold Compound
| This module provides interfaces that deal with the most basic data structure used in structure predicting and energy evaluating function of the RNAlib.
| The Dynamic Programming Matrices
| This module provides interfaces that deal with creation and destruction of dynamic programming matrices used within the RNAlib.

## Data Structures

struct | vrna_basepair_s
| Base pair data structure used in subopt.c. More...
struct | vrna_plist_s
| this datastructure is used as input parameter in functions of PS_dot.h and others More...
struct | vrna_cpair_s
| this datastructure is used as input parameter in functions of PS_dot.c More...
struct | vrna_sect_s
| Stack of partial structures for backtracking. More...
struct | vrna_bp_stack_s
| Base pair stack element. More...
struct | pu_contrib
| contributions to p_u More...
struct | interact
| interaction data structure for RNAup More...
struct | pu_out
| Collection of all free_energy of beeing unpaired values for output. More...
struct | constrain
| constraints for cofolding More...
struct | duplexT
| Data structure for RNAduplex. More...
struct | node
| Data structure for RNAsnoop (fold energy list) More...
struct | snoopT
| Data structure for RNAsnoop. More...
struct | dupVar
| Data structure used in RNApkplex. More...

## Typedefs

typedef struct vrna_basepair_s | vrna_basepair_t
| Typename for the base pair repesenting data structure vrna_basepair_s.
typedef struct vrna_plist_s | vrna_plist_t
| Typename for the base pair list repesenting data structure vrna_plist_s.
typedef struct vrna_bp_stack_s | vrna_bp_stack_t
| Typename for the base pair stack repesenting data structure vrna_bp_stack_s.
typedef struct vrna_cpair_s | vrna_cpair_t
| Typename for data structure vrna_cpair_s.
typedef struct vrna_sect_s | vrna_sect_t
| Typename for stack of partial structures vrna_sect_s.
typedef double | FLT_OR_DBL
| Typename for floating point number in partition function computations.
typedef struct vrna_basepair_s | PAIR
| Old typename of vrna_basepair_s. More...
typedef struct vrna_plist_s | plist
| Old typename of vrna_plist_s. More...
typedef struct vrna_cpair_s | cpair
| Old typename of vrna_cpair_s. More...
typedef struct vrna_sect_s | sect
| Old typename of vrna_sect_s. More...
typedef struct vrna_bp_stack_s | bondT
| Old typename of vrna_bp_stack_s. More...
typedef struct pu_contrib | pu_contrib
| contributions to p_u
typedef struct interact | interact
| interaction data structure for RNAup
typedef struct pu_out | pu_out
| Collection of all free_energy of beeing unpaired values for output.
typedef struct constrain | constrain
| constraints for cofolding
typedef struct node | folden
| Data structure for RNAsnoop (fold energy list)
typedef struct dupVar | dupVar
| Data structure used in RNApkplex.

## Functions

void | vrna_C11_features (void)
| Dummy symbol to check whether the library was build using C11/C++11 features. More...

## Detailed Description

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

## Data Structure Documentation

struct vrna_basepair_s

Base pair data structure used in subopt.c.

struct vrna_plist_s

this datastructure is used as input parameter in functions of PS_dot.h and others

struct vrna_cpair_s

this datastructure is used as input parameter in functions of PS_dot.c

struct vrna_sect_s

Stack of partial structures for backtracking.

struct vrna_bp_stack_s

Base pair stack element.

struct pu_contrib

contributions to p_u

### Data Fields

double ** | H
| hairpin loops
double ** | I
| interior loops
double ** | M
| multi loops
double ** | E
| exterior loop
int | length
| length of the input sequence
int | w
| longest unpaired region

struct interact

interaction data structure for RNAup

### Data Fields

double * | Pi
| probabilities of interaction
double * | Gi
| free energies of interaction
double | Gikjl
| full free energy for interaction between [k,i] k<i in longer seq and [j,l] j<l in shorter seq
double | Gikjl_wo
| Gikjl without contributions for prob_unpaired.
int | i
| k<i in longer seq
int | k
| k<i in longer seq
int | j
| j<l in shorter seq
int | l
| j<l in shorter seq
int | length
| length of longer sequence

struct pu_out

Collection of all free_energy of beeing unpaired values for output.

### Data Fields

int | len
| sequence length
int | u_vals
| number of different -u values
int | contribs
| [-c "SHIME"]
char ** | header
| header line
double ** | u_values
| (the -u values * [-c "SHIME"]) * seq len

struct constrain

constraints for cofolding

struct duplexT

Data structure for RNAduplex.

struct node

Data structure for RNAsnoop (fold energy list)

Collaboration diagram for node:
[legend]

struct snoopT

Data structure for RNAsnoop.

struct dupVar

Data structure used in RNApkplex.

## Typedef Documentation

typedef struct vrna_basepair_s PAIR

`#include <ViennaRNA/data_structures.h>`

Old typename of vrna_basepair_s.

Deprecated:
  Use vrna_basepair_t instead!

typedef struct vrna_plist_s plist

`#include <ViennaRNA/data_structures.h>`

Old typename of vrna_plist_s.

Deprecated:
  Use vrna_plist_t instead!

typedef struct vrna_cpair_s cpair

`#include <ViennaRNA/data_structures.h>`

Old typename of vrna_cpair_s.

Deprecated:
  Use vrna_cpair_t instead!

typedef struct vrna_sect_s sect

`#include <ViennaRNA/data_structures.h>`

Old typename of vrna_sect_s.

Deprecated:
  Use vrna_sect_t instead!

typedef struct vrna_bp_stack_s bondT

`#include <ViennaRNA/data_structures.h>`

Old typename of vrna_bp_stack_s.

Deprecated:
  Use vrna_bp_stack_t instead!

## Function Documentation

void vrna_C11_features | ( | void |  | ) |

`#include <ViennaRNA/data_structures.h>`

Dummy symbol to check whether the library was build using C11/C++11 features.

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.

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

Since
  v2.2.9