RNAlib-2.4.14
Scripting Language interface(s)

Introduction

For an easy integration into scripting languages, we provide an automatically generated interface to the RNAlib C-library, generated with SWIG.

Function Renaming

To provide a namespace-like separation of function symbols from our C library and third-party code, we use the prefix vrna_ or VRNA_ whenever possible. This, however, is not necessary for the scripting language interface, as it uses the separate namespace or package RNA anyway. Consequently, symbols that appear to have the vrna_ or VRNA_ prefix in the C-library have the corresponding prefix stripped away.

For instance, the C code

mfe = vrna_fold(sequence, structure);

translates to

my ($structure, $mfe) = RNA::fold($sequence)

in the Perl 5 interface, and

structure,mfe = RNA.fold(sequence)

for Python 2/3. Note, that in this example we also make use of the possibilty to return multiple data at once in the scripting language, while the C library function uses additional parameters to return multiple data.

Functions that are dedicated to work on specific data structures only, e.g. the vrna_fold_compound_t, are usually not exported at all. Instead, they are attached as object methods of a corresponding class (see Object oriented Interface for Data Structures for detailed information).

Global Variables

For the Python interface(s) SWIG places global variables of the C-library into an additional namespace cvar. For instance, changing the global temperature variable thus becomes

RNA.cvar.temperature = 25

Object oriented Interface for Data Structures

For data structures, typedefs, and enumerations the vrna_ prefixes are dropped as well, together with their suffixes _s, _t, and _e, respectively. Furthermore, data structures are usually transformed into classes and relevant functions of the C-library are attached as methods.

Examples

Examples on the basic usage of the scripting language interfaces can be found in the scripting_perl_examples and scripting_python_examples section.

SWIG generated Wrapper notes

Special notes on how functions, structures, enums, and macro definitions are actually wrapped, can be found below

Global vrna_aln_conservation_col (const char **alignment, const vrna_md_t *md_p, unsigned int options)
This function is available in an overloaded form where the last two parameters may be omitted, indicating md = NULL, and options = VRNA_MEASURE_SHANNON_ENTROPY, respectively.
Global vrna_aln_conservation_struct (const char **alignment, const char *structure, const vrna_md_t *md)
This function is available in an overloaded form where the last parameter may be omitted, indicating md = NULL
Global vrna_backtrack5 (vrna_fold_compound_t *fc, unsigned int length, char *structure)
This function is attached as overloaded method backtrack() to objects of type fold_compound with default parameter length equal to the total length of the RNA.
Global vrna_db_flatten (char *structure, unsigned int options)

This function flattens an input structure string in-place! The second parameter is optional and defaults to VRNA_BRACKETS_DEFAULT.

An overloaded version of this function exists, where an additional second parameter can be passed to specify the target brackets, i.e. the type of matching pair characters all brackets will be flattened to. Therefore, in the scripting language interface this function is a replacement for vrna_db_flatten_to().

