1 #ifndef VIENNA_RNA_PACKAGE_CONSTRAINTS_HARD_H 2 #define VIENNA_RNA_PACKAGE_CONSTRAINTS_HARD_H 4 #ifdef VRNA_WARN_DEPRECATED 5 # if defined(__clang__) 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 87 #define VRNA_CONSTRAINT_NO_HEADER 0 97 #define VRNA_CONSTRAINT_DB 16384U 110 #define VRNA_CONSTRAINT_DB_ENFORCE_BP 32768U 123 #define VRNA_CONSTRAINT_DB_PIPE 65536U 133 #define VRNA_CONSTRAINT_DB_DOT 131072U 142 #define VRNA_CONSTRAINT_DB_X 262144U 149 #define VRNA_CONSTRAINT_DB_ANG_BRACK 524288U 158 #define VRNA_CONSTRAINT_DB_RND_BRACK 1048576U 171 #define VRNA_CONSTRAINT_DB_INTRAMOL 2097152U 184 #define VRNA_CONSTRAINT_DB_INTERMOL 4194304U 196 #define VRNA_CONSTRAINT_DB_GQUAD 8388608U 198 #define VRNA_CONSTRAINT_DB_CANONICAL_BP 16777216U 208 #define VRNA_CONSTRAINT_DB_WUSS 33554432U 222 #define VRNA_CONSTRAINT_DB_DEFAULT \ 223 (VRNA_CONSTRAINT_DB \ 224 | VRNA_CONSTRAINT_DB_PIPE \ 225 | VRNA_CONSTRAINT_DB_DOT \ 226 | VRNA_CONSTRAINT_DB_X \ 227 | VRNA_CONSTRAINT_DB_ANG_BRACK \ 228 | VRNA_CONSTRAINT_DB_RND_BRACK \ 229 | VRNA_CONSTRAINT_DB_INTRAMOL \ 230 | VRNA_CONSTRAINT_DB_INTERMOL \ 231 | VRNA_CONSTRAINT_DB_GQUAD \ 240 #define VRNA_CONSTRAINT_CONTEXT_EXT_LOOP (unsigned char)0x01 248 #define VRNA_CONSTRAINT_CONTEXT_HP_LOOP (unsigned char)0x02 256 #define VRNA_CONSTRAINT_CONTEXT_INT_LOOP (unsigned char)0x04 264 #define VRNA_CONSTRAINT_CONTEXT_INT_LOOP_ENC (unsigned char)0x08 272 #define VRNA_CONSTRAINT_CONTEXT_MB_LOOP (unsigned char)0x10 280 #define VRNA_CONSTRAINT_CONTEXT_MB_LOOP_ENC (unsigned char)0x20 285 #define VRNA_CONSTRAINT_CONTEXT_ENFORCE (unsigned char)0x40 290 #define VRNA_CONSTRAINT_CONTEXT_NO_REMOVE (unsigned char)0x80 296 #define VRNA_CONSTRAINT_CONTEXT_NONE (unsigned char)0 301 #define VRNA_CONSTRAINT_CONTEXT_CLOSING_LOOPS (unsigned char)(VRNA_CONSTRAINT_CONTEXT_EXT_LOOP | \ 302 VRNA_CONSTRAINT_CONTEXT_HP_LOOP | \ 303 VRNA_CONSTRAINT_CONTEXT_INT_LOOP | \ 304 VRNA_CONSTRAINT_CONTEXT_MB_LOOP) 309 #define VRNA_CONSTRAINT_CONTEXT_ENCLOSED_LOOPS (unsigned char)(VRNA_CONSTRAINT_CONTEXT_INT_LOOP_ENC | \ 310 VRNA_CONSTRAINT_CONTEXT_MB_LOOP_ENC) 318 #define VRNA_CONSTRAINT_CONTEXT_ALL_LOOPS (unsigned char)(VRNA_CONSTRAINT_CONTEXT_CLOSING_LOOPS | \ 319 VRNA_CONSTRAINT_CONTEXT_ENCLOSED_LOOPS) 343 unsigned char loop_type;
344 unsigned char replace : 1;
375 #ifndef VRNA_DISABLE_C11_FEATURES 384 #ifndef VRNA_DISABLE_C11_FEATURES 388 unsigned char **matrix_local;
389 unsigned char *up_storage;
391 #ifndef VRNA_DISABLE_C11_FEATURES 519 unsigned char option);
555 unsigned char option);
578 unsigned char option);
639 const char *constraint,
643 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY 653 "Use vrna_message_constraint_options() instead");
662 "Use vrna_message_constraint_options_all() instead");
681 unsigned int idx_type),
682 "Use the new API and the hard constraint framework instead");
unsigned char options
The hard constraint option.
Definition: hard.h:437
void print_tty_constraint(unsigned int option)
Print structure constraint characters to stdout. (constraint support is specified by option parameter...
int * up_hp
A linear array that holds the number of allowed unpaired nucleotides in a hairpin loop...
Definition: hard.h:399
void constrain_ptypes(const char *constraint, unsigned int length, char *ptype, int *BP, int min_loop_size, unsigned int idx_type)
Insert constraining pair types according to constraint structure string.
Hard Constraints suitable for local structure prediction using window approach.
Definition: hard.h:330
int vrna_hc_add_from_db(vrna_fold_compound_t *vc, const char *constraint, unsigned int options)
Add hard constraints from pseudo dot-bracket notation.
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:132
Default Hard Constraints.
Definition: hard.h:329
unsigned char( vrna_callback_hc_evaluate)(int i, int j, int k, int l, unsigned char d, void *data)
Callback to evaluate whether or not a particular decomposition step is contributing to the solution s...
Definition: hard.h:75
int * up_ml
A linear array that holds the number of allowed unpaired nucleotides in a multi branched loop...
Definition: hard.h:405
void vrna_hc_add_bp_nonspecific(vrna_fold_compound_t *vc, int i, int d, unsigned char option)
Enforce a nucleotide to be paired (upstream/downstream)
void vrna_message_constraint_options_all(void)
Print structure constraint characters to stdout (full constraint support)
Functions and data structures for constraining secondary structure predictions and evaluation...
A single hard constraint for a single nucleotide.
Definition: hard.h:435
vrna_callback_hc_evaluate * f
A function pointer that returns whether or not a certain decomposition may be evaluated.
Definition: hard.h:409
void * data
A pointer to some structure where the user may store necessary data to evaluate its generic hard cons...
Definition: hard.h:413
unsigned char * matrix
Upper triangular matrix that encodes where a base pair or unpaired nucleotide is allowed.
Definition: hard.h:380
void( vrna_callback_free_auxdata)(void *data)
Callback to free memory allocated for auxiliary user-provided data.
Definition: fold_compound.h:46
The hard constraints data structure.
Definition: hard.h:371
void vrna_hc_add_f(vrna_fold_compound_t *vc, vrna_callback_hc_evaluate *f)
Add a function pointer pointer for the generic hard constraint feature.
int * up_ext
A linear array that holds the number of allowed unpaired nucleotides in an exterior loop...
Definition: hard.h:396
int vrna_hc_add_up_batch(vrna_fold_compound_t *vc, vrna_hc_up_t *constraints)
Apply a list of hard constraints for single nucleotides.
int * up_int
A linear array that holds the number of allowed unpaired nucleotides in an interior loop...
Definition: hard.h:402
vrna_hc_type_e
The hard constraints type.
Definition: hard.h:328
void print_tty_constraint_full(void)
Print structure constraint characters to stdout (full constraint support)
A base pair hard constraint.
Definition: hard.h:340
void vrna_message_constraint_options(unsigned int option)
Print a help message for pseudo dot-bracket structure constraint characters to stdout. (constraint support is specified by option parameter)
void vrna_hc_add_bp(vrna_fold_compound_t *vc, int i, int j, unsigned char option)
Favorize/Enforce a certain base pair (i,j)
vrna_callback_free_auxdata * free_data
A pointer to a function to free memory occupied by auxiliary data.
Definition: hard.h:418
void vrna_hc_add_data(vrna_fold_compound_t *vc, void *data, vrna_callback_free_auxdata *f)
Add an auxiliary data structure for the generic hard constraints callback function.
The Basic Fold Compound API.
int position
The sequence position (1-based)
Definition: hard.h:436
void vrna_hc_init(vrna_fold_compound_t *vc)
Initialize/Reset hard constraints to default values.
void vrna_hc_add_up(vrna_fold_compound_t *vc, int i, unsigned char option)
Make a certain nucleotide unpaired.
void vrna_hc_free(vrna_hc_t *hc)
Free the memory allocated by a vrna_hc_t data structure.