Nucleotide Alphabets#

Functions to cope with various aspects related to the nucleotide sequence alphabet.

Defines

VRNA_SEQUENCE_RNA#
#include <ViennaRNA/sequences/sequence.h>
VRNA_SEQUENCE_DNA#
#include <ViennaRNA/sequences/sequence.h>

Typedefs

typedef struct vrna_sequence_s vrna_seq_t#

Typename for nucleotide sequence representation data structure vrna_sequence_s.

#include <ViennaRNA/sequences/sequence.h>
typedef struct vrna_alignment_s vrna_msa_t#
#include <ViennaRNA/sequences/sequence.h>

Enums

enum vrna_seq_type_e#

A enumerator used in vrna_sequence_s to distinguish different nucleotide sequences.

#include <ViennaRNA/sequences/sequence.h>

Values:

enumerator VRNA_SEQ_UNKNOWN#

Nucleotide sequence represents an Unkown type.

enumerator VRNA_SEQ_RNA#

Nucleotide sequence represents an RNA type.

enumerator VRNA_SEQ_DNA#

Nucleotide sequence represents a DNA type.

Functions

unsigned int vrna_sequence_length_max(unsigned int options)#
#include <ViennaRNA/sequences/alphabet.h>
int vrna_nucleotide_IUPAC_identity(char a, char b)#
#include <ViennaRNA/sequences/alphabet.h>
void vrna_ptypes_prepare(vrna_fold_compound_t *fc, unsigned int options)#
#include <ViennaRNA/sequences/alphabet.h>
char *vrna_ptypes(const short *S, const vrna_md_t *md)#

Get an array of the numerical encoding for each possible base pair (i,j).

#include <ViennaRNA/sequences/alphabet.h>

Note

This array is always indexed in column-wise order, in contrast to previously different indexing between mfe and pf variants!

short *vrna_seq_encode(const char *sequence, const vrna_md_t *md)#

Get a numerical representation of the nucleotide sequence.

#include <ViennaRNA/sequences/alphabet.h>
Parameters:
  • sequence – The input sequence in upper-case letters

  • md – A pointer to a vrna_md_t data structure that specifies the conversion type

Returns:

A list of integer encodings for each sequence letter (1-based). Position 0 denotes the length of the list

short *vrna_seq_encode_simple(const char *sequence, const vrna_md_t *md)#

Get a numerical representation of the nucleotide sequence (simple version).

#include <ViennaRNA/sequences/alphabet.h>
int vrna_nucleotide_encode(char c, const vrna_md_t *md)#

Encode a nucleotide character to numerical value.

#include <ViennaRNA/sequences/alphabet.h>

This function encodes a nucleotide character to its numerical representation as required by many functions in RNAlib.

Parameters:
  • c – The nucleotide character to encode

  • md – The model details that determine the kind of encoding

Returns:

The encoded nucleotide

char vrna_nucleotide_decode(int enc, const vrna_md_t *md)#

Decode a numerical representation of a nucleotide back into nucleotide alphabet.

#include <ViennaRNA/sequences/alphabet.h>

This function decodes a numerical representation of a nucleotide character back into nucleotide alphabet

Parameters:
  • enc – The encoded nucleotide

  • md – The model details that determine the kind of decoding

Returns:

The decoded nucleotide character

void vrna_aln_encode(const char *sequence, short **S_p, short **s5_p, short **s3_p, char **ss_p, unsigned int **as_p, const vrna_md_t *md)#
#include <ViennaRNA/sequences/alphabet.h>
unsigned int vrna_get_ptype_md(int i, int j, const vrna_md_t *md)#
#include <ViennaRNA/sequences/alphabet.h>
unsigned int vrna_get_ptype(int ij, char *ptype)#
#include <ViennaRNA/sequences/alphabet.h>
unsigned int vrna_get_ptype_window(int i, int j, char **ptype)#
#include <ViennaRNA/sequences/alphabet.h>
vrna_seq_t *vrna_sequence(const char *string, unsigned int options)#
#include <ViennaRNA/sequences/sequence.h>
int vrna_sequence_add(vrna_fold_compound_t *fc, const char *string, unsigned int options)#
#include <ViennaRNA/sequences/sequence.h>
int vrna_sequence_remove(vrna_fold_compound_t *fc, unsigned int i)#
#include <ViennaRNA/sequences/sequence.h>
void vrna_sequence_remove_all(vrna_fold_compound_t *fc)#
#include <ViennaRNA/sequences/sequence.h>
void vrna_sequence_prepare(vrna_fold_compound_t *fc)#
#include <ViennaRNA/sequences/sequence.h>
int vrna_sequence_order_update(vrna_fold_compound_t *fc, const unsigned int *order)#
#include <ViennaRNA/sequences/sequence.h>
size_t vrna_sequence_mutate_strand(vrna_fold_compound_t *fc, unsigned int strand, unsigned int *positions, char *nucleotidea, size_t nmods)#
#include <ViennaRNA/sequences/sequence.h>
size_t vrna_sequence_mutate(vrna_fold_compound_t *fc, const unsigned int *positions, const char *nucleotides, size_t nmut)#
#include <ViennaRNA/sequences/sequence.h>
int vrna_msa_add(vrna_fold_compound_t *fc, const char **alignment, const char **names, const unsigned char *orientation, const unsigned long long *start, const unsigned long long *genome_size, unsigned int options)#
#include <ViennaRNA/sequences/sequence.h>
struct vrna_sequence_s#
#include <ViennaRNA/sequences/sequence.h>

Data structure representing a nucleotide sequence.

Public Members

vrna_seq_type_e type#

The type of sequence.

#include <ViennaRNA/sequences/sequence.h>
char *name#
#include <ViennaRNA/sequences/sequence.h>
char *string#

The string representation of the sequence.

#include <ViennaRNA/sequences/sequence.h>
short *encoding#

The integer representation of the sequence.

#include <ViennaRNA/sequences/sequence.h>
short *encoding5#
#include <ViennaRNA/sequences/sequence.h>
short *encoding3#
#include <ViennaRNA/sequences/sequence.h>
unsigned int length#

The length of the sequence.

#include <ViennaRNA/sequences/sequence.h>
struct vrna_alignment_s#

Public Members

unsigned int n_seq#
#include <ViennaRNA/sequences/sequence.h>
vrna_seq_t *sequences#
#include <ViennaRNA/sequences/sequence.h>
char **gapfree_seq#
#include <ViennaRNA/sequences/sequence.h>
unsigned int *gapfree_size#
#include <ViennaRNA/sequences/sequence.h>
unsigned long long *genome_size#
#include <ViennaRNA/sequences/sequence.h>
unsigned long long *start#
#include <ViennaRNA/sequences/sequence.h>
unsigned char *orientation#
#include <ViennaRNA/sequences/sequence.h>
unsigned int **a2s#
#include <ViennaRNA/sequences/sequence.h>