Layouts and Coordinates
Functions to compute coordinate layouts for secondary structure plots.
Defines
-
VRNA_PLOT_TYPE_SIMPLE
- #include <ViennaRNA/plotting/layouts.h>
Definition of Plot type simple
This is the plot type definition for several RNA structure plotting functions telling them to use Simple plotting algorithm
-
VRNA_PLOT_TYPE_NAVIEW
- #include <ViennaRNA/plotting/layouts.h>
Definition of Plot type Naview
This is the plot type definition for several RNA structure plotting functions telling them to use Naview plotting algorithm [Bruccoleri and Heinrich, 1988] .
-
VRNA_PLOT_TYPE_CIRCULAR
- #include <ViennaRNA/plotting/layouts.h>
Definition of Plot type Circular
This is the plot type definition for several RNA structure plotting functions telling them to produce a Circular plot
-
VRNA_PLOT_TYPE_TURTLE
- #include <ViennaRNA/plotting/layouts.h>
Definition of Plot type Turtle [Wiegreffe et al., 2019] .
-
VRNA_PLOT_TYPE_PUZZLER
- #include <ViennaRNA/plotting/layouts.h>
Definition of Plot type RNApuzzler [Wiegreffe et al., 2019] .
-
VRNA_PLOT_TYPE_DEFAULT
- #include <ViennaRNA/plotting/layouts.h>
Typedefs
-
typedef struct vrna_plot_layout_s vrna_plot_layout_t
- #include <ViennaRNA/plotting/layouts.h>
RNA secondary structure figure layout.
See also
vrna_plot_layout(), vrna_plot_layout_free(), vrna_plot_layout_simple(), vrna_plot_layout_circular(), vrna_plot_layout_naview(), vrna_plot_layout_turtle(), vrna_plot_layout_puzzler()
Functions
-
vrna_plot_layout_t *vrna_plot_layout(const char *structure, unsigned int plot_type)
- #include <ViennaRNA/plotting/layouts.h>
Create a layout (coordinates, etc.) for a secondary structure plot.
This function can be used to create a secondary structure nucleotide layout that is then further processed by an actual plotting function. The layout algorithm can be specified using the
plot_type
parameter, and the following algorithms are currently supported:Passing an unsupported selection leads to the default algorithm VRNA_PLOT_TYPE_NAVIEW
See also
vrna_plot_layout_free(), vrna_plot_layout_simple(), vrna_plot_layout_naview(), vrna_plot_layout_circular(), vrna_plot_layout_turtle(), vrna_plot_layout_puzzler(), vrna_plot_coords(), vrna_file_PS_rnaplot_layout()
Note
If only X-Y coordinates of the corresponding structure layout are required, consider using vrna_plot_coords() instead!
- Parameters
structure – The secondary structure in dot-bracket notation
plot_type – The layout algorithm to be used
- Returns
The layout data structure for the provided secondary structure
-
vrna_plot_layout_t *vrna_plot_layout_simple(const char *structure)
- #include <ViennaRNA/plotting/layouts.h>
Create a layout (coordinates, etc.) for a simple secondary structure plot.
This function basically is a wrapper to vrna_plot_layout() that passes the
plot_type
VRNA_PLOT_TYPE_SIMPLE.See also
vrna_plot_layout_free(), vrna_plot_layout(), vrna_plot_layout_naview(), vrna_plot_layout_circular(), vrna_plot_layout_turtle(), vrna_plot_layout_puzzler(), vrna_plot_coords_simple(), vrna_file_PS_rnaplot_layout()
Note
If only X-Y coordinates of the corresponding structure layout are required, consider using vrna_plot_coords_simple() instead!
- Parameters
structure – The secondary structure in dot-bracket notation
- Returns
The layout data structure for the provided secondary structure
-
vrna_plot_layout_t *vrna_plot_layout_circular(const char *structure)
- #include <ViennaRNA/plotting/layouts.h>
Create a layout (coordinates, etc.) for a circular secondary structure plot.
This function basically is a wrapper to vrna_plot_layout() that passes the
plot_type
VRNA_PLOT_TYPE_CIRCULAR.See also
vrna_plot_layout_free(), vrna_plot_layout(), vrna_plot_layout_naview(), vrna_plot_layout_simple(), vrna_plot_layout_turtle(), vrna_plot_layout_puzzler(), vrna_plot_coords_circular(), vrna_file_PS_rnaplot_layout()
Note
If only X-Y coordinates of the corresponding structure layout are required, consider using vrna_plot_coords_circular() instead!
- Parameters
structure – The secondary structure in dot-bracket notation
- Returns
The layout data structure for the provided secondary structure
-
vrna_plot_layout_t *vrna_plot_layout_turtle(const char *structure)
- #include <ViennaRNA/plotting/layouts.h>
Create a layout (coordinates, etc.) for a secondary structure plot using the Turtle Algorithm [Wiegreffe et al., 2019] .
This function basically is a wrapper to vrna_plot_layout() that passes the
plot_type
VRNA_PLOT_TYPE_TURTLE.See also
vrna_plot_layout_free(), vrna_plot_layout(), vrna_plot_layout_simple(), vrna_plot_layout_circular(), vrna_plot_layout_naview(), vrna_plot_layout_puzzler(), vrna_plot_coords_turtle(), vrna_file_PS_rnaplot_layout()
Note
If only X-Y coordinates of the corresponding structure layout are required, consider using vrna_plot_coords_turtle() instead!
- Parameters
structure – The secondary structure in dot-bracket notation
- Returns
The layout data structure for the provided secondary structure
-
vrna_plot_layout_t *vrna_plot_layout_puzzler(const char *structure, vrna_plot_options_puzzler_t *options)
- #include <ViennaRNA/plotting/layouts.h>
Create a layout (coordinates, etc.) for a secondary structure plot using the RNApuzzler Algorithm [Wiegreffe et al., 2019] .
This function basically is a wrapper to vrna_plot_layout() that passes the
plot_type
VRNA_PLOT_TYPE_PUZZLER.See also
vrna_plot_layout_free(), vrna_plot_layout(), vrna_plot_layout_simple(), vrna_plot_layout_circular(), vrna_plot_layout_naview(), vrna_plot_layout_turtle(), vrna_plot_coords_puzzler(), vrna_file_PS_rnaplot_layout()
Note
If only X-Y coordinates of the corresponding structure layout are required, consider using vrna_plot_coords_puzzler() instead!
- Parameters
structure – The secondary structure in dot-bracket notation
- Returns
The layout data structure for the provided secondary structure
-
void vrna_plot_layout_free(vrna_plot_layout_t *layout)
- #include <ViennaRNA/plotting/layouts.h>
Free memory occupied by a figure layout data structure.
See also
vrna_plot_layout_t, vrna_plot_layout(), vrna_plot_layout_simple(), vrna_plot_layout_circular(), vrna_plot_layout_naview(), vrna_plot_layout_turtle(), vrna_plot_layout_puzzler(), vrna_file_PS_rnaplot_layout()
- Parameters
layout – The layout data structure to free
-
int vrna_plot_coords(const char *structure, float **x, float **y, int plot_type)
- #include <ViennaRNA/plotting/layouts.h>
Compute nucleotide coordinates for secondary structure plot.
This function takes a secondary structure and computes X-Y coordinates for each nucleotide that then can be used to create a structure plot. The parameter
plot_type
is used to select the underlying layout algorithm. Currently, the following selections are provided:Passing an unsupported selection leads to the default algorithm VRNA_PLOT_TYPE_NAVIEW
Here is a simple example how to use this function, assuming variable
structure
contains a valid dot-bracket string:float *x, *y; if (vrna_plot_coords(structure, &x, &y)) { printf("all fine"); } else { printf("some failure occured!"); } free(x); free(y);
See also
vrna_plot_coords_pt(), vrna_plot_coords_simple(), vrna_plot_coords_naview() vrna_plot_coords_circular(), vrna_plot_coords_turtle(), vrna_plot_coords_puzzler()
Note
On success, this function allocates memory for X and Y coordinates and assigns the pointers at addressess
x
andy
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
structure – The secondary structure in dot-bracket notation
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
plot_type – The layout algorithm to be used
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_pt(const short *pt, float **x, float **y, int plot_type)
- #include <ViennaRNA/plotting/layouts.h>
Compute nucleotide coordinates for secondary structure plot.
Same as vrna_plot_coords() but takes a pair table with the structure information as input.
See also
vrna_plot_coords(), vrna_plot_coords_simple_pt(), vrna_plot_coords_naview_pt() vrna_plot_coords_circular_pt(), vrna_plot_coords_turtle_pt(), vrna_plot_coords_puzzler_pt()
Note
On success, this function allocates memory for X and Y coordinates and assigns the pointers at addressess
x
andy
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
pt – The pair table that holds the secondary structure
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
plot_type – The layout algorithm to be used
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_simple(const char *structure, float **x, float **y)
- #include <ViennaRNA/plotting/layouts.h>
Compute nucleotide coordinates for secondary structure plot the Simple way
This function basically is a wrapper to vrna_plot_coords() that passes the
plot_type
VRNA_PLOT_TYPE_SIMPLE.Here is a simple example how to use this function, assuming variable
structure
contains a valid dot-bracket string:float *x, *y; if (vrna_plot_coords_simple(structure, &x, &y)) { printf("all fine"); } else { printf("some failure occured!"); } free(x); free(y);
See also
vrna_plot_coords(), vrna_plot_coords_simple_pt(), vrna_plot_coords_circular(), vrna_plot_coords_naview(), vrna_plot_coords_turtle(), vrna_plot_coords_puzzler()
Note
On success, this function allocates memory for X and Y coordinates and assigns the pointers at addressess
x
andy
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
structure – The secondary structure in dot-bracket notation
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_simple_pt(const short *pt, float **x, float **y)
- #include <ViennaRNA/plotting/layouts.h>
Compute nucleotide coordinates for secondary structure plot the Simple way
Same as vrna_plot_coords_simple() but takes a pair table with the structure information as input.
See also
vrna_plot_coords_pt(), vrna_plot_coords_simple(), vrna_plot_coords_circular_pt(), vrna_plot_coords_naview_pt(), vrna_plot_coords_turtle_pt(), vrna_plot_coords_puzzler_pt()
Note
On success, this function allocates memory for X and Y coordinates and assigns the pointers at addressess
x
andy
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
pt – The pair table that holds the secondary structure
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_circular(const char *structure, float **x, float **y)
- #include <ViennaRNA/plotting/layouts.h>
Compute coordinates of nucleotides mapped in equal distancies onto a unit circle.
This function basically is a wrapper to vrna_plot_coords() that passes the
plot_type
VRNA_PLOT_TYPE_CIRCULAR.In order to draw nice arcs using quadratic bezier curves that connect base pairs one may calculate a second tangential point
in addition to the actual R2 coordinates. the simplest way to do so may be to compute a radius scaling factor in the interval that weights the proportion of base pair span to the actual length of the sequence. This scaling factor can then be used to calculate the coordinates for , i.e.and
See also
vrna_plot_coords(), vrna_plot_coords_circular_pt(), vrna_plot_coords_simple(), vrna_plot_coords_naview(), vrna_plot_coords_turtle(), vrna_plot_coords_puzzler()
Note
On success, this function allocates memory for X and Y coordinates and assigns the pointers at addressess
x
andy
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
structure – The secondary structure in dot-bracket notation
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_circular_pt(const short *pt, float **x, float **y)
- #include <ViennaRNA/plotting/layouts.h>
Compute nucleotide coordinates for a Circular Plot
Same as vrna_plot_coords_circular() but takes a pair table with the structure information as input.
See also
vrna_plot_coords_pt(), vrna_plot_coords_circular(), vrna_plot_coords_simple_pt(), vrna_plot_coords_naview_pt(), vrna_plot_coords_turtle_pt(), vrna_plot_coords_puzzler_pt()
Note
On success, this function allocates memory for X and Y coordinates and assigns the pointers at addressess
x
andy
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
pt – The pair table that holds the secondary structure
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_puzzler(const char *structure, float **x, float **y, double **arc_coords, vrna_plot_options_puzzler_t *options)
- #include <ViennaRNA/plotting/RNApuzzler/RNApuzzler.h>
Compute nucleotide coordinates for secondary structure plot using the RNApuzzler algorithm [Wiegreffe et al., 2019] .
This function basically is a wrapper to vrna_plot_coords() that passes the
plot_type
VRNA_PLOT_TYPE_PUZZLER.Here is a simple example how to use this function, assuming variable
structure
contains a valid dot-bracket string and using the default options (options
= NULL):float *x, *y; double *arcs; if (vrna_plot_coords_puzzler(structure, &x, &y, &arcs, NULL)) { printf("all fine"); } else { printf("some failure occured!"); } free(x); free(y); free(arcs);
See also
vrna_plot_coords(), vrna_plot_coords_puzzler_pt(), vrna_plot_coords_circular(), vrna_plot_coords_simple(), vrna_plot_coords_turtle(), vrna_plot_coords_naview(), vrna_plot_options_puzzler()
Note
On success, this function allocates memory for X, Y and arc coordinates and assigns the pointers at addressess
x
,y
andarc_coords
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
structure – The secondary structure in dot-bracket notation
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
arc_coords – [inout] The address of a pointer that will hold arc coordinates (pointer will point to memory, or NULL on failure)
options – The options for the RNApuzzler algorithm (or NULL)
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_puzzler_pt(short const *const pair_table, float **x, float **y, double **arc_coords, vrna_plot_options_puzzler_t *puzzler)
- #include <ViennaRNA/plotting/RNApuzzler/RNApuzzler.h>
Compute nucleotide coordinates for secondary structure plot using the RNApuzzler algorithm [Wiegreffe et al., 2019] .
Same as vrna_plot_coords_puzzler() but takes a pair table with the structure information as input.
See also
vrna_plot_coords_pt(), vrna_plot_coords_puzzler(), vrna_plot_coords_circular_pt(), vrna_plot_coords_simple_pt(), vrna_plot_coords_turtle_pt(), vrna_plot_coords_naview_pt()
Note
On success, this function allocates memory for X, Y and arc coordinates and assigns the pointers at addressess
x
,y
andarc_coords
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
pt – The pair table that holds the secondary structure
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
arc_coords – [inout] The address of a pointer that will hold arc coordinates (pointer will point to memory, or NULL on failure)
options – The options for the RNApuzzler algorithm (or NULL)
- Returns
The length of the structure on success, 0 otherwise
-
vrna_plot_options_puzzler_t *vrna_plot_options_puzzler(void)
- #include <ViennaRNA/plotting/RNApuzzler/RNApuzzler.h>
Create an RNApuzzler options data structure.
See also
vrna_plot_options_puzzler_free(), vrna_plot_coords_puzzler(), vrna_plot_coords_puzzler_pt(), vrna_plot_layout_puzzler()
- Returns
An RNApuzzler options data structure with default settings
-
void vrna_plot_options_puzzler_free(vrna_plot_options_puzzler_t *options)
- #include <ViennaRNA/plotting/RNApuzzler/RNApuzzler.h>
Free memory occupied by an RNApuzzler options data structure.
See also
vrna_plot_options_puzzler(), vrna_plot_coords_puzzler(), vrna_plot_coords_puzzler_pt(), vrna_plot_layout_puzzler()
- Parameters
options – A pointer to the options data structure to free
-
int vrna_plot_coords_turtle(const char *structure, float **x, float **y, double **arc_coords)
- #include <ViennaRNA/plotting/RNApuzzler/RNAturtle.h>
Compute nucleotide coordinates for secondary structure plot using the RNAturtle algorithm [Wiegreffe et al., 2019] .
This function basically is a wrapper to vrna_plot_coords() that passes the
plot_type
VRNA_PLOT_TYPE_TURTLE.Here is a simple example how to use this function, assuming variable
structure
contains a valid dot-bracket string:float *x, *y; double *arcs; if (vrna_plot_coords_turtle(structure, &x, &y, &arcs)) { printf("all fine"); } else { printf("some failure occured!"); } free(x); free(y); free(arcs);
See also
vrna_plot_coords(), vrna_plot_coords_turtle_pt(), vrna_plot_coords_circular(), vrna_plot_coords_simple(), vrna_plot_coords_naview(), vrna_plot_coords_puzzler()
Note
On success, this function allocates memory for X, Y and arc coordinates and assigns the pointers at addressess
x
,y
andarc_coords
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
structure – The secondary structure in dot-bracket notation
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
arc_coords – [inout] The address of a pointer that will hold arc coordinates (pointer will point to memory, or NULL on failure)
- Returns
The length of the structure on success, 0 otherwise
-
int vrna_plot_coords_turtle_pt(short const *const pair_table, float **x, float **y, double **arc_coords)
- #include <ViennaRNA/plotting/RNApuzzler/RNAturtle.h>
Compute nucleotide coordinates for secondary structure plot using the RNAturtle algorithm [Wiegreffe et al., 2019] .
Same as vrna_plot_coords_turtle() but takes a pair table with the structure information as input.
See also
vrna_plot_coords_pt(), vrna_plot_coords_turtle(), vrna_plot_coords_circular_pt(), vrna_plot_coords_simple_pt(), vrna_plot_coords_puzzler_pt(), vrna_plot_coords_naview_pt()
Note
On success, this function allocates memory for X, Y and arc coordinates and assigns the pointers at addressess
x
,y
andarc_coords
to the corresponding memory locations. It’s the users responsibility to cleanup this memory after usage!- Parameters
pt – The pair table that holds the secondary structure
x – [inout] The address of a pointer of X coordinates (pointer will point to memory, or NULL on failure)
y – [inout] The address of a pointer of Y coordinates (pointer will point to memory, or NULL on failure)
arc_coords – [inout] The address of a pointer that will hold arc coordinates (pointer will point to memory, or NULL on failure)
- Returns
The length of the structure on success, 0 otherwise
-
struct vrna_plot_layout_s
-
struct vrna_plot_options_puzzler_t
- #include <ViennaRNA/plotting/RNApuzzler/RNApuzzler.h>
Options data structure for RNApuzzler algorithm implementation.
Public Members
-
short drawArcs
-
double paired
-
double unpaired
-
short checkAncestorIntersections
-
short checkSiblingIntersections
-
short checkExteriorIntersections
-
short allowFlipping
-
short optimize
-
int maximumNumberOfConfigChangesAllowed
-
char *config
-
const char *filename
-
int numberOfChangesAppliedToConfig
-
int psNumber
-
short drawArcs
-
VRNA_PLOT_TYPE_SIMPLE