RNAlib-2.4.11
part_func.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_PART_FUNC_H
2 #define VIENNA_RNA_PACKAGE_PART_FUNC_H
3 
9 
10 
11 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
12 
17 typedef struct vrna_dimer_pf_s cofoldF;
18 
19 #endif
20 
21 
23 #include <ViennaRNA/params/basic.h>
24 #include <ViennaRNA/centroid.h>
27 
28 #ifdef VRNA_WARN_DEPRECATED
29 # if defined(__clang__)
30 # define DEPRECATED(func, msg) func __attribute__ ((deprecated("", msg)))
31 # elif defined(__GNUC__)
32 # define DEPRECATED(func, msg) func __attribute__ ((deprecated(msg)))
33 # else
34 # define DEPRECATED(func, msg) func
35 # endif
36 #else
37 # define DEPRECATED(func, msg) func
38 #endif
39 
49 /*
50 #################################################
51 # PARTITION FUNCTION COMPUTATION #
52 #################################################
53 */
54 
96  /* free energies for: */
97  double F0AB;
98  double FAB;
99  double FcAB;
100  double FA;
101  double FB;
102 };
103 
137 float vrna_pf(vrna_fold_compound_t *vc, char *structure);
138 
159  char *structure);
160 
161 /* End basic global interface */
190 float vrna_pf_fold(const char *sequence, char *structure, vrna_ep_t **pl);
191 
216 float vrna_pf_circfold(const char *sequence, char *structure, vrna_ep_t **pl);
217 
239 float vrna_pf_alifold(const char **sequences, char *structure, vrna_ep_t **pl);
240 
265 float vrna_pf_circalifold(const char **sequences, char *structure, vrna_ep_t **pl);
266 
267 
295 vrna_pf_co_fold(const char *seq,
296  char *structure,
297  vrna_ep_t **pl);
298 
299 
300 /* End simplified global interface */
305 /*
306 #################################################
307 # OTHER PARTITION FUNCTION RELATED DECLARATIONS #
308 #################################################
309 */
310 
320 int vrna_pf_float_precision(void);
321 
322 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
323 
324 /*
325 #################################################
326 # DEPRECATED FUNCTIONS #
327 #################################################
328 */
329 
342 extern int st_back;
343 
384 DEPRECATED(float pf_fold_par( const char *sequence,
385  char *structure,
386  vrna_exp_param_t *parameters,
387  int calculate_bppm,
388  int is_constrained,
389  int is_circular),
390 "Use the new API and vrna_pf() instead");
391 
431 DEPRECATED(float pf_fold(const char *sequence,
432  char *structure),
433 "Use vrna_pf_fold() or vrna_pf() instead");
434 
461 DEPRECATED(float pf_circ_fold( const char *sequence,
462  char *structure),
463 "Use vrna_pf_circfold() or vrna_pf() instead");
464 
475 DEPRECATED(char *pbacktrack(char *sequence), "Use vrna_pbacktrack() instead");
476 
477 DEPRECATED(char *pbacktrack5(char *sequence, int length), "Use vrna_pbacktrack5() instead");
478 
494 DEPRECATED(char *pbacktrack_circ(char *sequence), "Use vrna_pbacktrack() instead");
495 
514 DEPRECATED(void free_pf_arrays(void), "This function is obsolete");
515 
527 DEPRECATED(void update_pf_params(int length), "This function is obsolete");
528 
537 DEPRECATED(void update_pf_params_par(int length, vrna_exp_param_t *parameters),
538 "Use the new API with vrna_fold_compound_t instead");
539 
557 DEPRECATED(FLT_OR_DBL *export_bppm(void),
558 "Use the new API with vrna_fold_compound_t instead");
559 
560 
577 DEPRECATED(int get_pf_arrays(short **S_p,
578  short **S1_p,
579  char **ptype_p,
580  FLT_OR_DBL **qb_p,
581  FLT_OR_DBL **qm_p,
582  FLT_OR_DBL **q1k_p,
583  FLT_OR_DBL **qln_p),
584 "Use the new API with vrna_fold_compound_t instead");
585 
591 DEPRECATED(double get_subseq_F(int i, int j),
592 "Use the new API with vrna_fold_compound_t instead");
593 
594 
606 DEPRECATED(double mean_bp_distance(int length),
607 "Use vrna_mean_bp_distance() or vrna_mean_bp_distance_pr() instead");
608 
626 DEPRECATED(double mean_bp_distance_pr(int length, FLT_OR_DBL *pr),
627 "Use vrna_mean_bp_distance() or vrna_mean_bp_distance_pr() instead");
628 
636 DEPRECATED(vrna_ep_t *stackProb(double cutoff), "Use vrna_stack_prob() instead");
637 
638 
646 DEPRECATED(void init_pf_fold(int length), "This function is obsolete");
647 
652 DEPRECATED(char *centroid(int length, double *dist),
653 "Use vrna_centroid() instead");
654 
659 DEPRECATED(char *get_centroid_struct_gquad_pr(int length,
660  double *dist),
661 "Use vrna_centroid() instead");
662 
668 DEPRECATED(double mean_bp_dist(int length),
669 "Use vrna_mean_bp_distance() or vrna_mean_bp_distance_pr() instead");
670 
674 DEPRECATED(double expLoopEnergy(int u1,
675  int u2,
676  int type,
677  int type2,
678  short si1,
679  short sj1,
680  short sp1,
681  short sq1),
682 "");
683 
687 DEPRECATED(double expHairpinEnergy( int u,
688  int type,
689  short si1,
690  short sj1,
691  const char *string),
692 "");
693 
694 /* this doesn't work if free_pf_arrays() is called before */
695 DEPRECATED(void assign_plist_gquad_from_pr(vrna_ep_t **pl,
696  int length,
697  double cut_off),
698 "Use vrna_plist_from_probs() instead");
699 
700 #endif
701 
702 #endif
float vrna_pf_circalifold(const char **sequences, char *structure, vrna_ep_t **pl)
Compute Partition function (and base pair probabilities) for an alignment of circular RNA sequences ...
vrna_ep_t * stackProb(double cutoff)
Get the probability of stacks.
int get_pf_arrays(short **S_p, short **S1_p, char **ptype_p, FLT_OR_DBL **qb_p, FLT_OR_DBL **qm_p, FLT_OR_DBL **q1k_p, FLT_OR_DBL **qln_p)
Get the pointers to (almost) all relavant computation arrays used in partition function computation...
float pf_fold(const char *sequence, char *structure)
Compute the partition function of an RNA sequence.
int vrna_pf_float_precision(void)
Find out whether partition function computations are using single precision floating points...
char * get_centroid_struct_gquad_pr(int length, double *dist)
void update_pf_params(int length)
Recalculate energy parameters.
double FAB
all states with DuplexInit correction
Definition: part_func.h:98
float pf_fold_par(const char *sequence, char *structure, vrna_exp_param_t *parameters, int calculate_bppm, int is_constrained, int is_circular)
Compute the partition function for a given RNA sequence.
float vrna_pf_fold(const char *sequence, char *structure, vrna_ep_t **pl)
Compute Partition function (and base pair probabilities) for an RNA sequence using a comparative met...
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: basic.h:43
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:132
float pf_circ_fold(const char *sequence, char *structure)
Compute the partition function of a circular RNA sequence.
double FB
monomer B
Definition: part_func.h:101
Equilibrium Probability implementations.
vrna_dimer_pf_t vrna_pf_co_fold(const char *seq, char *structure, vrna_ep_t **pl)
Calculate partition function and base pair probabilities of nucleic acid/nucleic acid dimers...
double mean_bp_distance(int length)
Get the mean base pair distance of the last partition function computation.
double expHairpinEnergy(int u, int type, short si1, short sj1, const char *string)
vrna_dimer_pf_t vrna_pf_dimer(vrna_fold_compound_t *vc, char *structure)
Calculate partition function and base pair probabilities of nucleic acid/nucleic acid dimers...
void init_pf_fold(int length)
Allocate space for pf_fold()
Data structure returned by vrna_pf_dimer()
Definition: part_func.h:95
Various data structures and pre-processor macros.
double get_subseq_F(int i, int j)
Get the free energy of a subsequence from the q[] array.
float vrna_pf_circfold(const char *sequence, char *structure, vrna_ep_t **pl)
Compute Partition function (and base pair probabilities) for a circular RNA sequences using a compar...
int st_back
Flag indicating that auxilary arrays are needed throughout the computations. This is essential for st...
char * centroid(int length, double *dist)
The data structure that contains temperature scaled Boltzmann weights of the energy parameters...
Definition: basic.h:102
Boltzmann Sampling of secondary structures from the ensemble.
float vrna_pf_alifold(const char **sequences, char *structure, vrna_ep_t **pl)
Compute Partition function (and base pair probabilities) for an RNA sequence alignment using a compa...
double mean_bp_distance_pr(int length, FLT_OR_DBL *pr)
Get the mean base pair distance in the thermodynamic ensemble.
double FA
monomer A
Definition: part_func.h:100
char * pbacktrack_circ(char *sequence)
Sample a secondary structure of a circular RNA from the Boltzmann ensemble according its probability...
void free_pf_arrays(void)
Free arrays for the partition function recursions.
void update_pf_params_par(int length, vrna_exp_param_t *parameters)
Recalculate energy parameters.
FLT_OR_DBL * pr
A pointer to the base pair probability matrix.
Functions to deal with sets of energy parameters.
FLT_OR_DBL * export_bppm(void)
Get a pointer to the base pair probability array.
char * pbacktrack(char *sequence)
Sample a secondary structure from the Boltzmann ensemble according its probability.
double expLoopEnergy(int u1, int u2, int type, int type2, short si1, short sj1, short sp1, short sq1)
double mean_bp_dist(int length)
Data structure representing a single entry of an element probability list (e.g. list of pair probabil...
Definition: structures.h:358
double F0AB
Null model without DuplexInit.
Definition: part_func.h:97
float vrna_pf(vrna_fold_compound_t *vc, char *structure)
Compute the partition function for a given RNA sequence, or sequence alignment.
Centroid structure computation.
double FcAB
true hybrid states only
Definition: part_func.h:99