void compute_multivariate_num_differ_dim(int *number_differ_score_dim, int number_differ_lib, int differ_functnum, int *old_num_dim_differ, int which_differentiator) { *number_differ_score_dim= number_differ_lib; if (( *number_differ_score_dim > 1) || (differ_functnum==1)) *old_num_dim_differ= 7; else /** Used heuristic method to combine distance scores. **/ *old_num_dim_differ= 1; if (which_differentiator == 2) { (*number_differ_score_dim) *= 2; (*old_num_dim_differ) *=2; } /** Each dimension gets a pair of scores... the max and min. **/ } from initialize() differ_gauss_param[0] = ','; /*****************Round 2 of cuts. ****/ void initialize(int *number_classes, int *number_multi_lib0, int window_length[MAX_TABLE_NUMBER], double scale0s[MAX_TABLE_NUMBER], double scale0p[MAX_TABLE_NUMBER], FILE *fpin0, char *likelihoods00, char *pir_name0, char *print, char gauss_param[2][MAXLINE], int *mode,double prior_freq_single[MAX_TABLE_NUMBER], double prior_freq_pair[MAX_TABLE_NUMBER], int structural_pos[POSNUM+1]) changed to void initialize( int *number_multi_lib0, int window_length[MAX_TABLE_NUMBER], double scale0s[MAX_TABLE_NUMBER], double scale0p[MAX_TABLE_NUMBER], FILE *fpin0, char *likelihoods00, char *pir_name0, char *print, char gauss_param[2][MAXLINE], int *mode) CUT *number_classes=0; prior_freq_single[i]=0; prior_freq_pair[i]=0; for (i=0; i< POSNUM; i++) structural_pos[i] = i; structural_pos[POSNUM] = -1; cut /*** If number_multi_lib > 1 or there is only 1 functnum (singleton dist) **/ /*** then each distance is a dimension. Otherwise, the distances are **/ /*** combined heuristically in 1 library, so there is only one scoring dim **/ void compute_multivariate_num_dim(int mode, int *number_score_dim, int number_multi_lib[MAX_TABLE_NUMBER], int multi_functnum[MAX_TABLE_NUMBER], int number_tables, int new_num_dim_table[2], int old_num_dim_table[2]) { int the_table; if (mode & MULTI_TRIMER_PAIRS) { *number_score_dim=0; for (the_table=0; the_table< number_tables; the_table++) (*number_score_dim) += number_multi_lib[the_table]; new_num_dim_table[0] = number_multi_lib[0]; new_num_dim_table[1] = number_multi_lib[1]; if ((number_multi_lib[0] > 1) || (multi_functnum[0]==1)) old_num_dim_table[0]= 7; else old_num_dim_table[0]= 1; if ((number_multi_lib[1] > 1) || (multi_functnum[1]==1)) old_num_dim_table[1]=7; else old_num_dim_table[1]=1; } else { /** Only 1 score dimension for trimers, ignore lib */ (*number_score_dim) = number_multi_lib[0] + 1; /* 1 for trimer singles */ new_num_dim_table[0] = number_multi_lib[0]; new_num_dim_table[1] = 1; old_num_dim_table[1]=1; if ((number_multi_lib[0] > 1) || (multi_functnum[0]==1)) old_num_dim_table[0]= 7; else old_num_dim_table[0]= 1; } } Added int old_num_dim(int number_multi_lib, int number_of_distances) { if ( (number_multi_lib > 1) || (number_of_distances == 1)) return(7); else return(1); } in initialize() added init_class_prob[0] = .015; /* Dimer probability*/ init_class_prob[1] = .009; /* Trimer probablity*/ init_class_prob[2] = .976; /* Non-coiled prob. *