RNAlib-2.5.1
Abstract Shapes Representation of Secondary Structures

Abstract Shapes, introduced by Giegerich et al. in (2004) [10], collapse the secondary structure while retaining the nestedness of helices and hairpin loops. More...

Detailed Description

Abstract Shapes, introduced by Giegerich et al. in (2004) [10], collapse the secondary structure while retaining the nestedness of helices and hairpin loops.

The abstract shapes representation abstracts the structure from individual base pairs and their corresponding location in the sequence, while retaining the inherent nestedness of helices and hairpin loops.

Below is a description of what is included in the abstract shapes abstraction for each respective level together with an example structure:

CGUCUUAAACUCAUCACCGUGUGGAGCUGCGACCCUUCCCUAGAUUCGAAGACGAG
((((((...(((..(((...))))))...(((..((.....))..)))))))))..

Shape Level Description Result
1 Most accurate - all loops and all unpaired [_[_[]]_[_[]_]]_
2 Nesting pattern for all loop types and unpaired regions in external loop and multiloop [[_[]][_[]_]]
3 Nesting pattern for all loop types but no unpaired regions [[[]][[]]]
4 Helix nesting pattern in external loop and multiloop [[][[]]]
5 Most abstract - helix nesting pattern and no unpaired regions [[][]]
Note
Our implementations also provide the special Shape Level 0, which does not collapse any structural features but simply convert base pairs and unpaired nucleotides into their corresponding set of symbols for abstract shapes.
+ Collaboration diagram for Abstract Shapes Representation of Secondary Structures:

Functions

char * vrna_abstract_shapes (const char *structure, unsigned int level)
 Convert a secondary structure in dot-bracket notation to its abstract shapes representation. More...
 
char * vrna_abstract_shapes_pt (const short *pt, unsigned int level)
 Convert a secondary structure to its abstract shapes representation. More...
 

Function Documentation

◆ vrna_abstract_shapes()

char * vrna_abstract_shapes ( const char *  structure,
unsigned int  level 
)

#include <ViennaRNA/utils/structures.h>

Convert a secondary structure in dot-bracket notation to its abstract shapes representation.

This function converts a secondary structure into its abstract shapes representation as presented by Giegerich et al. 2004 [10].

See also
vrna_abstract_shapes_pt()
Parameters
structureA secondary structure in dot-bracket notation
levelThe abstraction level (integer in the range of 0 to 5)
Returns
The secondary structure in abstract shapes notation
SWIG Wrapper Notes:
This function is available as an overloaded function abstract_shapes() where the optional second parameter level defaults to 5.

◆ vrna_abstract_shapes_pt()

char * vrna_abstract_shapes_pt ( const short *  pt,
unsigned int  level 
)

#include <ViennaRNA/utils/structures.h>

Convert a secondary structure to its abstract shapes representation.

This function converts a secondary structure into its abstract shapes representation as presented by Giegerich et al. 2004 [10]. This function is equivalent to vrna_db_to_shapes(), but requires a pair table input instead of a dot-bracket structure.

Note
The length of the structure must be present at pt[0]!
See also
vrna_abstract_shapes()
Parameters
ptA secondary structure in pair table format
levelThe abstraction level (integer in the range of 0 to 5)
Returns
The secondary structure in abstract shapes notation
SWIG Wrapper Notes:
This function is available as an overloaded function abstract_shapes() where the optional second parameter level defaults to 5.