MCPcopy Create free account
hub / github.com/THUNLP-MT/MEAN / standard_TMscore

Function standard_TMscore

evaluation/TMscore.cpp:5677–5745  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5675}
5676
5677double standard_TMscore(double **r1, double **r2, double **xtm, double **ytm,
5678 double **xt, double **x, double **y, int xlen, int ylen, int invmap[],
5679 int& L_ali, double& RMSD, double D0_MIN, double Lnorm, double d0,
5680 double d0_search, double score_d8, double t[3], double u[3][3],
5681 const int mol_type)
5682{
5683 D0_MIN = 0.5;
5684 Lnorm = ylen;
5685 if (mol_type>0) // RNA
5686 {
5687 if (Lnorm<=11) d0=0.3;
5688 else if(Lnorm>11 && Lnorm<=15) d0=0.4;
5689 else if(Lnorm>15 && Lnorm<=19) d0=0.5;
5690 else if(Lnorm>19 && Lnorm<=23) d0=0.6;
5691 else if(Lnorm>23 && Lnorm<30) d0=0.7;
5692 else d0=(0.6*pow((Lnorm*1.0-0.5), 1.0/2)-2.5);
5693 }
5694 else
5695 {
5696 if (Lnorm > 21) d0=(1.24*pow((Lnorm*1.0-15), 1.0/3) -1.8);
5697 else d0 = D0_MIN;
5698 if (d0 < D0_MIN) d0 = D0_MIN;
5699 }
5700 double d0_input = d0;// Scaled by seq_min
5701
5702 double tmscore;// collected alined residues from invmap
5703 int n_al = 0;
5704 int i;
5705 for (int j = 0; j<ylen; j++)
5706 {
5707 i = invmap[j];
5708 if (i >= 0)
5709 {
5710 xtm[n_al][0] = x[i][0];
5711 xtm[n_al][1] = x[i][1];
5712 xtm[n_al][2] = x[i][2];
5713
5714 ytm[n_al][0] = y[j][0];
5715 ytm[n_al][1] = y[j][1];
5716 ytm[n_al][2] = y[j][2];
5717
5718 r1[n_al][0] = x[i][0];
5719 r1[n_al][1] = x[i][1];
5720 r1[n_al][2] = x[i][2];
5721
5722 r2[n_al][0] = y[j][0];
5723 r2[n_al][1] = y[j][1];
5724 r2[n_al][2] = y[j][2];
5725
5726 n_al++;
5727 }
5728 else if (i != -1) PrintErrorAndQuit("Wrong map!\n");
5729 }
5730 L_ali = n_al;
5731
5732 Kabsch(r1, r2, n_al, 0, &RMSD, t, u);
5733 RMSD = sqrt( RMSD/(1.0*n_al) );
5734

Callers 1

TMscore_mainFunction · 0.85

Calls 3

PrintErrorAndQuitFunction · 0.85
KabschFunction · 0.85
TMscore8_search_standardFunction · 0.85

Tested by

no test coverage detected