1 #ifndef VIENNA_RNA_PACKAGE_PROFILEDIST_H 2 #define VIENNA_RNA_PACKAGE_PROFILEDIST_H 3 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))) 9 # else 10 # define DEPRECATED(func, msg) func 11 # endif 12 #else 13 # define DEPRECATED(func, msg) func 14 #endif 15 16 #include <ViennaRNA/datastructures/basic.h> 17 18 /** \file profiledist.h */ 19 20 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY 21 22 /** 23 * \brief Align the 2 probability profiles T1, T2\n 24 * 25 * This is like a Needleman-Wunsch alignment, 26 * we should really use affine gap-costs ala Gotoh 27 */ 28 float profile_edit_distance(const float *T1, 29 const float *T2); 30 31 32 /** 33 * \brief condense pair probability matrix into a vector containing probabilities 34 * for unpaired, upstream paired and downstream paired. 35 * 36 * This resulting probability profile is used as input for profile_edit_distance 37 * 38 * \param bppm A pointer to the base pair probability matrix 39 * \param length The length of the sequence 40 * \returns The bp profile 41 */ 42 float *Make_bp_profile_bppm(FLT_OR_DBL *bppm, 43 int length); 44 45 46 /** 47 * \brief print string representation of probability profile 48 */ 49 void print_bppm(const float *T); 50 51 52 /** 53 * \brief free space allocated in Make_bp_profile 54 * 55 * Backward compatibility only. You can just use plain free() 56 */ 57 void free_profile(float *T); 58 59 60 /** 61 * \note This function is NOT threadsafe 62 * 63 * \see Make_bp_profile_bppm() 64 * 65 * \deprecated This function is deprecated and will be removed soon! See \ref Make_bp_profile_bppm() for a replacement 66 * 67 */ 68 DEPRECATED(float *Make_bp_profile(int length), 69 "Use Make_bp_profile_bppm() instead"); 70 71 #endif 72 73 #endif 74