X-Git-Url: http://source.jalview.org/gitweb/?p=jpred.git;a=blobdiff_plain;f=sources%2Fmulticoil%2Festimate_probabilities.c;fp=sources%2Fmulticoil%2Festimate_probabilities.c;h=4d86185f7fde606b44d7d43a32062554163fe5e9;hp=0000000000000000000000000000000000000000;hb=9aa768067094f24f46f273077f867348e6143711;hpb=eb3001dc41bf6cd46e20fd13fe3efbe9dedf6013 diff --git a/sources/multicoil/estimate_probabilities.c b/sources/multicoil/estimate_probabilities.c new file mode 100644 index 0000000..4d86185 --- /dev/null +++ b/sources/multicoil/estimate_probabilities.c @@ -0,0 +1,478 @@ +#include +#include +#include "sc.h" +#include "scscore.h" +#include "scconst.h" +#include "options.h" +#include "switches.h" +#include "stats.h" + +/** The following are defined in scscore.c ***/ +extern double gprobs[NUM_RES_TYPE], gprobp[NUM_RES_TYPE][NUM_RES_TYPE][POSNUM]; + +/*** #define SCALE0 5 ***/ +/*** Now an extern variable ***/ /* scaling value for 0 probs */ +extern double SCALE0; +extern double gprobs[NUM_RES_TYPE], gprobp[NUM_RES_TYPE][NUM_RES_TYPE][POSNUM]; + +/* Takes the log of a double */ +double getdlog(double num) +{ + if (num) + return log(num); + else + return LOG0VAL; +} + +/* Takes the log of a long int */ +double getlog(long num) +{ + if (num) { + return log((double) num); + } + else + return LOG0VAL; +} + + +/**********************************************************************/ + + +void estimate_database_probs2(int tab, + long freqs[AANUM][POSNUM], long totals[POSNUM], + double many_pprobs[MAX_TABLE_NUMBER][NUM_RES_TYPE][POSNUM], + long freqp[AANUM][AANUM][POSNUM][POSNUM], long totalp[POSNUM][POSNUM], + double many_pprobp[MAX_TABLE_NUMBER] + [NUM_RES_TYPE][NUM_RES_TYPE][POSNUM][POSNUM], + int ProlineFreeWin) +{ + extern double SCALE0; + extern double scale0s[MAX_TABLE_NUMBER],scale0p[MAX_TABLE_NUMBER]; + + + SCALE0= scale0s[tab]; + calcpprobs(freqs, totals, many_pprobs[tab], ProlineFreeWin); + + SCALE0= scale0p[tab]; + calcpprobp(freqp, totalp, many_pprobs[tab], many_pprobp[tab], + ProlineFreeWin); +} + + + + +/*************************************************************************/ + +/****************************************************************************/ +/** If the file fgin == NULL so is not set in config file, use uniform dist. */ + +int setgprob_to_uniform(double gprobs[NUM_RES_TYPE], + double gprobp[NUM_RES_TYPE][NUM_RES_TYPE][POSNUM]) +{ + int res1, res2, dist; + + for (res1=0; res1