1, collect those residues with dis<d; 2, calculate TMscore
| 4187 | // 1, collect those residues with dis<d; |
| 4188 | // 2, calculate TMscore |
| 4189 | int score_fun8( double **xa, double **ya, int n_ali, double d, int i_ali[], |
| 4190 | double *score1, int score_sum_method, const double Lnorm, |
| 4191 | const double score_d8, const double d0) |
| 4192 | { |
| 4193 | double score_sum=0, di; |
| 4194 | double d_tmp=d*d; |
| 4195 | double d02=d0*d0; |
| 4196 | double score_d8_cut = score_d8*score_d8; |
| 4197 | |
| 4198 | int i, n_cut, inc=0; |
| 4199 | |
| 4200 | while(1) |
| 4201 | { |
| 4202 | n_cut=0; |
| 4203 | score_sum=0; |
| 4204 | for(i=0; i<n_ali; i++) |
| 4205 | { |
| 4206 | di = dist(xa[i], ya[i]); |
| 4207 | if(di<d_tmp) |
| 4208 | { |
| 4209 | i_ali[n_cut]=i; |
| 4210 | n_cut++; |
| 4211 | } |
| 4212 | if(score_sum_method==8) |
| 4213 | { |
| 4214 | if(di<=score_d8_cut) score_sum += 1/(1+di/d02); |
| 4215 | } |
| 4216 | else score_sum += 1/(1+di/d02); |
| 4217 | } |
| 4218 | //there are not enough feasible pairs, relieve the threshold |
| 4219 | if(n_cut<3 && n_ali>3) |
| 4220 | { |
| 4221 | inc++; |
| 4222 | double dinc=(d+inc*0.5); |
| 4223 | d_tmp = dinc * dinc; |
| 4224 | } |
| 4225 | else break; |
| 4226 | } |
| 4227 | |
| 4228 | *score1=score_sum/Lnorm; |
| 4229 | return n_cut; |
| 4230 | } |
| 4231 | |
| 4232 | int score_fun8_standard(double **xa, double **ya, int n_ali, double d, |
| 4233 | int i_ali[], double *score1, int score_sum_method, |
no test coverage detected