RNAlib-2.0.2
H/alifold.h
Go to the documentation of this file.
00001 #ifndef __VIENNA_RNA_PACKAGE_ALIFOLD_H__
00002 #define __VIENNA_RNA_PACKAGE_ALIFOLD_H__
00003 
00004 #include "data_structures.h"
00005 
00018 extern  double  cv_fact;
00025 extern  double  nc_fact;
00026 
00027 /*
00028 ##############################################
00029 # MFE VARIANTS OF THE ALIFOLD IMPLEMENTATION #
00030 ##############################################
00031 */
00032 
00039 void update_alifold_params(void);
00040 
00041 
00057 float  alifold( const char **strings,
00058                 char *structure);
00059 
00060 
00069 float  circalifold( const char **strings,
00070                     char *structure);
00071 
00075 FLT_OR_DBL  *alipf_export_bppm(void);
00076 
00077 
00081 void    free_alifold_arrays(void);
00082 
00092 int get_mpi(char *Alseq[],
00093             int n_seq,
00094             int length,
00095             int *mini);
00096 
00100 float   **readribosum(char *name);
00101 
00113 float   energy_of_alistruct(const char **sequences,
00114                             const char *structure,
00115                             int n_seq,
00116                             float *energy);
00117 
00118 /*
00119 #############################################################
00120 # some helper functions that might be useful in the library #
00121 #############################################################
00122 */
00123 
00137 void encode_ali_sequence( const char *sequence,
00138                           short *S,
00139                           short *s5,
00140                           short *s3,
00141                           char *ss,
00142                           unsigned short *as,
00143                           int circ);
00144 
00160 void  alloc_sequence_arrays(const char **sequences,
00161                             short ***S,
00162                             short ***S5,
00163                             short ***S3,
00164                             unsigned short ***a2s,
00165                             char ***Ss,
00166                             int circ);
00167 
00182 void  free_sequence_arrays( unsigned int n_seq,
00183                             short ***S,
00184                             short ***S5,
00185                             short ***S3,
00186                             unsigned short ***a2s,
00187                             char ***Ss);
00188 
00189 /*
00190 #############################################################
00191 # PARTITION FUNCTION VARIANTS OF THE ALIFOLD IMPLEMENTATION #
00192 #############################################################
00193 */
00194 
00209 float alipf_fold( const char **sequences,
00210                   char *structure,
00211                   plist **pl);
00212 
00221 float alipf_circ_fold(const char **sequences,
00222                       char *structure,
00223                       plist **pl);
00224 
00234 FLT_OR_DBL *export_ali_bppm(void);
00235 
00239 void  free_alipf_arrays(void);
00240 
00247 char  *alipbacktrack(double *prob) ;
00248 
00249 #endif