1#ifndef VIENNA_RNA_PACKAGE_STRING_UTILS_H
2#define VIENNA_RNA_PACKAGE_STRING_UTILS_H
4#ifdef VRNA_WARN_DEPRECATED
6# define DEPRECATED(func, msg) func __attribute__ ((deprecated("", msg)))
7# elif defined(__GNUC__)
8# define DEPRECATED(func, msg) func __attribute__ ((deprecated(msg)))
10# define DEPRECATED(func, msg) func
13# define DEPRECATED(func, msg) func
41#ifndef FILENAME_MAX_LENGTH
49#define FILENAME_MAX_LENGTH 80
57#define FILENAME_ID_LENGTH 42
159#define VRNA_TRIM_LEADING 1U
165#define VRNA_TRIM_TRAILING 2U
171#define VRNA_TRIM_IN_BETWEEN 4U
177#define VRNA_TRIM_SUBST_BY_FIRST 8U
183#define VRNA_TRIM_DEFAULT ( VRNA_TRIM_LEADING | VRNA_TRIM_TRAILING )
189#define VRNA_TRIM_ALL ( VRNA_TRIM_DEFAULT | VRNA_TRIM_IN_BETWEEN )
239 const char *delimiters,
241 unsigned int options);
292 const char *delimiter);
296vrna_strjoin(
const char **strings,
297 const char *delimiter);
309 const char symbols[]);
447#ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
455 "Use vrna_seq_toupper() instead");
464 "Use vrna_seq_toRNA() instead");
472 const char symbols[]),
473 "Use vrna_random_string() instead");
483 "Use vrna_hamming_distance() instead");
494 "Use vrna_hamming_distance_bound() instead");
Various data structures and pre-processor macros.
int vrna_strcat_vprintf(char **dest, const char *format, va_list args)
Safely append a formatted string to another string.
int vrna_hamming_distance(const char *s1, const char *s2)
Calculate hamming distance between two sequences.
char * vrna_cut_point_insert(const char *string, int cp)
Add a separating '&' character into a string according to cut-point position.
void vrna_seq_toupper(char *sequence)
Convert an input sequence to uppercase.
char * vrna_DNA_complement(const char *sequence)
Retrieve a DNA sequence which resembles the complement of the input sequence.
char * vrna_seq_ungapped(const char *sequence)
Remove gap characters from a nucleotide sequence.
int vrna_hamming_distance_bound(const char *s1, const char *s2, int n)
Calculate hamming distance between two sequences up to a specified length.
char * vrna_strdup_printf(const char *format,...)
Safely create a formatted string.
char * vrna_strdup_vprintf(const char *format, va_list argp)
Safely create a formatted string.
char * vrna_random_string(int l, const char symbols[])
Create a random string using characters from a specified symbol set.
int vrna_strcat_printf(char **dest, const char *format,...)
Safely append a formatted string to another string.
void vrna_seq_toRNA(char *sequence)
Convert an input sequence (possibly containing DNA alphabet characters) to RNA alphabet.
unsigned int vrna_strtrim(char *string, const char *delimiters, unsigned int keep, unsigned int options)
Trim a string by removing (multiple) occurences of a particular character.
void vrna_seq_reverse(char *sequence)
Reverse a string in-place.
char * vrna_cut_point_remove(const char *string, int *cp)
Remove a separating '&' character from a string.
char ** vrna_strsplit(const char *string, const char *delimiter)
Split a string into tokens using a delimiting character.
void str_uppercase(char *sequence)
Convert an input sequence to uppercase.
int hamming_bound(const char *s1, const char *s2, int n)
Calculate hamming distance between two sequences up to a specified length.
void str_DNA2RNA(char *sequence)
Convert a DNA input sequence to RNA alphabet.
char * random_string(int l, const char symbols[])
Create a random string using characters from a specified symbol set.
int hamming(const char *s1, const char *s2)
Calculate hamming distance between two sequences.