# Tree Representation of Secondary Structures

  Defines

  VRNA_STRUCTURE_TREE_HIT
    #include <ViennaRNA/utils/structures.h>

    Homeomorphically Irreducible Tree (HIT) representation of a secondary structure.

    See also

    vrna_db_to_tree_string()

  VRNA_STRUCTURE_TREE_SHAPIRO_SHORT
    #include <ViennaRNA/utils/structures.h>

    (short) Coarse Grained representation of a secondary structure

    See also

    vrna_db_to_tree_string()

  VRNA_STRUCTURE_TREE_SHAPIRO
    #include <ViennaRNA/utils/structures.h>

    (full) Coarse Grained representation of a secondary structure

    See also

    vrna_db_to_tree_string()

  VRNA_STRUCTURE_TREE_SHAPIRO_EXT
    #include <ViennaRNA/utils/structures.h>

    (extended) Coarse Grained representation of a secondary structure

    See also

    vrna_db_to_tree_string()

  VRNA_STRUCTURE_TREE_SHAPIRO_WEIGHT
    #include <ViennaRNA/utils/structures.h>

    (weighted) Coarse Grained representation of a secondary structure

    See also

    vrna_db_to_tree_string()

  VRNA_STRUCTURE_TREE_EXPANDED
    #include <ViennaRNA/utils/structures.h>

    Expanded Tree representation of a secondary structure.

    See also

    vrna_db_to_tree_string()

  Functions

  char *vrna_db_to_tree_string(const char *structure, unsigned int type)
    #include <ViennaRNA/utils/structures.h>

    Convert a Dot-Bracket structure string into tree string representation.

    This function allows one to convert a secondary structure in dot-bracket notation into one of the various tree representations for secondary structures. The resulting tree is then represented as a string of parenthesis and node symbols, similar to to the Newick format.

    Currently we support conversion into the following formats, denoted by the value of parameter `type:`

    - VRNA_STRUCTURE_TREE_HIT - Homeomorphically Irreducible Tree (HIT) representation of a secondary structure. (See also Fontana et al. [1993] )

    - VRNA_STRUCTURE_TREE_SHAPIRO_SHORT - (short) Coarse Grained representation of a secondary structure (same as Shapiro [1988] , but with root node `R` and without `S` nodes for the stems)

    - VRNA_STRUCTURE_TREE_SHAPIRO - (full) Coarse Grained representation of a secondary structure (See also Shapiro [1988] )

    - VRNA_STRUCTURE_TREE_SHAPIRO_EXT - (extended) Coarse Grained representation of a secondary structure (same as Shapiro [1988] , but external nodes denoted as `E` )

    - VRNA_STRUCTURE_TREE_SHAPIRO_WEIGHT - (weighted) Coarse Grained representation of a secondary structure (same as VRNA_STRUCTURE_TREE_SHAPIRO_EXT but with additional weights for number of unpaired nucleotides in loop, and number of pairs in stems)

    - VRNA_STRUCTURE_TREE_EXPANDED - Expanded Tree representation of a secondary structure.

    See also

    sec_structure_representations_tree

    Parameters:

      - structure – The null-terminated dot-bracket structure string

      - type – A switch to determine the type of tree string representation

    Returns:

      A tree representation of the input `structure`

  char *vrna_tree_string_unweight(const char *structure)
    #include <ViennaRNA/utils/structures.h>

    Remove weights from a linear string tree representation of a secondary structure.

    This function strips the weights of a linear string tree representation such as `HIT`, or Coarse Grained Tree sensu Shapiro [1988]

    See also

    vrna_db_to_tree_string()

    Parameters:

      - structure – A linear string tree representation of a secondary structure with weights

    Returns:

      A linear string tree representation of a secondary structure without weights

  char *vrna_tree_string_to_db(const char *tree)
    #include <ViennaRNA/utils/structures.h>

    Convert a linear tree string representation of a secondary structure back to Dot-Bracket notation.

    See also

    vrna_db_to_tree_string(), VRNA_STRUCTURE_TREE_EXPANDED, VRNA_STRUCTURE_TREE_HIT, sec_structure_representations_tree

    Warning

    This function only accepts Expanded and HIT tree representations!

    Parameters:

      - tree – A linear tree string representation of a secondary structure

    Returns:

      A dot-bracket notation of the secondary structure provided in `tree`