Global vrna_db_flatten_to (char *string, const char target[3], unsigned int options)
This function is available as an overloaded version of vrna_db_flatten()
Global vrna_db_pk_remove (const char *structure, unsigned int options)
This function is available as an overloaded function db_pk_remove() where the optional second parameter options defaults to #VRNA_BRACKET_ANY.
Global vrna_ensemble_defect (vrna_fold_compound_t *fc, const char *structure)
This function is attached as method ensemble_defect() to objects of type fold_compound
Global vrna_enumerate_necklaces (const unsigned int *type_counts)
This function is available as global function enumerate_necklaces() which accepts lists input, an produces list of lists output.
Global vrna_eval_circ_consensus_structure (const char **alignment, const char *structure)
This function is available through an overloadeded version of vrna_eval_circ_structure(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument
Global vrna_eval_circ_consensus_structure_v (const char **alignment, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_circ_structure(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument. The last two arguments are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_circ_gquad_consensus_structure (const char **alignment, const char *structure)
This function is available through an overloadeded version of vrna_eval_circ_gquad_structure(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument
Global vrna_eval_circ_gquad_consensus_structure_v (const char **alignment, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_circ_gquad_structure(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument. The last two arguments are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_circ_gquad_structure (const char *string, const char *structure)
In the target scripting language, this function serves as a wrapper for vrna_eval_circ_gquad_structure_v() and, thus, allows for two additional, optional arguments, the verbosity level and a file handle which default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_circ_gquad_structure_v (const char *string, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_circ_gquad_structure(). The last two arguments for this function are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_circ_structure (const char *string, const char *structure)
In the target scripting language, this function serves as a wrapper for vrna_eval_circ_structure_v() and, thus, allows for two additional, optional arguments, the verbosity level and a file handle which default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_circ_structure_v (const char *string, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_circ_structure(). The last two arguments for this function are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_consensus_structure_pt_simple (const char **alignment, const short *pt)
This function is available through an overloadeded version of vrna_eval_structure_pt_simple(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument
Global vrna_eval_consensus_structure_simple (const char **alignment, const char *structure)
This function is available through an overloadeded version of vrna_eval_structure_simple(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument
Global vrna_eval_consensus_structure_simple_v (const char **alignment, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_structure_simple(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument. The last two arguments are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_consensus_structure_simple_verbose (const char **alignment, const char *structure, FILE *file)
This function is not available. Use vrna_eval_consensus_structure_simple_v() instead!
Global vrna_eval_covar_structure (vrna_fold_compound_t *vc, const char *structure)
This function is attached as method eval_covar_structure() to objects of type fold_compound
Global vrna_eval_gquad_consensus_structure (const char **alignment, const char *structure)
This function is available through an overloadeded version of vrna_eval_gquad_structure(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument
Global vrna_eval_gquad_consensus_structure_v (const char **alignment, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_gquad_structure(). Simply pass a sequence alignment as list of strings (including gaps) as first, and the consensus structure as second argument. The last two arguments are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_gquad_structure (const char *string, const char *structure)
In the target scripting language, this function serves as a wrapper for vrna_eval_gquad_structure_v() and, thus, allows for two additional, optional arguments, the verbosity level and a file handle which default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_gquad_structure_v (const char *string, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_gquad_structure(). The last two arguments for this function are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_hp_loop (vrna_fold_compound_t *fc, int i, int j)
This function is attached as method eval_hp_loop() to objects of type fold_compound
Global vrna_eval_int_loop (vrna_fold_compound_t *fc, int i, int j, int k, int l)
This function is attached as method eval_int_loop() to objects of type fold_compound
Global vrna_eval_loop_pt (vrna_fold_compound_t *vc, int i, const short *pt)
This function is attached as method eval_loop_pt() to objects of type fold_compound
Global vrna_eval_move (vrna_fold_compound_t *vc, const char *structure, int m1, int m2)
This function is attached as method eval_move() to objects of type fold_compound
Global vrna_eval_move_pt (vrna_fold_compound_t *vc, short *pt, int m1, int m2)
This function is attached as method eval_move_pt() to objects of type fold_compound
Global vrna_eval_structure (vrna_fold_compound_t *vc, const char *structure)
This function is attached as method eval_structure() to objects of type fold_compound
Global vrna_eval_structure_pt (vrna_fold_compound_t *vc, const short *pt)
This function is attached as method eval_structure_pt() to objects of type fold_compound
Global vrna_eval_structure_pt_simple (const char *string, const short *pt)
In the target scripting language, this function serves as a wrapper for vrna_eval_structure_pt_v() and, thus, allows for two additional, optional arguments, the verbosity level and a file handle which default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_structure_pt_verbose (vrna_fold_compound_t *vc, const short *pt, FILE *file)
This function is attached as method eval_structure_pt_verbose() to objects of type fold_compound
Global vrna_eval_structure_simple (const char *string, const char *structure)
In the target scripting language, this function serves as a wrapper for vrna_eval_structure_simple_v() and, thus, allows for two additional, optional arguments, the verbosity level and a file handle which default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_structure_simple_v (const char *string, const char *structure, int verbosity_level, FILE *file)
This function is available through an overloaded version of vrna_eval_structure_simple(). The last two arguments for this function are optional and default to VRNA_VERBOSITY_QUIET and NULL, respectively.
Global vrna_eval_structure_simple_verbose (const char *string, const char *structure, FILE *file)
This function is not available. Use vrna_eval_structure_simple_v() instead!
Global vrna_eval_structure_verbose (vrna_fold_compound_t *vc, const char *structure, FILE *file)
This function is attached as method eval_structure_verbose() to objects of type fold_compound
Global vrna_exp_params_rescale (vrna_fold_compound_t *vc, double *mfe)

This function is attached to vrna_fc_s objects as overloaded exp_params_rescale() method.

When no parameter is passed to this method, the resulting action is the same as passing NULL as second parameter to vrna_exp_params_rescale(), i.e. default scaling of the partition function. Passing an energy in kcal/mol, e.g. as retrieved by a previous call to the mfe() method, instructs all subsequent calls to scale the partition function accordingly.

Global vrna_exp_params_reset (vrna_fold_compound_t *vc, vrna_md_t *md_p)

This function is attached to vrna_fc_s objects as overloaded exp_params_reset() method.

When no parameter is passed to this method, the resulting action is the same as passing NULL as second parameter to vrna_exp_params_reset(), i.e. global default model settings are used. Passing an object of type vrna_md_s resets the fold compound according to the specifications stored within the vrna_md_s object.

Class vrna_fc_s

This data structure is wrapped as an object fold_compound with several related functions attached as methods.

A new fold_compound can be obtained by calling one of its constructors:

  • fold_compound(seq) – Initialize with a single sequence, or two concatenated sequences separated by an ampersand character '&' (for cofolding)
  • fold_compound(aln) – Initialize with a sequence alignment aln stored as a list of sequences (with gap characters)

The resulting object has a list of attached methods which in most cases directly correspond to functions that mainly operate on the corresponding C data structure:

  • type() – Get the type of the fold_compound (See vrna_fc_type_e)
  • length() – Get the length of the sequence(s) or alignment stored within the fold_compound
Global vrna_file_commands_apply (vrna_fold_compound_t *vc, const char *filename, unsigned int options)
This function is attached as method file_commands_apply() to objects of type fold_compound
Global vrna_file_msa_detect_format (const char *filename, unsigned int options)
This function exists as an overloaded version where the options parameter may be omitted! In that case, the options parameter defaults to VRNA_FILE_FORMAT_MSA_DEFAULT.
Global vrna_file_msa_read (const char *filename, char ***names, char ***aln, char **id, char **structure, unsigned int options)

In the target scripting language, only the first and last argument, filename and options, are passed to the corresponding function. The other arguments, which serve as output in the C-library, are available as additional return values. Hence, a function call in python may look like this:

Global vrna_file_msa_read_record (FILE *fp, char ***names, char ***aln, char **id, char **structure, unsigned int options)

In the target scripting language, only the first and last argument, fp and options, are passed to the corresponding function. The other arguments, which serve as output in the C-library, are available as additional return values. Hence, a function call in python may look like this:

Global vrna_file_msa_write (const char *filename, const char **names, const char **aln, const char *id, const char *structure, const char *source, unsigned int options)
In the target scripting language, this function exists as a set of overloaded versions, where the last four parameters may be omitted. If the options parameter is missing the options default to (VRNA_FILE_FORMAT_MSA_STOCKHOLM | VRNA_FILE_FORMAT_MSA_APPEND).
Global vrna_file_PS_aln (const char *filename, const char **seqs, const char **names, const char *structure, unsigned int columns)
This function is available as overloaded function file_PS_aln() with three additional parameters start, end, and offset before the columns argument. Thus, it resembles the vrna_file_PS_aln_slice() function. The last four arguments may be omitted, indicating the default of start = 0, end = 0, offset = 0, and columns = 60.
Global vrna_file_PS_aln_slice (const char *filename, const char **seqs, const char **names, const char *structure, unsigned int start, unsigned int end, int offset, unsigned int columns)
This function is available as overloaded function file_PS_aln() where the last four parameter may be omitted, indicating start = 0, end = 0, offset = 0, and columns = 60.
Global vrna_hc_add_from_db (vrna_fold_compound_t *vc, const char *constraint, unsigned int options)
This function is attached as method hc_add_from_db() to objects of type fold_compound
Global vrna_hc_init (vrna_fold_compound_t *vc)
This function is attached as method hc_init() to objects of type fold_compound
Global vrna_maximum_matching (vrna_fold_compound_t *fc)
This function is attached as method maximum_matching() to objects of type fold_compound (i.e. vrna_fold_compound_t).
Global vrna_maximum_matching_simple (const char *sequence)
This function is available as global function maximum_matching().
Class vrna_md_s

This data structure is wrapped as an object md with multiple related functions attached as methods.

A new set of default parameters can be obtained by calling the constructure of md:

  • md() – Initialize with default settings

The resulting object has a list of attached methods which directly correspond to functions that mainly operate on the corresponding C data structure:

Note, that default parameters can be modified by directly setting any of the following global variables. Internally, getting/setting default parameters using their global variable representative translates into calls of the following functions, therefore these wrappers for these functions do not exist in the scripting language interface(s):

Global vrna_MEA (vrna_fold_compound_t *fc, double gamma, float *mea)
This function is attached as overloaded method MEA(gamma = 1.) to objects of type fold_compound. Note, that it returns the MEA structure and MEA value as a tuple (MEA_structure, MEA)
Global vrna_MEA_from_plist (vrna_ep_t *plist, const char *sequence, double gamma, vrna_md_t *md, float *mea)
This function is available as overloaded function MEA_from_plist(gamma = 1., md = NULL). Note, that it returns the MEA structure and MEA value as a tuple (MEA_structure, MEA)
Global vrna_mean_bp_distance (vrna_fold_compound_t *vc)
This function is attached as method mean_bp_distance() to objects of type fold_compound
Global vrna_mfe (vrna_fold_compound_t *vc, char *structure)
This function is attached as method mfe() to objects of type fold_compound
Global vrna_mfe_dimer (vrna_fold_compound_t *vc, char *structure)
This function is attached as method mfe_dimer() to objects of type fold_compound
Global vrna_mfe_window (vrna_fold_compound_t *vc, FILE *file)
This function is attached as method mfe_window() to objects of type fold_compound
Global vrna_neighbors (vrna_fold_compound_t *vc, const short *pt, unsigned int options)
This function is attached as an overloaded method neighbors() to objects of type fold_compound. The optional parameter options defaults to VRNA_MOVESET_DEFAULT if it is omitted.
Global vrna_params_load (const char fname[], unsigned int options)
This function is available as overloaded function params_load(fname="", options=VRNA_PARAMETER_FORMAT_DEFAULT). Here, the empty filename string indicates to load default RNA parameters, i.e. this is equivalent to calling vrna_params_load_defaults().
Global vrna_params_load_defaults (void)
This function is available as overloaded function params_load().
Global vrna_params_load_DNA_Mathews1999 (void)
This function is available as function params_load_DNA_Mathews1999().
Global vrna_params_load_DNA_Mathews2004 (void)
This function is available as function params_load_DNA_Mathews2004().
Global vrna_params_load_from_string (const char *string, const char *name, unsigned int options)
This function is available as overloaded function params_load_from_string(string, name="", options=VRNA_PARAMETER_FORMAT_DEFAULT).
Global vrna_params_load_RNA_Andronescu2007 (void)
This function is available as function params_load_RNA_Andronescu2007().
Global vrna_params_load_RNA_Langdon2018 (void)
This function is available as function params_load_RNA_Langdon2018().
Global vrna_params_load_RNA_misc_special_hairpins (void)
This function is available as function params_load_RNA_misc_special_hairpins().
Global vrna_params_load_RNA_Turner1999 (void)
This function is available as function params_load_RNA_Turner1999().
Global vrna_params_load_RNA_Turner2004 (void)
This function is available as function params_load_RNA_Turner2004().
Global vrna_params_reset (vrna_fold_compound_t *vc, vrna_md_t *md_p)

This function is attached to vrna_fc_s objects as overloaded params_reset() method.

When no parameter is passed to this method, the resulting action is the same as passing NULL as second parameter to vrna_params_reset(), i.e. global default model settings are used. Passing an object of type vrna_md_s resets the fold compound according to the specifications stored within the vrna_md_s object.

Global vrna_params_save (const char fname[], unsigned int options)
This function is available as overloaded function params_save(fname, options=VRNA_PARAMETER_FORMAT_DEFAULT).
Global vrna_params_subst (vrna_fold_compound_t *vc, vrna_param_t *par)
This function is attached to vrna_fc_s objects as params_subst() method.
Global vrna_path (vrna_fold_compound_t *vc, short *pt, unsigned int steps, unsigned int options)
This function is attached as an overloaded method path() to objects of type fold_compound. The optional parameter options defaults to VRNA_PATH_DEFAULT if it is omitted.
Global vrna_path_direct (vrna_fold_compound_t *fc, const char *s1, const char *s2, vrna_path_options_t options)
This function is attached as an overloaded method path_direct() to objects of type fold_compound. The optional parameter options defaults to NULL if it is omitted.
Global vrna_path_direct_ub (vrna_fold_compound_t *fc, const char *s1, const char *s2, int maxE, vrna_path_options_t options)
This function is attached as an overloaded method path_direct() to objects of type fold_compound. The optional parameter maxE defaults to #INT_MAX - 1 if it is omitted, while the optional parameter options defaults to NULL. In case the function did not find a path with $E_{saddle} < E_{max}$ it returns an empty list.
Global vrna_path_findpath (vrna_fold_compound_t *fc, const char *s1, const char *s2, int width)
This function is attached as an overloaded method path_findpath() to objects of type fold_compound. The optional parameter width defaults to 1 if it is omitted.
Global vrna_path_findpath_saddle (vrna_fold_compound_t *fc, const char *s1, const char *s2, int width)
This function is attached as an overloaded method path_findpath_saddle() to objects of type fold_compound. The optional parameter width defaults to 1 if it is omitted.
Global vrna_path_findpath_saddle_ub (vrna_fold_compound_t *fc, const char *s1, const char *s2, int width, int maxE)
This function is attached as an overloaded method path_findpath_saddle() to objects of type fold_compound. The optional parameter width defaults to 1 if it is omitted, while the optional parameter maxE defaults to INF. In case the function did not find a path with $E_{saddle} < E_{max}$ the function returns a NULL object, i.e. undef for Perl and None for Python.
Global vrna_path_findpath_ub (vrna_fold_compound_t *fc, const char *s1, const char *s2, int width, int maxE)
This function is attached as an overloaded method path_findpath() to objects of type fold_compound. The optional parameter width defaults to 1 if it is omitted, while the optional parameter maxE defaults to INF. In case the function did not find a path with $E_{saddle} < E_{max}$ the function returns an empty list.
Global vrna_path_gradient (vrna_fold_compound_t *vc, short *pt, unsigned int options)
This function is attached as an overloaded method path_gradient() to objects of type fold_compound. The optional parameter options defaults to VRNA_PATH_DEFAULT if it is omitted.
Global vrna_path_options_findpath (int width, unsigned int type)
This function is available as overloaded function path_options_findpath(). The optional parameter width defaults to 10 if omitted, while the optional parameter type defaults to VRNA_PATH_TYPE_DOT_BRACKET.
Global vrna_path_random (vrna_fold_compound_t *vc, short *pt, unsigned int steps, unsigned int options)
This function is attached as an overloaded method path_gradient() to objects of type fold_compound. The optional parameter options defaults to VRNA_PATH_DEFAULT if it is omitted.
Global vrna_pbacktrack (vrna_fold_compound_t *fc)
This function is attached as overloaded method pbacktrack() to objects of type fold_compound. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack5 (vrna_fold_compound_t *fc, unsigned int length)
This function is attached as overloaded method pbacktrack5() to objects of type fold_compound. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack5_cb (vrna_fold_compound_t *fc, unsigned int num_samples, unsigned int length, vrna_boltzmann_sampling_callback *cb, void *data, unsigned int options)
This function is attached as overloaded method pbacktrack5() to objects of type fold_compound where the last argument options is optional with default value options = VRNA_PBACKTRACK_DEFAULT. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack5_num (vrna_fold_compound_t *fc, unsigned int num_samples, unsigned int length, unsigned int options)
This function is attached as overloaded method pbacktrack5() to objects of type fold_compound where the last argument options is optional with default value options = VRNA_PBACKTRACK_DEFAULT. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack5_resume (vrna_fold_compound_t *vc, unsigned int num_samples, unsigned int length, vrna_pbacktrack_mem_t *nr_mem, unsigned int options)
This function is attached as overloaded method pbacktrack5() to objects of type fold_compound. In addition to the list of structures, this function also returns the nr_mem data structure as first element. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack5_resume_cb (vrna_fold_compound_t *fc, unsigned int num_samples, unsigned int length, vrna_boltzmann_sampling_callback *cb, void *data, vrna_pbacktrack_mem_t *nr_mem, unsigned int options)
This function is attached as overloaded method pbacktrack5() to objects of type fold_compound. In addition to the number of structures backtraced, this function also returns the nr_mem data structure as first element. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack_cb (vrna_fold_compound_t *fc, unsigned int num_samples, vrna_boltzmann_sampling_callback *cb, void *data, unsigned int options)
This function is attached as overloaded method pbacktrack() to objects of type fold_compound where the last argument options is optional with default value options = VRNA_PBACKTRACK_DEFAULT. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack_num (vrna_fold_compound_t *fc, unsigned int num_samples, unsigned int options)
This function is attached as overloaded method pbacktrack() to objects of type fold_compound where the last argument options is optional with default value options = VRNA_PBACKTRACK_DEFAULT. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack_resume (vrna_fold_compound_t *fc, unsigned int num_samples, vrna_pbacktrack_mem_t *nr_mem, unsigned int options)
This function is attached as overloaded method pbacktrack() to objects of type fold_compound. In addition to the list of structures, this function also returns the nr_mem data structure as first element. See also Python Examples - Boltzmann Sampling
Global vrna_pbacktrack_resume_cb (vrna_fold_compound_t *fc, unsigned int num_samples, vrna_boltzmann_sampling_callback *cb, void *data, vrna_pbacktrack_mem_t *nr_mem, unsigned int options)
This function is attached as overloaded method pbacktrack() to objects of type fold_compound. In addition to the number of structures backtraced, this function also returns the nr_mem data structure as first element. See also Python Examples - Boltzmann Sampling
Global vrna_pf (vrna_fold_compound_t *vc, char *structure)
This function is attached as method pf() to objects of type fold_compound
Global vrna_pf_dimer (vrna_fold_compound_t *vc, char *structure)
This function is attached as method pf_dimer() to objects of type fold_compound
Global vrna_positional_entropy (vrna_fold_compound_t *fc)
This function is attached as method positional_entropy() to objects of type fold_compound
Global vrna_pr_energy (vrna_fold_compound_t *vc, double e)
This function is attached as method pr_energy() to objects of type fold_compound
Global vrna_pr_structure (vrna_fold_compound_t *fc, const char *structure)
This function is attached as method pr_structure() to objects of type fold_compound
Global vrna_rotational_symmetry (const char *string)
This function is available as global function rotational_symmetry(). See vrna_rotational_symmetry_pos() for details.
Global vrna_rotational_symmetry_db (vrna_fold_compound_t *fc, const char *structure)
This function is attached as method rotational_symmetry_db() to objects of type fold_compound (i.e. vrna_fold_compound_t). See vrna_rotational_symmetry_db_pos() for details.
Global vrna_rotational_symmetry_db_pos (vrna_fold_compound_t *fc, const char *structure, unsigned int **positions)
This function is attached as method rotational_symmetry_db() to objects of type fold_compound (i.e. vrna_fold_compound_t). Thus, the first argument must be omitted. In contrast to our C-implementation, this function doesn't simply return the order of rotational symmetry of the secondary structure, but returns the list position of cyclic permutation shifts that result in a rotationally symmetric structure. The length of the list then determines the order of rotational symmetry.
Global vrna_rotational_symmetry_num (const unsigned int *string, size_t string_length)
This function is available as global function rotational_symmetry(). See vrna_rotational_symmetry_pos() for details. Note, that in the target language the length of the list string is always known a-priori, so the parameter string_length must be omitted.
Global vrna_rotational_symmetry_pos (const char *string, unsigned int **positions)
This function is available as overloaded global function rotational_symmetry(). It merges the functionalities of vrna_rotational_symmetry(), vrna_rotational_symmetry_pos(), vrna_rotational_symmetry_num(), and vrna_rotational_symmetry_pos_num(). In contrast to our C-implementation, this function doesn't return the order of rotational symmetry as a single value, but returns a list of cyclic permutation shifts that result in a rotationally symmetric string. The length of the list then determines the order of rotational symmetry.
Global vrna_rotational_symmetry_pos_num (const unsigned int *string, size_t string_length, unsigned int **positions)
This function is available as global function rotational_symmetry(). See vrna_rotational_symmetry_pos() for details. Note, that in the target language the length of the list string is always known a-priori, so the parameter string_length must be omitted.
Global vrna_sc_add_bp (vrna_fold_compound_t *vc, int i, int j, FLT_OR_DBL energy, unsigned int options)

This function is attached as an overloaded method sc_add_bp() to objects of type fold_compound. The method either takes arguments for a single base pair (i,j) with the corresponding energy value:

Global vrna_sc_add_bt (vrna_fold_compound_t *vc, vrna_callback_sc_backtrack *f)
This function is attached as method sc_add_bt() to objects of type fold_compound
Global vrna_sc_add_data (vrna_fold_compound_t *vc, void *data, vrna_callback_free_auxdata *free_data)
This function is attached as method sc_add_data() to objects of type fold_compound
Global vrna_sc_add_exp_f (vrna_fold_compound_t *vc, vrna_callback_sc_exp_energy *exp_f)
This function is attached as method sc_add_exp_f() to objects of type fold_compound
Global vrna_sc_add_f (vrna_fold_compound_t *vc, vrna_callback_sc_energy *f)
This function is attached as method sc_add_f() to objects of type fold_compound
Global vrna_sc_add_hi_motif (vrna_fold_compound_t *vc, const char *seq, const char *structure, FLT_OR_DBL energy, unsigned int options)
This function is attached as method sc_add_hi_motif() to objects of type fold_compound
Global vrna_sc_add_SHAPE_deigan (vrna_fold_compound_t *vc, const double *reactivities, double m, double b, unsigned int options)
This function is attached as method sc_add_SHAPE_deigan() to objects of type fold_compound
Global vrna_sc_add_SHAPE_deigan_ali (vrna_fold_compound_t *vc, const char **shape_files, const int *shape_file_association, double m, double b, unsigned int options)
This function is attached as method sc_add_SHAPE_deigan_ali() to objects of type fold_compound
Global vrna_sc_add_SHAPE_zarringhalam (vrna_fold_compound_t *vc, const double *reactivities, double b, double default_value, const char *shape_conversion, unsigned int options)
This function is attached as method sc_add_SHAPE_zarringhalam() to objects of type fold_compound
Global vrna_sc_add_up (vrna_fold_compound_t *vc, int i, FLT_OR_DBL energy, unsigned int options)
This function is attached as an overloaded method sc_add_up() to objects of type fold_compound. The method either takes arguments for a single nucleotide $i $ with the corresponding energy value:
Global vrna_sc_init (vrna_fold_compound_t *vc)
This function is attached as method sc_init() to objects of type fold_compound
Global vrna_sc_remove (vrna_fold_compound_t *vc)
This function is attached as method sc_remove() to objects of type fold_compound
Global vrna_sc_set_bp (vrna_fold_compound_t *vc, const FLT_OR_DBL **constraints, unsigned int options)
This function is attached as method sc_set_bp() to objects of type fold_compound
Global vrna_sc_set_up (vrna_fold_compound_t *vc, const FLT_OR_DBL *constraints, unsigned int options)
This function is attached as method sc_set_up() to objects of type fold_compound
Global vrna_subopt (vrna_fold_compound_t *vc, int delta, int sorted, FILE *fp)
This function is attached as method subopt() to objects of type fold_compound
Global vrna_subopt_cb (vrna_fold_compound_t *vc, int delta, vrna_subopt_callback *cb, void *data)
This function is attached as method subopt_cb() to objects of type fold_compound
Global vrna_subopt_zuker (vrna_fold_compound_t *vc)
This function is attached as method subopt_zuker() to objects of type fold_compound
Global vrna_ud_remove (vrna_fold_compound_t *vc)
This function is attached as method ud_remove() to objects of type fold_compound
Global vrna_ud_set_data (vrna_fold_compound_t *vc, void *data, vrna_callback_free_auxdata *free_cb)
This function is attached as method ud_set_data() to objects of type fold_compound
Global vrna_ud_set_exp_prod_rule_cb (vrna_fold_compound_t *vc, vrna_callback_ud_exp_production *pre_cb, vrna_callback_ud_exp_energy *exp_e_cb)
This function is attached as method ud_set_exp_prod_rule_cb() to objects of type fold_compound
Global vrna_ud_set_prob_cb (vrna_fold_compound_t *vc, vrna_callback_ud_probs_add *setter, vrna_callback_ud_probs_get *getter)
This function is attached as method ud_set_prob_cb() to objects of type fold_compound
Global vrna_ud_set_prod_rule_cb (vrna_fold_compound_t *vc, vrna_callback_ud_production *pre_cb, vrna_callback_ud_energy *e_cb)
This function is attached as method ud_set_prod_rule_cb() to objects of type fold_compound