Below, you'll find some more or less simple C programs showing first steps into using RNAlib. A complete list of example C programs can be found in the C Examples section.
Simple MFE prediction for a given sequence
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int
main()
{
char *seq = "GAGUAGUGGAACCAGGCUAUGUUUGUGACUCGCAGACUAACA";
char *structure = (
char *)
vrna_alloc(
sizeof(
char) * (strlen(seq) + 1));
printf("%s\n%s [ %6.2f ]\n", seq, structure, mfe);
free(structure);
return 0;
}
MFE calculations for single RNA sequences.
float vrna_fold(const char *sequence, char *structure)
Compute Minimum Free Energy (MFE), and a corresponding secondary structure for an RNA sequence.
void * vrna_alloc(unsigned size)
Allocate space safely.
General utility- and helper-functions used throughout the ViennaRNA Package.
- See also
examples/helloworld_mfe.c
in the source code tarball
Simple MFE prediction for a multiple sequence alignment
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int
main()
{
const char *sequences[] = {
"CUGCCUCACAACGUUUGUGCCUCAGUUACCCGUAGAUGUAGUGAGGGU",
"CUGCCUCACAACAUUUGUGCCUCAGUUACUCAUAGAUGUAGUGAGGGU",
"---CUCGACACCACU---GCCUCGGUUACCCAUCGGUGCAGUGCGGGU",
NULL
};
char *cons = consensus(sequences);
char *structure = (
char *)
vrna_alloc(
sizeof(
char) * (strlen(sequences[0]) + 1));
printf("%s\n%s [ %6.2f ]\n", cons, structure, mfe);
free(cons);
free(structure);
return 0;
}
Functions for comparative structure prediction using RNA sequence alignments.
float vrna_alifold(const char **sequences, char *structure)
Compute Minimum Free Energy (MFE), and a corresponding consensus secondary structure for an RNA seque...
Various utility- and helper-functions for sequence alignments and comparative structure prediction.
- See also
examples/helloworld_mfe_comparative.c
in the source code tarball
Simple Base Pair Probability computation
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int
main()
{
char *seq = "GAGUAGUGGAACCAGGCUAUGUUUGUGACUCGCAGACUAACA";
char *propensity = (
char *)
vrna_alloc(
sizeof(
char) * (strlen(seq) + 1));
float en =
vrna_pf_fold(seq, propensity, &pair_probabilities);
printf("%s\n%s [ %6.2f ]\n", seq, propensity, en);
for (ptr = pair_probabilities; ptr->
i != 0; ptr++)
printf(
"p(%d, %d) = %g\n", ptr->
i, ptr->
j, ptr->
p);
free(pair_probabilities);
free(propensity);
return 0;
}
float vrna_pf_fold(const char *sequence, char *structure, vrna_ep_t **pl)
Compute Partition function (and base pair probabilities) for an RNA sequence using a comparative met...
int i
Start position (usually 5' nucleotide that starts the element, e.g. base pair)
Definition: structures.h:483
float p
Probability of the element.
Definition: structures.h:485
int j
End position (usually 3' nucleotide that ends the element, e.g. base pair)
Definition: structures.h:484
Data structure representing a single entry of an element probability list (e.g. list of pair probabil...
Definition: structures.h:482
Partition function implementations.
- See also
examples/helloworld_probabilities.c
in the source code tarball
Deviating from the Default Model
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int
main()
{
char *structure = (
char *)
vrna_alloc(
sizeof(
char) * (strlen(seq) + 1));
printf("%s\n%s [ %6.2f ]\n", seq, structure, mfe);
free(structure);
return 0;
}
The Basic Fold Compound API.
void vrna_fold_compound_free(vrna_fold_compound_t *fc)
Free memory occupied by a vrna_fold_compound_t.
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.
#define VRNA_OPTION_DEFAULT
Option flag to specify default settings/requirements.
Definition: fold_compound.h:375
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:148
float vrna_mfe(vrna_fold_compound_t *vc, char *structure)
Compute minimum free energy and an appropriate secondary structure of an RNA sequence,...
double temperature
The temperature used to scale the thermodynamic parameters.
Definition: model.h:181
int gquad
Include G-quadruplexes in structure prediction.
Definition: model.h:214
void vrna_md_set_default(vrna_md_t *md)
Apply default model details to a provided vrna_md_t data structure.
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:180
char * vrna_random_string(int l, const char symbols[])
Create a random string using characters from a specified symbol set.
void vrna_init_rand(void)
Initialize seed for random number generator.
Compute Minimum Free energy (MFE) and backtrace corresponding secondary structures from RNA sequence ...
The model details data structure and its corresponding modifiers.
General utility- and helper-functions for RNA sequence and structure strings used throughout the Vien...
- See also
examples/fold_compound_md.c
in the source code tarball