////////////////////////////////////////////////////////////////////////////// // Gauss Integrals Tuned- A tool for describing protein backbone geometry // // // // Author: Peter R{\o}gen // ////////////////////////////////////////////////////////////////////////////// /* Copyright (c) The researchers and professors of the Technical University of Denmark. All Rights Reserved This program may as of May 11'th 2011 be dawnloades and used under the GNU general Public License version 3 CITATIONS For publication of results, please cite: P. R{\o}gen, Evaluating protein structure descriptors and tuning Gauss integral based descriptors: Journal of Physics Condensed Matter, vol: 17, pages: 1523-1538, 2005. */ #include #include #include #include #include #include #define MAXLENGTH 874 #define dipeptide 0 #define CylinderTransform 0 #define SubtractAverageProtein 1 #define SmoothenBackBone 1 /* 1 for smoothing of the carbon alpha curve */ /* 0 for the carbon alpha curve */ FILE *farrayo, *ferroro, *favgauss; double twoPI=2.0*M_PI; double epsi=0.01; double polyl[MAXLENGTH][3]; double testpolyl[14][3]={{10,10,10},{0,0,0},{1,0,0},{1,1.1,0},{1,2,0},{0,2,0},{0,2,1},{1-0.00009,2,1},{1,1,1},{1-0.00009,1,0.5},{1-0.00009,1,0.3},{1-0.00009,1,0.1},{1-0.00009,1,-0.5},{1-0.00009,1,-1}}; double unitvectors[MAXLENGTH][MAXLENGTH][3]; double omega[MAXLENGTH][MAXLENGTH]; double absomega[MAXLENGTH][MAXLENGTH]; double partsum[MAXLENGTH][MAXLENGTH]; double abspartsum[MAXLENGTH][MAXLENGTH]; double refGauss[MAXLENGTH+1000][29]; double len; int nres, n_proteins=0; char GlobalOneLetterId[MAXLENGTH]; int SequinceInteger[MAXLENGTH]; double rnd(void); double length(double vec[3]); double dot(double vec1[3],double vec2[3]); void geovec(double vec2_minus_vec1[3], double vec1[3], double vec2[3]); void unit(double uvec[3],double vec[3]); void cross(double crossvec[3],double vec1[3],double vec2[3]); double determinant(double vec1[3],double vec2[3],double vec3[3]); double spangle(double vec1[3], double vec2[3], double vec3[3]); int intersectiontrianglelinesegment(double a[3],double b[3],double c[3],double p1[3],double p2[3]); void PerturbBackBone(double ampitude); void OrtogonalPerturbBackBone(double ampitude); void SmoothenTheBackbone(void); double presplinedeformationsmoothorg(double measurevalue, int measurenumber); double presplinedeformationsmoothnew(double measurevalue, int measurenumber); double splinedeformationsmoothorg(double measurevalue, int measurenumber); double splinedeformationsmoothnew(double measurevalue, int measurenumber); double presplinedeformationCalphaorg(double measurevalue, int measurenumber); double presplinedeformationCalphanew(double measurevalue, int measurenumber); double splinedeformationCalphaorg(double measurevalue, int measurenumber); double splinedeformationCalphanew(double measurevalue, int measurenumber); double splinefun(double t); void createunitvectors(void); void createomega(void); void createpartsums(void); double mixedsums(int a, int b, int c, int d); double absmixedsums(int a, int b, int c, int d); double int12(void); double inta12(void); double int12_34(void); double inta12_34(void); double int12_a34(void); double inta12_a34(void); double int13_24(void); double inta13_24(void); double int13_a24(void); double inta13_a24(void); double int14_23(void); double inta14_23(void); double int14_a23(void); double inta14_a23(void); double int12_34_56(void); double int12_35_46(void); double int12_36_45(void); double int13_24_56(void); double int13_25_46(void); double int13_26_45(void); double int14_23_56(void); double int14_25_36(void); double int14_26_35(void); double int15_23_46(void); double int15_24_36(void); double int15_26_34(void); double int15_26_34(void); double int16_23_45(void); double int16_24_35(void); double int16_25_34(void); double distance(void); void GaussIntegrals(void); void print_dipeptide_frequeces(void); int Three2IntegerProteinId(char ThreeLeterAmno[3]); void peters_funktion(char *dir, char *fname); void dirwalk(char *dir) { char name[1024]; struct dirent *dp; DIR *dfd; if ((dfd=opendir(dir))==NULL) { printf("Sorry - could not open directory <%s>\n",dir); return; } while ((dp=readdir(dfd))!=NULL) { if (strcmp(dp->d_name,".")==0 || strcmp(dp->d_name,"..")==0) continue; sprintf(name,"%s/%s",dir,dp->d_name); if (dp->d_name[strlen(dp->d_name)-4]=='.' && dp->d_name[strlen(dp->d_name)-3]=='p' && dp->d_name[strlen(dp->d_name)-2]=='d' && dp->d_name[strlen(dp->d_name)-1]=='b') { printf("%i It's %s\n",n_proteins,dp->d_name); peters_funktion(dir,dp->d_name); } } closedir(dfd); } char line[1000]; int getatom(FILE *fi) { char *cp; while (cp=fgets(line,999,fi),strstr(line,"ATOM")!=line && cp!=NULL); if (cp==NULL) return 0; return 1; } int getatomchain(FILE *fi, char chain)/* || (line[21]==' ' && chain='0' */ { char *cp; while ((cp=fgets(line,999,fi))!=NULL && strstr(line,"ATOM")!=line && cp!=NULL && !(line[21]==chain || chain=='0')); if (cp==NULL) return 0; return 1; } void peters_funktion(char *dir, char *fname) { FILE *fi; double x, y, z; int nr, no=-1500, link_count=0, start_chain,i; char chain_name, new_chain_name; char ThreeLeterAmno[3]; char dir_fname[1024], *cp; strcpy(dir_fname,dir); strcat(dir_fname,fname); fi=fopen(dir_fname,"r"); chain_name='a'; loop: if (getatom(fi)==0) { if(link_count9) { if(dipeptide==0){fprintf(farrayo,"%s %c %i ", fname,chain_name,no-start_chain+1-link_count);} if(dipeptide==1){fprintf(farrayo,"%s ",fname);} nres=link_count; printf(" number of residues in chain %c is %i\n",chain_name,link_count); GaussIntegrals(); fclose(fi); return; } fclose(fi); return; } sscanf(line+22,"%4i",&nr); sscanf(line+21,"%1c",&new_chain_name); if(new_chain_name==' ') new_chain_name='0'; if (nr!=no && line[13]=='C' && line[14]=='A') { if(new_chain_name!=chain_name && chain_name!='a') { if(link_count9) { /* printing pdb entry fprintf(farrayo,"%c%c%c%c:%c %i %i",line[72],line[73],line[74],line[75],chain_name,link_count,no-start_chain+1-link_count); */ if(dipeptide==0){fprintf(farrayo,"%s %c %i ", fname,chain_name,no-start_chain+1-link_count);} if(dipeptide==1){fprintf(farrayo,"%s ",fname);} nres=link_count; printf(" number of residues in chain %c is %i\n",chain_name,link_count); GaussIntegrals(); } link_count=0; } link_count++; if (link_count>MAXLENGTH-1) { printf(" >MAXLENGTH=%i residues\n",MAXLENGTH); fprintf(ferroro, "WARNING! Chain %c of <%s> is longer than MAXLENGTH=%i. \n No further attempt to calculate Gauss Integrals for chains of\n <%s> has been made.\n", chain_name, fname, MAXLENGTH, fname);fclose(fi); return;} no=nr; if(link_count==1) start_chain=no; sscanf(line+30,"%lf %lf %lf",&x,&y,&z); ThreeLeterAmno[0]=line[17]; ThreeLeterAmno[1]=line[18]; ThreeLeterAmno[2]=line[19]; SequinceInteger[link_count]=Three2IntegerProteinId(ThreeLeterAmno); polyl[link_count][0]=x; polyl[link_count][1]=y; polyl[link_count][2]=z; chain_name=new_chain_name; } goto loop; fclose(fi); return; } int Three2IntegerProteinId(char ThreeLeterAmno[3]) { if( strncmp(ThreeLeterAmno,"ALA",3)==0) return 5; if( strncmp(ThreeLeterAmno,"GLU",3)==0) return 4; if( strncmp(ThreeLeterAmno,"GLN",3)==0) return 7; if( strncmp(ThreeLeterAmno,"ASP",3)==0) return 3; if( strncmp(ThreeLeterAmno,"ASN",3)==0) return 6; if( strncmp(ThreeLeterAmno,"LEU",3)==0) return 17; if( strncmp(ThreeLeterAmno,"GLY",3)==0) return 1; if( strncmp(ThreeLeterAmno,"LYS",3)==0) return 10; if( strncmp(ThreeLeterAmno,"SER",3)==0) return 8; if( strncmp(ThreeLeterAmno,"VAL",3)==0) return 13; if( strncmp(ThreeLeterAmno,"ARG",3)==0) return 11; if( strncmp(ThreeLeterAmno,"THR",3)==0) return 9; if( strncmp(ThreeLeterAmno,"PRO",3)==0) return 2; if( strncmp(ThreeLeterAmno,"ILE",3)==0) return 14; if( strncmp(ThreeLeterAmno,"MET",3)==0) return 15; if( strncmp(ThreeLeterAmno,"PHE",3)==0) return 18; if( strncmp(ThreeLeterAmno,"TYR",3)==0) return 19; if( strncmp(ThreeLeterAmno,"CYS",3)==0) return 16; if( strncmp(ThreeLeterAmno,"TRP",3)==0) return 20; if( strncmp(ThreeLeterAmno,"HIS",3)==0) return 12; if( strncmp(ThreeLeterAmno,"ASX",3)==0) return 3; if( strncmp(ThreeLeterAmno,"Glx",3)==0) return 1; if( strncmp(ThreeLeterAmno,"PCA",3)==0) return 8; fprintf(ferroro, "WARNING! Do not know the amino acid residue %c%c%c \n",ThreeLeterAmno[0],ThreeLeterAmno[1],ThreeLeterAmno[2]); return 21; } /* BASIC VECTOR CALCULOS */ /* length: euklidean lenght in R^3*/ double length(double vec[3]) { /* return sqrt(vec[0]*vec[0]+vec[1]*vec[1]+vec[2]*vec[2]);*/ return sqrt(dot(vec,vec)); } /* dot: dot product in R^3 */ double dot(double vec1[3],double vec2[3]) { return vec1[0]*vec2[0]+ vec1[1]*vec2[1]+ vec1[2]*vec2[2]; } /* unit: gives the unit vector v/|v|, uvec, in R^3 */ void unit(double uvec[3], double vec[3]) { int i; double len; len=length(vec); for (i = 0; i<3;i++) uvec[i]=vec[i]/len; } /* geovec: Gives the vector from vec1 to vec2 */ void geovec(double vec2_minus_vec1[3], double vec1[3], double vec2[3]) { int i; for (i=0; i<3;i++) vec2_minus_vec1[i]=vec2[i]-vec1[i]; } /* cross: gives the cross product, crossvec, of vec1 and vec2 in R^3 */ void cross(double crossvec[3],double vec1[3],double vec2[3]) { crossvec[0]=vec1[1]*vec2[2]-vec2[1]*vec1[2]; crossvec[1]=vec1[2]*vec2[0]-vec2[2]*vec1[0]; crossvec[2]=vec1[0]*vec2[1]-vec2[0]*vec1[1]; } /* determinant: gives the determinant of vec1, vec2, and vec3 in R^3 */ double determinant(double vec1[3],double vec2[3],double vec3[3]) { double crossvec[3]; cross(crossvec,vec2,vec3); return dot(vec1,crossvec); } /* cerateunitvectors creates the unit vectors from polyl[i] to polyl[j]. */ void createunitvectors(void) { int i,j; extern double polyl[MAXLENGTH][3]; extern double unitvectors[MAXLENGTH][MAXLENGTH][3]; extern int nres; double varvec[3]; for (i=1;i1 || det1/det<0){return 0;} geovec(vec1,p2,p1); geovec(vec2,p2,c); cross(crossvec,vec2,vec3); det2=dot(vec1,crossvec); if(det2/det>1 || det2/det<0){return 0;} geovec(vec2,a,c); geovec(vec3,p2,c); cross(crossvec,vec2,vec3); det3=dot(vec1,crossvec); if((det3/det)<=1 && det3/det>=0 && 1-(det2+det3)/det<=1 && 1-(det2+det3)/det>=0){return 1;} return 0; } void PerturbBackBone(double ampitude) { int i,j; for(j=1;j1){tmax=tnew;} if(sum==0){tmin=tnew;} } tnew=tmin*.9; for(i=0;i<3;i++){varpoly[j][i]=tnew*newpointback[i]+(1-tnew)*polyl[j][i];} } } for(j=3;j<=nres-2;j++){ for(i=0;i<3;i++){ polyl[j][i]=varpoly[j][i]; } } } /* SPHERICAL GEOMETRY */ /* spangle: For vec1, vec2, and, vec3 on the unit 2-sphere * spangle gives the exterior angle * spangle(vec1,vec2,vec3) between the geodesic segments * from vec1 to vec2 and from vec2 to vec3. * Notice, that there is no normalization * before atan2 since atan2 does not need sin and cos */ double spangle(double vec1[3], double vec2[3], double vec3[3]) { double vv[3]; double ab,bc; cross(vv,vec1,vec2); ab=dot(vec1,vec2); bc=dot(vec2,vec3); return atan2(dot(vv,vec3),ab*bc- dot(vec1,vec3) ); } /* cerateomega creates half of the mesure of area on the unit 2-sphere * from which a crossing is seen between * the line segment polyl[i] to polyl[i+1] and * the line segment polyl[j] to polyl[j+1]. */ void createomega(void) { int i,j; extern double omega[MAXLENGTH][MAXLENGTH]; extern double absomega[MAXLENGTH][MAXLENGTH]; extern double unitvectors[MAXLENGTH][MAXLENGTH][3]; extern int nres; double anglesum, cross1[3], cross2[3], cross3[3]; for (i=1;i=0 ) omega[i][j]=twoPI-anglesum; else omega[i][j]=-twoPI-anglesum; absomega[i][j]=fabs(omega[i][j]); } } } } /* createpartsums creats partsum[i][j]=writhe of the segment * from polyl[i] to polyl[j+1] */ void createpartsums(void) { extern double omega[MAXLENGTH][MAXLENGTH]; extern double absomega[MAXLENGTH][MAXLENGTH]; extern int nres; extern double partsum[MAXLENGTH][MAXLENGTH]; extern double abspartsum[MAXLENGTH][MAXLENGTH]; int a, k; for (k=-1;k<2;k++) for (a=1;a29){ printf("WARNING measure number is to high in smooth original\n"); return -99999999999.9 ; } if (measurevalueprepost[measurenumber][3]){ return prepost[measurenumber][5]*(measurevalue-prepost[measurenumber][3])+prepost[measurenumber][4]; } ss=1+19*(measurevalue-knotsstartend[measurenumber][0])/(knotsstartend[measurenumber][1]-knotsstartend[measurenumber][0]); a=floor(ss); if(a>16) { printf("wRNING PROBLEM IN PREDEFORMATION AS a>16\n"); return 0; } return splinefun(ss-a+3)*CoefSmoothOrg[measurenumber][a-3-1]+splinefun(ss-a+2)*CoefSmoothOrg[measurenumber][a-2-1]+splinefun(ss-a+1)*CoefSmoothOrg[measurenumber][a-1-1]+splinefun(ss-a)*CoefSmoothOrg[measurenumber][a-1]; } double presplinedeformationsmoothnew(double measurevalue, int measurenumber) { double CoefSmoothNew[30][16]={{-8.944632e+01, -1.099187e+02, -1.033060e+02, -9.569429e+01, -9.012278e+01, -8.301296e+01, -7.623848e+01, -6.786135e+01, -6.141938e+01, -5.487420e+01, -4.849957e+01, -4.272373e+01, -3.644640e+01, -3.069523e+01, -2.202762e+01, 0.000000e+00},/* */{-4.323760e+02, -3.795051e+02, -3.723412e+02, -3.637384e+02, -3.554168e+02, -3.457790e+02, -3.373883e+02, -3.279643e+02, -3.182622e+02, -3.079369e+02, -2.979298e+02, -2.864793e+02, -2.763838e+02, -2.636304e+02, -2.558967e+02, 0.000000e+00},/* */{-2.206509e+02, -4.086930e+02, -3.885715e+02, -3.694945e+02, -3.516591e+02, -3.366257e+02, -3.230932e+02, -3.116065e+02, -2.991483e+02, -2.879707e+02, -2.768270e+02, -2.666279e+02, -2.579784e+02, -2.493960e+02, -2.408323e+02, 0.000000e+00},/* */{-1.627798e+03, -1.653651e+03, -1.649482e+03, -1.646591e+03, -1.642891e+03, -1.639919e+03, -1.636694e+03, -1.633282e+03, -1.628551e+03, -1.624535e+03, -1.619286e+03, -1.613368e+03, -1.605346e+03, -1.596190e+03, -1.563467e+03, 0.000000e+00},/* */{-3.922498e+02, -3.522696e+02, -3.456155e+02, -3.401583e+02, -3.336302e+02, -3.269996e+02, -3.202883e+02, -3.113555e+02, -3.029190e+02, -2.907618e+02, -2.786194e+02, -2.693874e+02, -2.604276e+02, -2.505540e+02, -2.439578e+02, 0.000000e+00},/* */{-1.725072e+02, -2.552874e+02, -2.493978e+02, -2.424006e+02, -2.355072e+02, -2.286147e+02, -2.199379e+02, -2.111326e+02, -2.014180e+02, -1.875711e+02, -1.783861e+02, -1.677901e+02, -1.594134e+02, -1.486498e+02, -1.420985e+02, 0.000000e+00},/* */{-5.981506e+03, -2.807756e+02, -1.738971e+02, -1.479372e+02, -1.246978e+02, -1.087282e+02, -9.485573e+01, -8.212603e+01, -7.035389e+01, -6.069769e+01, -5.144344e+01, -4.218746e+01, -3.386648e+01, -2.608900e+01, -1.839906e+01, 0.000000e+00},/* */{-1.763959e+03, -1.700768e+03, -1.699934e+03, -1.696725e+03, -1.693572e+03, -1.690549e+03, -1.686964e+03, -1.683650e+03, -1.679759e+03, -1.675204e+03, -1.669710e+03, -1.664418e+03, -1.656446e+03, -1.647501e+03, -1.615750e+03, 0.000000e+00},/* */{-2.423587e+02, -1.787628e+02, -1.717232e+02, -1.628667e+02, -1.532275e+02, -1.434835e+02, -1.316439e+02, -1.183518e+02, -1.001996e+02, -7.680384e+01, -6.130349e+01, -4.697156e+01, -3.250732e+01, -2.227616e+01, -7.768331e+00, 0.000000e+00},/* */{-2.255406e+02, -2.578660e+02, -2.487574e+02, -2.403399e+02, -2.308197e+02, -2.212080e+02, -2.092860e+02, -1.973281e+02, -1.781195e+02, -1.543145e+02, -1.396794e+02, -1.257571e+02, -1.106626e+02, -9.918504e+01, -8.721038e+01, 0.000000e+00},/* */{-2.022817e+04, -3.169053e+02, -1.568568e+02, -1.205469e+02, -9.492570e+01, -7.663713e+01, -6.123187e+01, -4.754060e+01, -3.603088e+01, -2.532938e+01, -1.666340e+01, -7.449999e+00, -9.321766e-02, 8.757506e+00, 1.448935e+01, 0.000000e+00},/* */{-1.691708e+03, -1.701541e+03, -1.698722e+03, -1.695657e+03, -1.692697e+03, -1.689432e+03, -1.685727e+03, -1.682531e+03, -1.678279e+03, -1.674045e+03, -1.668536e+03, -1.663085e+03, -1.655342e+03, -1.646076e+03, -1.614782e+03, 0.000000e+00},/* */{1.208610e+01, -2.402713e+01, -1.594536e+01, -9.689928e+00, -2.729414e+00, 4.469296e+00, 1.330338e+01, 2.366246e+01, 3.251238e+01, 5.075630e+01, 6.467103e+01, 7.697915e+01, 8.706296e+01, 9.778898e+01, 1.075953e+02, 0.000000e+00},/* */{-4.187916e+02, -3.763817e+02, -3.686820e+02, -3.595731e+02, -3.496542e+02, -3.369328e+02, -3.265093e+02, -3.091941e+02, -2.964498e+02, -2.712538e+02, -2.519308e+02, -2.318562e+02, -2.166059e+02, -1.988975e+02, -1.848086e+02, 0.000000e+00},/* */{-1.617682e+04, -3.479836e+02, -1.795255e+02, -1.410600e+02, -1.134702e+02, -9.449111e+01, -7.734345e+01, -6.426249e+01, -5.120941e+01, -3.990345e+01, -3.076247e+01, -2.157896e+01, -1.321230e+01, -5.211887e+00, 2.654697e+00, 0.000000e+00},/* */{-2.038454e+02, -1.605521e+02, -1.585855e+02, -1.533240e+02, -1.499669e+02, -1.442162e+02, -1.391387e+02, -1.342552e+02, -1.253144e+02, -1.183658e+02, -1.101778e+02, -1.032587e+02, -9.876589e+01, -9.222172e+01, -9.156987e+01, 0.000000e+00},/* */{1.194045e+02, -4.640461e+01, -3.937670e+01, -3.665371e+01, -3.374323e+01, -2.981953e+01, -2.632391e+01, -2.190136e+01, -1.655628e+01, -1.393417e+01, -7.693308e+00, -4.414165e+00, -1.166574e+00, 2.177935e+00, 5.364475e+00, 0.000000e+00},/* */{4.914698e+01, -6.925862e+01, -6.115743e+01, -6.098089e+01, -5.765389e+01, -5.392566e+01, -4.914807e+01, -4.474478e+01, -3.638328e+01, -2.925467e+01, -2.327735e+01, -1.854936e+01, -1.488345e+01, -1.066282e+01, -8.361774e+00, 0.000000e+00},/* */{1.005746e+02, 5.750706e+01, 6.033379e+01, 6.281674e+01, 6.558924e+01, 6.830041e+01, 7.231943e+01, 7.540429e+01, 8.169666e+01, 8.545651e+01, 9.081339e+01, 9.404398e+01, 9.857993e+01, 9.944875e+01, 1.056589e+02, 0.000000e+00},/* */{-7.210167e+01, -9.239858e+01, -8.935188e+01, -8.628471e+01, -8.396635e+01, -8.055506e+01, -7.638363e+01, -7.247419e+01, -6.838569e+01, -6.336126e+01, -5.960200e+01, -5.513016e+01, -5.195936e+01, -4.839843e+01, -4.609455e+01, 0.000000e+00},/* */{7.054937e+01, 1.309963e+02, 1.329702e+02, 1.371429e+02, 1.408555e+02, 1.469020e+02, 1.502321e+02, 1.569482e+02, 1.616573e+02, 1.648894e+02, 1.696164e+02, 1.729594e+02, 1.767021e+02, 1.790866e+02, 1.862448e+02, 0.000000e+00},/* */{-6.383472e+01, -4.518012e+01, -4.322435e+01, -4.079681e+01, -3.735081e+01, -3.362176e+01, -2.855168e+01, -2.375436e+01, -1.479947e+01, -9.443971e+00, -3.288144e+00, -1.063605e+00, 2.357577e+00, 5.503577e+00, 9.837346e+00, 0.000000e+00},/* */{-1.319450e+02, -1.373329e+02, -1.351566e+02, -1.320714e+02, -1.297339e+02, -1.259316e+02, -1.213749e+02, -1.171764e+02, -1.134295e+02, -1.095467e+02, -1.062760e+02, -1.027397e+02, -9.999116e+01, -9.779185e+01, -9.503813e+01, 0.000000e+00},/* */{-8.504188e+01, -7.249933e+01, -6.896536e+01, -6.603217e+01, -6.262269e+01, -5.930658e+01, -5.495930e+01, -5.031085e+01, -4.596648e+01, -4.046198e+01, -3.720763e+01, -3.376877e+01, -2.991338e+01, -2.732565e+01, -2.208567e+01, 0.000000e+00},/* */{-7.572016e+01, -3.680928e+01, -3.193137e+01, -2.793961e+01, -2.308964e+01, -1.705898e+01, -1.097472e+01, -6.306664e+00, -1.679170e+00, 1.158472e+00, 3.907689e+00, 6.529308e+00, 8.724441e+00, 1.055803e+01, 1.386877e+01, 0.000000e+00},/* */{-1.531824e+02, 1.047709e+02, 1.052261e+02, 1.084142e+02, 1.121933e+02, 1.147943e+02, 1.190171e+02, 1.221900e+02, 1.277416e+02, 1.331911e+02, 1.385639e+02, 1.425704e+02, 1.456560e+02, 1.485131e+02, 1.524278e+02, 0.000000e+00},/* */{-3.078750e+02, -2.430555e+02, -2.390526e+02, -2.375404e+02, -2.327583e+02, -2.318849e+02, -2.275092e+02, -2.237270e+02, -2.176982e+02, -2.129316e+02, -2.040267e+02, -1.981699e+02, -1.943631e+02, -1.888787e+02, -1.894915e+02, 0.000000e+00},/* */{-1.114843e+02, -2.497651e+02, -2.409053e+02, -2.361774e+02, -2.290416e+02, -2.194772e+02, -2.079200e+02, -2.000440e+02, -1.940763e+02, -1.891448e+02, -1.846660e+02, -1.812537e+02, -1.780991e+02, -1.748716e+02, -1.734410e+02, 0.000000e+00},/* */{-3.179037e+02, -1.017927e+02, -9.525953e+01, -9.248529e+01, -8.894468e+01, -8.660980e+01, -8.159995e+01, -7.839347e+01, -7.294461e+01, -6.963943e+01, -6.580943e+01, -6.227030e+01, -5.836783e+01, -5.593004e+01, -5.522874e+01, 0.000000e+00},/* */{-1.533690e+02, -1.605210e+02, -1.599891e+02, -1.550206e+02, -1.537064e+02, -1.499839e+02, -1.467191e+02, -1.419631e+02, -1.371803e+02, -1.316141e+02, -1.210307e+02, -1.166583e+02, -1.111252e+02, -1.066626e+02, -1.051770e+02, 0.000000e+00}}; double knotsstartend[30][2]={{-1.211098e+00, 1.180243e+00},/* */{-1.156866e-01, 1.097668e-01},/* */{-1.145264e-01, 1.028351e-01},/* */{-1.569844e-01, 3.882746e-02},/* */{-3.296010e-03, 2.577440e-03},/* */{-2.685857e-03, 2.372027e-03},/* */{-3.413006e-02, 1.381300e-01},/* */{-4.221381e+00, 1.049125e+00},/* */{-8.223077e-02, 7.266607e-02},/* */{-5.689723e-02, 5.124143e-02},/* */{-5.554268e-01, 2.229844e+00},/* */{-1.404638e+00, 3.487506e-01},/* */{-2.370320e-02, 1.843030e-02},/* */{-7.323573e-03, 5.515793e-03},/* */{-6.256137e-01, 2.516828e+00},/* */{-2.081713e-03, 1.806953e-03},/* */{-3.642003e-04, 2.947163e-04},/* */{-7.760810e-04, 6.564940e-04},/* */{-1.881483e-05, 1.486431e-05},/* */{-8.250873e-05, 6.106043e-05},/* */{-3.195707e-04, 3.580527e-04},/* */{-6.016903e-05, 5.669613e-05},/* */{-5.989873e-04, 7.595493e-04},/* */{-1.482195e-03, 1.344951e-03},/* */{-9.868160e-05, 1.654604e-04},/* */{-1.844706e-05, 1.436125e-05},/* */{-1.199999e-04, 8.086873e-05},/* */{-1.183927e-04, 1.913507e-04},/* */{-3.689207e-05, 3.800077e-05},/* */{-1.644483e-04, 1.118182e-04}}; double prepost[30][6]={{-7.328300e-01, -1.045072e+02, 5.077594e+01, 7.019750e-01, -2.869502e+01, 6.357496e+01},/* */{-7.059590e-02, -3.737121e+02, 7.195778e+02, 6.467610e-02, -2.621812e+02, 1.205403e+03},/* */{-7.105410e-02, -3.924074e+02, 1.365723e+03, 5.936280e-02, -2.473752e+02, 1.155153e+03},/* */{-1.178220e-01, -1.650384e+03, 3.065597e+02, -3.349070e-04, -1.585593e+03, 5.414025e+03},/* */{-2.121320e-03, -3.470929e+02, 2.244242e+04, 1.402750e-03, -2.491980e+02, 4.008743e+04},/* */{-1.674280e-03, -2.503630e+02, 1.679412e+04, 1.360450e-03, -1.475183e+02, 3.985723e+04},/* */{3.219530e-04, -2.096363e+02, 2.127231e+04, 1.036780e-01, -2.454420e+01, 8.749016e+02},/* */{-3.167280e+00, -1.699981e+03, 1.024202e+01, -4.975990e-03, -1.637093e+03, 2.023582e+02},/* */{-5.125140e-02, -1.730515e+02, 1.073556e+03, 4.168670e-02, -1.901864e+01, 1.595162e+03},/* */{-3.526950e-02, -2.505828e+02, 1.415930e+03, 2.961370e-02, -9.664737e+01, 2.340381e+03},/* */{1.627420e-03, -2.257604e+02, 3.516373e+03, 1.672790e+00, 9.610768e+00, 4.314975e+01},/* */{-1.053960e+00, -1.699248e+03, 2.865658e+01, -1.927050e-03, -1.635826e+03, 6.059005e+02},/* */{-1.527650e-02, -1.765863e+01, 2.982316e+03, 1.000360e-02, 9.951524e+01, 3.496023e+03},/* */{-4.755700e-03, -3.701480e+02, 1.308881e+04, 2.947920e-03, -1.961609e+02, 2.761578e+04},/* */{2.874740e-03, -2.451903e+02, 2.660763e+03, 1.888340e+00, -3.664019e+00, 4.655001e+01},/* */{-1.303980e-03, -1.587528e+02, 1.879904e+04, 1.029220e-03, -9.247294e+01, 2.128217e+04},/* */{-2.324170e-04, -4.091918e+01, 6.325273e+04, 1.629330e-04, 2.790361e+00, 8.841077e+04},/* */{-4.895660e-04, -6.328523e+01, 4.025483e+04, 3.699790e-04, -1.035833e+01, 4.027293e+04},/* */{-1.207900e-05, 5.980030e+01, 1.014809e+06, 8.128480e-06, 1.009974e+02, 1.276975e+06},/* */{-5.379490e-05, -8.992835e+01, 3.422824e+05, 3.234660e-05, -4.798653e+01, 4.740366e+05},/* */{-1.840460e-04, 1.326851e+02, 1.078663e+05, 2.225280e-04, 1.806678e+02, 4.942046e+04},/* */{-3.679600e-05, -4.359751e+01, 3.968127e+05, 3.332310e-05, 6.452792e+00, 5.967129e+05},/* */{-3.272800e-04, -1.355042e+02, 3.238845e+04, 4.878420e-04, -9.707075e+01, 6.184445e+04},/* */{-9.167660e-04, -6.973543e+01, 2.366909e+04, 7.795220e-04, -2.602887e+01, 3.177595e+04},/* */{-4.585320e-05, -3.302794e+01, 3.794361e+05, 1.126320e-04, 1.132332e+01, 1.794291e+05},/* */{-1.188540e-05, 1.050249e+02, 3.752511e+06, 7.799590e-06, 1.491779e+02, 2.602551e+05},/* */{-7.982620e-05, -2.401468e+02, 4.182932e+05, 4.069500e-05, -1.892681e+02, 4.862248e+05},/* */{-5.644400e-05, -2.428337e+02, 2.818479e+05, 1.294020e-04, -1.745095e+02, 3.340530e+05},/* */{-2.191350e-05, -9.716638e+01, 2.415668e+06, 2.302220e-05, -5.586526e+01, 5.955569e+05},/* */{-1.091950e-04, -1.597066e+02, 1.236513e+05, 5.656490e-05, -1.064813e+02, 3.103162e+05}};/*this is prepostsmoothorg*/ double ss; int a; if (measurenumber>29){ printf("WARNING measure number is to high in smooth new\n"); return -99999999999.9 ; } if (measurevalueprepost[measurenumber][3]){ return prepost[measurenumber][5]*(measurevalue-prepost[measurenumber][3])+prepost[measurenumber][4]; } ss=1+19*(measurevalue-knotsstartend[measurenumber][0])/(knotsstartend[measurenumber][1]-knotsstartend[measurenumber][0]); a=floor(ss); if(a>16) { printf("wRNING PROBLEM IN PREDEFORMATION AS a>16\n"); return 0; } return splinefun(ss-a+3)*CoefSmoothNew[measurenumber][a-3-1]+splinefun(ss-a+2)*CoefSmoothNew[measurenumber][a-2-1]+splinefun(ss-a+1)*CoefSmoothNew[measurenumber][a-1-1]+splinefun(ss-a)*CoefSmoothNew[measurenumber][a-1]; } double splinedeformationsmoothorg(double measurevalue, int measurenumber) { return presplinedeformationsmoothorg(measurevalue, measurenumber)-presplinedeformationsmoothorg(0.0, measurenumber); } double splinedeformationsmoothnew(double measurevalue, int measurenumber) { return presplinedeformationsmoothnew(measurevalue, measurenumber)-presplinedeformationsmoothnew(0.0, measurenumber); } double presplinedeformationCalphaorg(double measurevalue, int measurenumber) { double CoefCalphaOrg[29][16]={{-1.022043e+01, -5.673251e+00, -5.109977e+00, -4.515572e+00, -3.920791e+00, -3.315927e+00, -2.694542e+00, -2.072482e+00, -1.459846e+00, -8.388197e-01, -2.126423e-01, 4.441569e-01, 1.154193e+00, 1.859077e+00, 2.844650e+00, 0.000000e+00},/* */{-2.145919e+00, -1.298058e+00, -1.100987e+00, -8.558102e-01, -6.269785e-01, -3.821712e-01, -1.641000e-01, 7.047936e-02, 3.073944e-01, 5.574438e-01, 8.041141e-01, 1.053503e+00, 1.313411e+00, 1.564413e+00, 1.839354e+00, 0.000000e+00},/* */{-3.272319e+01, -5.679388e+00, -3.027266e+00, -2.184208e+00, -1.524601e+00, -1.023559e+00, -5.868286e-01, -1.624693e-01, 2.265211e-01, 5.659684e-01, 9.532884e-01, 1.290577e+00, 1.618150e+00, 1.929699e+00, 2.376741e+00, 0.000000e+00},/* */{-7.094200e+00, -7.711310e+00, -7.252447e+00, -6.629255e+00, -6.059834e+00, -5.538843e+00, -5.032154e+00, -4.544455e+00, -4.071022e+00, -3.629301e+00, -3.170317e+00, -2.731559e+00, -2.311583e+00, -1.869839e+00, -1.501668e+00, 0.000000e+00},/* */{-1.193950e+01, -9.692399e+00, -9.182438e+00, -8.633668e+00, -8.090662e+00, -7.563740e+00, -7.052701e+00, -6.583849e+00, -6.129935e+00, -5.685335e+00, -5.241571e+00, -4.799894e+00, -4.392813e+00, -3.960548e+00, -3.518674e+00, 0.000000e+00},/* */{-1.029792e+01, -7.280154e+00, -6.965742e+00, -6.570639e+00, -6.225599e+00, -5.932427e+00, -5.621598e+00, -5.315214e+00, -5.019830e+00, -4.739372e+00, -4.447961e+00, -4.170449e+00, -3.899608e+00, -3.629545e+00, -3.404594e+00, 0.000000e+00},/* */{-1.083239e+01, -7.655407e+00, -7.314142e+00, -6.977336e+00, -6.711711e+00, -6.450447e+00, -6.181713e+00, -5.948476e+00, -5.646119e+00, -5.414567e+00, -5.151326e+00, -4.937171e+00, -4.734597e+00, -4.522417e+00, -4.150915e+00, 0.000000e+00},/* */{-2.801743e+01, -1.467049e+01, -1.403551e+01, -1.331707e+01, -1.260394e+01, -1.181148e+01, -1.095126e+01, -1.009105e+01, -9.187503e+00, -8.271633e+00, -7.363734e+00, -6.392157e+00, -5.534488e+00, -4.775230e+00, -4.061104e+00, 0.000000e+00},/* */{-1.637997e+01, -1.593480e+01, -1.504607e+01, -1.430765e+01, -1.344713e+01, -1.248755e+01, -1.156632e+01, -1.052623e+01, -9.459432e+00, -8.375925e+00, -7.296309e+00, -6.370489e+00, -5.483069e+00, -4.709157e+00, -3.977414e+00, 0.000000e+00},/* */{-2.134964e+01, -6.187588e+00, -5.376331e+00, -4.447713e+00, -3.787271e+00, -3.205523e+00, -2.730491e+00, -2.273153e+00, -1.884532e+00, -1.524673e+00, -1.194215e+00, -8.477538e-01, -5.420715e-01, -2.672812e-01, 7.954958e-02, 0.000000e+00},/* */{1.123691e+01, -4.912341e-01, 1.571220e-01, 6.084592e-01, 1.157967e+00, 1.721950e+00, 2.399714e+00, 2.927840e+00, 3.386638e+00, 3.902328e+00, 4.422849e+00, 4.921272e+00, 5.379551e+00, 5.829236e+00, 6.325006e+00, 0.000000e+00},/* */{-2.258716e+00, -3.649282e+00, -3.280947e+00, -2.857969e+00, -2.489245e+00, -2.078607e+00, -1.599944e+00, -1.183162e+00, -6.581905e-01, -2.165667e-01, 2.391557e-01, 7.078326e-01, 1.185226e+00, 1.615434e+00, 2.149000e+00, 0.000000e+00},/* */{-4.153297e+00, 3.719297e+00, 4.514258e+00, 5.177461e+00, 5.990068e+00, 6.797599e+00, 7.926182e+00, 9.087798e+00, 1.036058e+01, 1.164706e+01, 1.284663e+01, 1.397711e+01, 1.497106e+01, 1.590517e+01, 1.680064e+01, 0.000000e+00},/* */{-1.088303e+01, -6.487401e+00, -5.009219e+00, -4.476568e+00, -3.870230e+00, -3.486995e+00, -3.019160e+00, -2.624107e+00, -2.258624e+00, -1.902028e+00, -1.591907e+00, -1.281103e+00, -9.788344e-01, -6.913639e-01, -4.364186e-01, 0.000000e+00},/* */{3.618158e+00, -1.329220e+01, -8.101641e+00, -7.408401e+00, -6.714083e+00, -6.246186e+00, -5.821315e+00, -5.475716e+00, -5.136751e+00, -4.809867e+00, -4.542470e+00, -4.269489e+00, -4.039346e+00, -3.766466e+00, -3.597852e+00, 0.000000e+00},/* */{6.869959e+01, -3.406791e+00, -8.466190e-01, -1.191625e-01, 3.858997e-01, 7.331306e-01, 1.068747e+00, 1.350197e+00, 1.644191e+00, 1.887744e+00, 2.151213e+00, 2.432307e+00, 2.656245e+00, 2.804493e+00, 3.183354e+00, 0.000000e+00},/* */{4.410526e+00, 2.504039e+00, 2.973518e+00, 3.331052e+00, 3.797271e+00, 4.747109e+00, 5.209009e+00, 5.603954e+00, 6.007756e+00, 6.392360e+00, 6.700559e+00, 6.970694e+00, 7.297954e+00, 7.466077e+00, 7.932276e+00, 0.000000e+00},/* */{1.109778e+01, -2.048909e+01, -1.800015e+01, -1.738757e+01, -1.689822e+01, -1.656360e+01, -1.625002e+01, -1.595724e+01, -1.567505e+01, -1.539908e+01, -1.510793e+01, -1.483476e+01, -1.459531e+01, -1.440614e+01, -1.432965e+01, 0.000000e+00},/* */{-1.213667e+01, -1.101015e+01, -1.096272e+01, -1.084501e+01, -1.073446e+01, -1.060882e+01, -1.048110e+01, -1.034132e+01, -1.017507e+01, -1.001295e+01, -9.822326e+00, -9.695835e+00, -9.526139e+00, -9.379993e+00, -9.216112e+00, 0.000000e+00},/* */{1.061639e+01, 3.125266e+00, 3.455574e+00, 3.541255e+00, 3.709320e+00, 3.861714e+00, 4.064479e+00, 4.306507e+00, 4.579029e+00, 4.722457e+00, 4.920702e+00, 5.055426e+00, 5.236318e+00, 5.355793e+00, 5.623136e+00, 0.000000e+00},/* */{-1.448791e+01, -5.502174e+00, -5.204192e+00, -4.652717e+00, -4.151636e+00, -3.238154e+00, -2.852045e+00, -2.313122e+00, -1.897296e+00, -1.482405e+00, -1.244742e+00, -8.451148e-01, -5.815543e-01, -3.032072e-01, -1.189653e-02, 0.000000e+00},/* */{-2.707325e+00, -2.584367e+00, -2.409549e+00, -2.284688e+00, -2.133712e+00, -1.959734e+00, -1.790931e+00, -1.567629e+00, -1.323261e+00, -1.052899e+00, -7.708424e-01, -6.108231e-01, -4.304744e-01, -2.479093e-01, -7.504138e-02, 0.000000e+00},/* */{3.218393e-01, 6.194589e-01, 7.327192e-01, 8.538689e-01, 9.833153e-01, 1.122690e+00, 1.226398e+00, 1.417761e+00, 1.557927e+00, 1.798402e+00, 1.987562e+00, 2.272449e+00, 2.409217e+00, 2.623668e+00, 2.785613e+00, 0.000000e+00},/* */{1.277505e+00, 1.027284e+00, 1.221877e+00, 1.338912e+00, 1.493059e+00, 1.674597e+00, 1.846230e+00, 2.075303e+00, 2.316357e+00, 2.548926e+00, 2.714932e+00, 2.884652e+00, 3.050184e+00, 3.163896e+00, 3.391667e+00, 0.000000e+00},/* */{-1.207120e+01, -8.156598e+00, -8.075807e+00, -7.910472e+00, -7.745444e+00, -7.563576e+00, -7.354440e+00, -7.192403e+00, -6.984791e+00, -6.711497e+00, -6.404515e+00, -6.186597e+00, -5.961673e+00, -5.867626e+00, -5.755507e+00, 0.000000e+00},/* */{-3.478837e+00, 3.369522e+00, 3.437537e+00, 3.633164e+00, 3.808192e+00, 4.035446e+00, 4.398657e+00, 4.623378e+00, 4.931857e+00, 5.251209e+00, 5.399956e+00, 5.672224e+00, 5.834579e+00, 5.993530e+00, 6.307445e+00, 0.000000e+00},/* */{-1.363835e+01, -8.990702e+00, -8.610201e+00, -8.279481e+00, -7.804694e+00, -7.504485e+00, -6.471679e+00, -5.562699e+00, -5.145096e+00, -4.614474e+00, -4.228829e+00, -3.849233e+00, -3.496867e+00, -3.249384e+00, -2.905300e+00, 0.000000e+00},/* */{1.011276e+00, -3.992894e+00, -3.755986e+00, -3.468003e+00, -3.286940e+00, -2.935687e+00, -2.579957e+00, -2.117530e+00, -1.744415e+00, -1.480147e+00, -1.229790e+00, -9.693668e-01, -8.101008e-01, -6.026895e-01, -4.826443e-01, 0.000000e+00},/* */{-2.219402e+01, -3.265143e+00, -3.481955e+00, -3.170724e+00, -2.974825e+00, -2.660089e+00, -2.243203e+00, -1.893135e+00, -1.458174e+00, -1.209661e+00, -9.273700e-01, -8.921670e-01, -5.080333e-01, -4.366704e-01, 1.002739e-01, 0.000000e+00}}; double knotsstartend[29][2]={{-1.710778e+00, 3.721247e+00},/* */{6.197472e+00, 1.148431e+01},/* */{-1.087419e+00, 3.953681e+00},/* */{-1.503606e+00, 3.799374e+00},/* */{-1.512775e+00, 3.843967e+00},/* */{6.092954e-01, 6.079065e+00},/* */{-1.047053e+00, 4.398747e+00},/* */{-2.400468e+00, 3.011205e+00},/* */{-2.242638e+00, 3.328439e+00},/* */{-2.574953e-02, 5.628301e+00},/* */{-2.144638e+00, 3.324762e+00},/* */{-1.843618e+00, 3.555420e+00},/* */{-2.959608e+00, 2.574180e+00},/* */{5.633782e-03, 6.010784e+00},/* */{-1.027839e+00, 3.892822e+00},/* */{-1.087398e+00, 3.956212e+00},/* */{-1.868798e+00, 3.660620e+00},/* */{-1.099687e+00, 4.019378e+00},/* */{-2.601223e+00, 2.429138e+00},/* */{-2.647598e+00, 2.664254e+00},/* */{-1.864454e+00, 3.602390e+00},/* */{-2.526619e+00, 2.607906e+00},/* */{-3.293609e+00, 2.049398e+00},/* */{-2.624522e+00, 2.725601e+00},/* */{-3.205237e+00, 2.210755e+00},/* */{-2.626096e+00, 2.721633e+00},/* */{-1.952496e+00, 2.662643e+00},/* */{-2.372406e+00, 2.989596e+00},/* */{-2.151897e+00, 2.715111e+00}}; double prepost[29][6]={{-6.243733e-01, -5.225287e+00, 2.283746e+00, 2.634842e+00, 2.075037e+00, 2.865197e+00},/* */{7.254840e+00, -1.137164e+00, 8.103390e-01, 1.042694e+01, 1.618625e+00, 8.085908e-01},/* */{-7.919896e-02, -3.744586e+00, 9.652664e+00, 2.945461e+00, 2.026905e+00, 1.308636e+00},/* */{-4.430099e-01, -7.328762e+00, 1.755362e+00, 2.738778e+00, -1.800972e+00, 1.484694e+00},/* */{-4.414269e-01, -9.283434e+00, 1.976076e+00, 2.772619e+00, -3.867251e+00, 1.774655e+00},/* */{1.703249e+00, -7.025343e+00, 1.369657e+00, 4.985111e+00, -3.584165e+00, 1.052441e+00},/* */{4.210681e-02, -7.386557e+00, 1.383544e+00, 3.309587e+00, -4.429482e+00, 1.381988e+00},/* */{-1.318133e+00, -1.417234e+01, 3.215761e+00, 1.928871e+00, -4.631793e+00, 2.792972e+00},/* */{-1.128423e+00, -1.523605e+01, 2.836680e+00, 2.214224e+00, -4.562079e+00, 2.762995e+00},/* */{1.105061e+00, -5.547702e+00, 3.816863e+00, 4.497491e+00, -1.923361e-01, 1.059374e+00},/* */{-1.050758e+00, 2.714048e-02, 1.173405e+00, 2.230882e+00, 5.923228e+00, 1.197121e+00},/* */{-7.638106e-01, -3.347606e+00, 1.233962e+00, 2.475612e+00, 1.727391e+00, 1.572494e+00},/* */{-1.852851e+00, 4.334585e+00, 3.070713e+00, 1.467422e+00, 1.605737e+01, 1.901853e+00},/* */{1.206664e+00, -5.389431e+00, 3.904192e+00, 4.809754e+00, -6.429083e-01, 8.510484e-01},/* */{-4.370668e-02, -9.494055e+00, 1.277847e+01, 2.908689e+00, -3.737068e+00, 1.044720e+00},/* */{-7.867628e-02, -1.415490e+00, 1.809630e+00, 2.947490e+00, 2.895195e+00, 8.808356e-01},/* */{-7.629147e-01, 2.873238e+00, 1.326832e+00, 2.554736e+00, 7.573555e+00, 6.970094e-01},/* */{-7.587419e-02, -1.861262e+01, 4.479866e+00, 2.995565e+00, -1.438145e+01, 1.475787e+00},/* */{-1.595151e+00, -1.096765e+01, 3.456212e-01, 1.423066e+00, -9.333634e+00, 1.281372e+00},/* */{-1.585227e+00, 3.379066e+00, 3.419473e-01, 1.601884e+00, 5.414026e+00, 3.656166e-01},/* */{-7.710849e-01, -5.253741e+00, 1.921445e+00, 2.509022e+00, -2.442114e-01, 9.786097e-01},/* */{-1.499714e+00, -2.448707e+00, 5.839086e-01, 1.581001e+00, -2.142937e-01, 6.439301e-01},/* */{-2.225008e+00, 7.104946e-01, 4.248487e-01, 9.807968e-01, 2.647647e+00, 4.259992e-01},/* */{-1.554497e+00, 1.176934e+00, 5.713303e-01, 1.655577e+00, 3.214357e+00, 4.221930e-01},/* */{-2.122038e+00, -8.089862e+00, 6.473244e-01, 1.127557e+00, -5.836135e+00, 7.689939e-01},/* */{-1.556550e+00, 3.425783e+00, 8.685352e-01, 1.652087e+00, 6.060708e+00, 4.686255e-01},/* */{-1.029468e+00, -8.696239e+00, 1.852246e+00, 1.739615e+00, -3.168909e+00, 1.500176e+00},/* */{-1.300006e+00, -3.792021e+00, 5.259576e-01, 1.917196e+00, -5.856522e-01, 5.501364e-01},/* */{-1.178495e+00, -3.419060e+00, 1.308079e+00, 1.741709e+00, -2.904015e-01, 1.464774e+00}}; /*this is prepostCalphaorg*/ double ss; int a; if (measurenumber>28){ printf("WARNING measure number is to high in Calpha original\n"); return -99999999999.9 ; } if (measurevalueprepost[measurenumber][3]){ return prepost[measurenumber][5]*(measurevalue-prepost[measurenumber][3])+prepost[measurenumber][4]; } ss=1+19*(measurevalue-knotsstartend[measurenumber][0])/(knotsstartend[measurenumber][1]-knotsstartend[measurenumber][0]); a=floor(ss); if(a>16) { printf("wRNING PROBLEM IN PREDEFORMATION AS a>16\n"); return 0; } return splinefun(ss-a+3)*CoefCalphaOrg[measurenumber][a-3-1]+splinefun(ss-a+2)*CoefCalphaOrg[measurenumber][a-2-1]+splinefun(ss-a+1)*CoefCalphaOrg[measurenumber][a-1-1]+splinefun(ss-a)*CoefCalphaOrg[measurenumber][a-1]; } double presplinedeformationCalphanew(double measurevalue, int measurenumber) { double CoefCalphaNew[29][16]={{-1.022043e+01, -5.673251e+00, -5.109977e+00, -4.515572e+00, -3.920791e+00, -3.315927e+00, -2.694542e+00, -2.072482e+00, -1.459846e+00, -8.388197e-01, -2.126423e-01, 4.441569e-01, 1.154193e+00, 1.859077e+00, 2.844650e+00, 0.000000e+00},/* */{-6.945792e+00, -4.441694e-01, -2.081807e-01, 4.892523e-02, 3.033886e-01, 5.427508e-01, 7.881182e-01, 1.041829e+00, 1.290606e+00, 1.539794e+00, 1.795005e+00, 2.041712e+00, 2.288341e+00, 2.543794e+00, 2.812216e+00, 0.000000e+00},/* */{-3.808358e+01, -1.452142e+01, -1.416696e+01, -1.367478e+01, -1.305820e+01, -1.246337e+01, -1.183278e+01, -1.135032e+01, -1.091899e+01, -1.052440e+01, -1.017863e+01, -9.747768e+00, -9.429296e+00, -8.999715e+00, -8.824979e+00, 0.000000e+00},/* */{-2.667715e+00, -2.359095e+00, -2.112318e+00, -1.854287e+00, -1.554363e+00, -1.280617e+00, -9.654002e-01, -6.694114e-01, -3.721960e-01, -8.002989e-02, 2.655362e-01, 5.351787e-01, 8.459453e-01, 1.150311e+00, 1.484096e+00, 0.000000e+00},/* */{-2.202387e+00, -6.054824e+00, -5.622242e+00, -5.384090e+00, -5.119058e+00, -4.852244e+00, -4.564886e+00, -4.268020e+00, -3.995904e+00, -3.693291e+00, -3.433267e+00, -3.118993e+00, -2.802019e+00, -2.479632e+00, -2.247915e+00, 0.000000e+00},/* */{-1.027688e+01, -5.503177e+00, -5.083463e+00, -4.633020e+00, -4.196990e+00, -3.768040e+00, -3.317712e+00, -2.906712e+00, -2.504089e+00, -2.086427e+00, -1.681782e+00, -1.270625e+00, -8.264659e-01, -4.492907e-01, -5.198454e-02, 0.000000e+00},/* */{-6.223286e+00, -6.755129e+00, -6.593793e+00, -6.431788e+00, -6.242316e+00, -6.025544e+00, -5.807117e+00, -5.581122e+00, -5.354590e+00, -5.122051e+00, -4.862186e+00, -4.623467e+00, -4.433281e+00, -4.227595e+00, -4.108058e+00, 0.000000e+00},/* */{-2.199577e+01, -1.202079e+01, -1.191170e+01, -1.134749e+01, -1.093022e+01, -1.043141e+01, -9.918041e+00, -9.382728e+00, -8.777832e+00, -8.231580e+00, -7.579214e+00, -7.039768e+00, -6.366825e+00, -5.793309e+00, -5.222663e+00, 0.000000e+00},/* */{-4.132907e+00, -8.980722e+00, -8.483384e+00, -8.022353e+00, -7.519826e+00, -6.965669e+00, -6.325899e+00, -5.769631e+00, -5.069582e+00, -4.481171e+00, -3.777932e+00, -3.293969e+00, -2.725822e+00, -2.285528e+00, -1.648954e+00, 0.000000e+00},/* */{-4.375374e+00, -3.637166e+00, -3.260730e+00, -2.888041e+00, -2.471268e+00, -2.063043e+00, -1.671798e+00, -1.288467e+00, -8.985132e-01, -4.971453e-01, -8.729825e-02, 2.917771e-01, 6.360047e-01, 1.070199e+00, 1.431675e+00, 0.000000e+00},/* */{5.587004e+00, 5.069940e+00, 5.566110e+00, 5.923896e+00, 6.310691e+00, 6.757923e+00, 7.188497e+00, 7.650106e+00, 8.149477e+00, 8.729015e+00, 9.298448e+00, 9.769806e+00, 1.025161e+01, 1.067721e+01, 1.125619e+01, 0.000000e+00},/* */{-5.415667e+00, -5.001212e+00, -4.587147e+00, -4.216132e+00, -3.817904e+00, -3.451488e+00, -3.008831e+00, -2.618388e+00, -2.203575e+00, -1.806360e+00, -1.396439e+00, -1.026924e+00, -5.885159e-01, -2.406653e-01, 2.305789e-01, 0.000000e+00},/* */{-1.611904e+01, -7.715713e+00, -7.379839e+00, -6.883516e+00, -6.413935e+00, -5.854990e+00, -5.371484e+00, -4.774634e+00, -4.168858e+00, -3.563709e+00, -2.944724e+00, -2.328611e+00, -1.670275e+00, -1.002568e+00, -5.702408e-01, 0.000000e+00},/* */{-1.444988e+01, -7.489050e+00, -7.181202e+00, -6.813808e+00, -6.468570e+00, -6.049876e+00, -5.669575e+00, -5.285868e+00, -4.927988e+00, -4.547121e+00, -4.168992e+00, -3.785502e+00, -3.429022e+00, -3.059825e+00, -2.721411e+00, 0.000000e+00},/* */{-1.073081e+01, -9.210469e+00, -8.853406e+00, -8.738926e+00, -8.582025e+00, -8.315546e+00, -8.157126e+00, -7.725160e+00, -7.347063e+00, -6.737670e+00, -6.454792e+00, -6.139445e+00, -5.924127e+00, -5.792245e+00, -5.544614e+00, 0.000000e+00},/* */{-6.592760e+00, 7.031428e-01, 6.665296e-01, 9.171217e-01, 1.017995e+00, 1.180821e+00, 1.405540e+00, 1.550663e+00, 1.708191e+00, 1.823997e+00, 1.968231e+00, 2.078781e+00, 2.218312e+00, 2.335107e+00, 2.510290e+00, 0.000000e+00},/* */{1.563435e+00, -5.825979e-01, -2.251505e-01, -1.288077e-02, 3.098490e-01, 5.928416e-01, 9.729463e-01, 1.323093e+00, 2.040682e+00, 2.579530e+00, 2.934737e+00, 3.272113e+00, 3.603578e+00, 3.815528e+00, 4.173744e+00, 0.000000e+00},/* */{-6.113174e-01, -7.846237e-01, -7.597642e-01, -6.161209e-01, -5.233465e-01, -3.777681e-01, -2.315315e-01, -4.992162e-02, 1.312869e-01, 2.538269e-01, 3.949310e-01, 4.953781e-01, 6.256746e-01, 7.234966e-01, 8.663756e-01, 0.000000e+00},/* */{-1.268815e+00, -5.214119e-01, -4.949137e-01, -3.756819e-01, -2.746838e-01, -1.375973e-01, -1.410390e-02, 1.345969e-01, 2.762125e-01, 4.223013e-01, 5.667723e-01, 7.087235e-01, 8.672988e-01, 9.566240e-01, 1.089657e+00, 0.000000e+00},/* */{-2.713323e+00, -2.835140e+00, -2.672170e+00, -2.545607e+00, -2.405050e+00, -2.284063e+00, -2.118973e+00, -1.941636e+00, -1.745351e+00, -1.510684e+00, -1.285044e+00, -1.134234e+00, -9.248740e-01, -7.652693e-01, -6.376662e-01, 0.000000e+00},/* */{-7.049540e+00, -1.230206e+01, -1.192029e+01, -1.161157e+01, -1.129534e+01, -1.092185e+01, -1.059090e+01, -9.642770e+00, -9.077614e+00, -8.660075e+00, -8.253944e+00, -7.921857e+00, -7.670662e+00, -7.376979e+00, -7.261573e+00, 0.000000e+00},/* */{3.554987e+00, 3.860075e+00, 3.960303e+00, 4.081331e+00, 4.227219e+00, 4.351970e+00, 4.564150e+00, 4.730513e+00, 4.927617e+00, 5.230843e+00, 5.471028e+00, 5.635116e+00, 5.789697e+00, 5.946798e+00, 6.207319e+00, 0.000000e+00},/* */{-5.630399e+00, -6.700020e+00, -6.598295e+00, -6.455081e+00, -6.338798e+00, -6.240210e+00, -6.062392e+00, -5.913847e+00, -5.681412e+00, -5.467231e+00, -5.293321e+00, -5.087409e+00, -4.934734e+00, -4.731242e+00, -4.697878e+00, 0.000000e+00},/* */{-1.559733e+01, -4.735866e+00, -4.585365e+00, -4.469057e+00, -4.276035e+00, -4.117168e+00, -3.968017e+00, -3.799680e+00, -3.625358e+00, -3.407268e+00, -3.161770e+00, -2.907989e+00, -2.681693e+00, -2.558691e+00, -2.395861e+00, 0.000000e+00},/* */{-6.617084e+00, -6.595266e+00, -6.416685e+00, -6.302219e+00, -6.136272e+00, -5.952989e+00, -5.816858e+00, -5.613805e+00, -5.396605e+00, -5.125987e+00, -4.921291e+00, -4.651057e+00, -4.536098e+00, -4.410255e+00, -4.200978e+00, 0.000000e+00},/* */{-6.273604e+00, -4.171191e+00, -4.051720e+00, -3.888250e+00, -3.701981e+00, -3.441993e+00, -3.161095e+00, -2.896528e+00, -2.588697e+00, -2.309606e+00, -2.128251e+00, -1.897308e+00, -1.688176e+00, -1.522667e+00, -1.327367e+00, 0.000000e+00},/* */{-1.146375e+01, -1.228110e+01, -1.221622e+01, -1.180033e+01, -1.155654e+01, -1.121121e+01, -1.082499e+01, -1.054093e+01, -9.878760e+00, -9.434193e+00, -9.041862e+00, -8.749843e+00, -8.431162e+00, -8.192864e+00, -7.977172e+00, 0.000000e+00},/* */{9.868993e+00, 7.188876e+00, 7.403959e+00, 7.483963e+00, 7.655147e+00, 7.842711e+00, 8.034760e+00, 8.227436e+00, 8.500959e+00, 8.831192e+00, 9.072816e+00, 9.219329e+00, 9.464403e+00, 9.551125e+00, 9.842555e+00, 0.000000e+00},/* */{-1.300258e+01, -8.143445e+00, -8.049160e+00, -7.807858e+00, -7.621204e+00, -7.381452e+00, -7.039130e+00, -6.704561e+00, -6.410524e+00, -6.024031e+00, -5.887703e+00, -5.584039e+00, -5.538617e+00, -5.292546e+00, -5.189083e+00, 0.000000e+00}}; double knotsstartend[29][2]={{-1.710778e+00, 3.721247e+00},/* */{-2.762178e+00, 2.572634e+00},/* */{-2.175692e+00, 3.299203e+00},/* */{-2.444458e+00, 3.188739e+00},/* */{-2.499671e+00, 3.149118e+00},/* */{-2.063703e+00, 3.268983e+00},/* */{-1.858791e+00, 3.542937e+00},/* */{-3.335414e+00, 2.165310e+00},/* */{-3.136738e+00, 2.445955e+00},/* */{-3.736891e+00, 1.764543e+00},/* */{-3.305861e+00, 2.320500e+00},/* */{-3.116074e+00, 2.046173e+00},/* */{-3.966153e+00, 1.646521e+00},/* */{-3.429630e+00, 1.796802e+00},/* */{-2.695726e+00, 2.345148e+00},/* */{-2.105666e+00, 3.240836e+00},/* */{-2.736646e+00, 2.615384e+00},/* */{-2.363839e+00, 2.798067e+00},/* */{-2.867205e+00, 1.909386e+00},/* */{-3.126988e+00, 2.294584e+00},/* */{-2.535714e+00, 2.984478e+00},/* */{-2.342632e+00, 2.634388e+00},/* */{-3.027273e+00, 2.367289e+00},/* */{-3.346432e+00, 1.934190e+00},/* */{-2.948940e+00, 2.303805e+00},/* */{-2.620212e+00, 2.694336e+00},/* */{-2.289288e+00, 2.245806e+00},/* */{-2.893821e+00, 2.440978e+00},/* */{-2.172856e+00, 2.506878e+00}}; double prepost[29][6]={{-6.243733e-01, -5.225287e+00, 2.283746e+00, 2.634842e+00, 2.075037e+00, 2.865197e+00},/* */{-1.695216e+00, -2.619306e-01, 1.310846e+00, 1.505672e+00, 2.594478e+00, 7.217729e-01},/* */{-1.080713e+00, -1.425704e+01, 2.993852e+00, 2.204224e+00, -8.974981e+00, 1.489806e+00},/* */{-1.317819e+00, -2.160795e+00, 8.486626e-01, 2.062100e+00, 1.217154e+00, 9.714297e-01},/* */{-1.369913e+00, -5.719636e+00, 9.574822e-01, 2.019360e+00, -2.438337e+00, 1.012615e+00},/* */{-9.971658e-01, -5.170589e+00, 1.840708e+00, 2.202446e+00, -3.685721e-01, 1.368016e+00},/* */{-7.784450e-01, -6.625079e+00, 5.194738e-01, 2.462591e+00, -4.205721e+00, 7.980071e-01},/* */{-2.235269e+00, -1.190784e+01, 1.561394e+00, 1.065165e+00, -5.673222e+00, 2.295605e+00},/* */{-2.020199e+00, -8.578823e+00, 1.289255e+00, 1.329417e+00, -2.140114e+00, 2.021647e+00},/* */{-2.636604e+00, -3.336819e+00, 1.320924e+00, 6.642562e-01, 1.133898e+00, 1.204916e+00},/* */{-2.180589e+00, 5.456418e+00, 1.457571e+00, 1.195228e+00, 1.079031e+01, 9.901023e-01},/* */{-2.083624e+00, -4.673634e+00, 1.473320e+00, 1.013723e+00, -1.368226e-01, 1.537454e+00},/* */{-2.843618e+00, -7.444079e+00, 1.857005e+00, 5.239864e-01, -9.360043e-01, 1.727827e+00},/* */{-2.384344e+00, -7.246561e+00, 1.672131e+00, 7.515155e-01, -2.991592e+00, 1.439331e+00},/* */{-1.687551e+00, -8.947070e+00, 1.140940e+00, 1.336973e+00, -5.725779e+00, 1.193065e+00},/* */{-1.036365e+00, 6.885838e-01, 7.176493e-01, 2.171536e+00, 2.371545e+00, 3.652866e-01},/* */{-1.666240e+00, -3.056905e-01, 9.262838e-01, 1.544978e+00, 3.893610e+00, 7.837513e-01},/* */{-1.331458e+00, -7.543357e-01, 2.168256e-01, 1.765686e+00, 7.545716e-01, 3.985423e-01},/* */{-1.911887e+00, -4.932613e-01, 2.807923e-01, 9.540676e-01, 9.853301e-01, 3.762646e-01},/* */{-2.042673e+00, -2.707491e+00, 5.103429e-01, 1.210270e+00, -7.417994e-01, 5.188261e-01},/* */{-1.431675e+00, -1.199537e+01, 8.456939e-01, 1.880440e+00, -7.359583e+00, 1.085501e+00},/* */{-1.347228e+00, 3.941759e+00, 4.236768e-01, 1.638984e+00, 5.999103e+00, 3.743844e-01},/* */{-1.948360e+00, -6.613538e+00, 3.225326e-01, 1.288377e+00, -4.732868e+00, 6.378293e-01},/* */{-2.290308e+00, -4.632664e+00, 1.272917e+00, 8.780654e-01, -2.519749e+00, 7.007070e-01},/* */{-1.898391e+00, -6.457663e+00, 5.604023e-01, 1.253256e+00, -4.355958e+00, 9.491859e-01},/* */{-1.557303e+00, -4.074504e+00, 6.192396e-01, 1.631426e+00, -1.479556e+00, 7.450802e-01},/* */{-1.382269e+00, -1.219807e+01, 6.684800e-01, 1.338787e+00, -8.141306e+00, 1.584302e+00},/* */{-1.826861e+00, 7.353276e+00, 4.058494e-01, 1.374019e+00, 9.613367e+00, 8.278267e-02},/* */{-1.236909e+00, -8.061824e+00, 9.607217e-01, 1.570931e+00, -5.277242e+00, 1.018303e+00}}; /*this is prepostCalphaoNew*/ double ss; int a; if (measurenumber>28){ printf("WARNING measure number is to high in Calpha New\n"); return -99999999999.9 ; } if (measurevalueprepost[measurenumber][3]){ return prepost[measurenumber][5]*(measurevalue-prepost[measurenumber][3])+prepost[measurenumber][4]; } ss=1+19*(measurevalue-knotsstartend[measurenumber][0])/(knotsstartend[measurenumber][1]-knotsstartend[measurenumber][0]); a=floor(ss); if(a>16) { printf("wRNING PROBLEM IN PREDEFORMATION AS a>16\n"); return 0; } return splinefun(ss-a+3)*CoefCalphaNew[measurenumber][a-3-1]+splinefun(ss-a+2)*CoefCalphaNew[measurenumber][a-2-1]+splinefun(ss-a+1)*CoefCalphaNew[measurenumber][a-1-1]+splinefun(ss-a)*CoefCalphaNew[measurenumber][a-1]; } double splinedeformationCalphaorg(double measurevalue, int measurenumber) { return presplinedeformationCalphaorg(measurevalue, measurenumber)-presplinedeformationCalphaorg(0.0, measurenumber); } double splinedeformationCalphanew(double measurevalue, int measurenumber) { return presplinedeformationCalphanew(measurevalue, measurenumber)-presplinedeformationCalphanew(0.0, measurenumber); } /**********************PRINTING*******************/ void GaussIntegrals(void) { extern int nres; extern double polyl[MAXLENGTH][3]; extern double partsum[MAXLENGTH][MAXLENGTH]; double invar[29], invar2[29], R1,R12, R2,R22, smoothbacbonelength,smoothbacbonelength_back, v1[3]; double gaussint[29], gaussint2[29]; double scales2order[29]={0.,1.0059, 0.6025, 0.7274, 0.7338, 1.0524, 13.6944, 4.0666, 3.4855, 0.8277, 3.8296, 0.6918, 2.0215, 0.9243, 0.3171, 6.7371, 3.4645, 6.7988, -1.8539, 23.2397, 3.2125, -6.7321, -60.2435, 11.6135, -39.5212, -0.3665, 2.6708, 39.9532, 1.3327}; double scales2ordersmooth[29]={ 0.000000e+00, 1.039329e+00, 9.771578e-03, -2.624606e+00, -2.761606e+00, 4.055914e+02, 1.744519e-03, -3.143907e-01, -2.198699e-01, 1.384338e+02, 4.572647e-03, -2.832035e+00, -6.652118e-01, 2.216269e+02, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00}; double fitcoef3order[4][30]={{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 3.300254e-01, -6.445656e-03, -3.663870e-02, -4.704765e-03, 2.035057e-05, -6.936558e-04, 2.484670e-02, -3.957696e-06, 2.436689e-05, 6.354898e-04, 3.108727e-05, -1.663249e-04, -2.461276e-03, -7.235432e-05, -4.429750e-04},{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -1.445703e+00, 3.358944e-01, 1.082980e-01, 3.762040e-01, 9.632395e-03, 1.817898e-02, -1.527511e-01, -2.477205e-03, 6.961623e-04, 6.263854e-02, 2.203401e-04, -2.872356e-03, -8.179391e-02, 8.723373e-03, -2.767734e-03},{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -4.552952e-01, -1.327581e-02, 1.842301e-01, -1.113365e-02, -1.734630e-04, -5.123921e-04, 2.695453e-01, -2.744619e-04, -8.456795e-04, -1.928650e-03, -1.131743e-03, 7.353213e-04, 2.148590e-01, 3.772707e-03, 9.536288e-03},{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -2.389632e-02, 3.705009e-01, 1.061140e+00, 2.680487e-01, -1.058196e-02, 4.529179e-02, -5.493136e-01, 5.274348e-03, -3.910647e-03, -5.922653e-02, -3.572589e-03, 1.368161e-02, -5.621730e-03, -1.940846e-03, 1.820422e-02}}; double fitcoef3ordersmooth[4][31]={{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 2.891192e-01, 6.776607e-03, 2.171263e-02, 7.035961e-03, -1.396743e-03, -3.727756e-04, 2.469942e-02, -3.696977e-04, -4.516382e-04, 1.320793e-03, 9.492686e-05, -3.673666e-03, -3.862823e-03, -2.694790e-03, -5.967507e-03},/* */{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -4.673419e-01, 2.628907e-01, 7.915791e-02, 2.651258e-01, 5.228681e-02, 5.545261e-02, -8.421819e-04, 2.789268e-02, 1.169106e-02, 1.844081e-02, 7.532571e-03, 4.739005e-02, -1.475045e-01, 4.220526e-02, -3.022622e-02},/* */{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -1.448568e-01, -1.981682e-02, 3.805253e-02, -1.624695e-02, -1.448439e-03, 5.549353e-03, 2.975958e-02, -2.610117e-03, 3.983089e-04, 1.113884e-02, -3.345207e-03, 3.354085e-03, 2.547726e-01, 1.331286e-02, 8.324710e-02},/* */{0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -2.036573e-05, 1.887763e-05, 2.676509e-05, -2.694326e-06, -2.417911e-05, 5.769087e-05, -1.331947e-05, 2.895806e-07, -5.701623e-06, -1.509898e-06, -1.363764e-05, -5.481478e-05, -5.027138e-05, -2.042450e-05, 4.670799e-05}}; double scalelawsorg[29]={.92, 1.37, 1.89, 2.26, 2.26, 2.68, 0.90, 1.64, 1.76, 2.56, 1.32, 2.43, 1.80, 2.76, 2.90, 1.88, 2.65, 1.86, 1.69, 2.09, 2.81, 1.24, 1.38, 2.19, 2.14, 1.8, 2.04, 1.19, 2.24}; double scalelawsnew[29]={0.92, 1.00, 1.01, 1.92, 2.03, 2.28, 0.98, 1.68, 1.69, 2.17, 1.48, 1.93, 1.99, 2.36, 1.53, 1.96, 2.11, 2.07, 1.69, 2.14, 1.86, 1.19, 1.23, 2.09, 2.10, 1.83, 2.16, 0.96, 2.23}; double scalelawssmoothorg[30]={0.98, 0.79, 1.28, 1.68, 2.23, 2.25, 2.87, 1.29, 1.53, 1.63, 2.28, 1.36, 2.11, 1.87, 2.55, 2.74, 2.02, 1.99, 2.24, 1.76, 1.50, 2.24, 1.15, 1.15, 1.66, 1.94, 1.74, 2.42, 1.78, 1.80}; double scalelawssmoothnew[30]={0.92, 0.79, 1.01, 1.56, 1.88, 1.92, 1.50, 1.24, 1.34, 1.48, 0.93, 1.27, 1.47, 1.76, 0.94, 1.37, 1.45, 1.51, 2.06, 1.57, 1.44, 2.01, 1.09, 0.99, 1.64, 1.91, 1.76, 1.88, 1.75, 1.72}; double variansernew[30]={1.015899e+00, 6.046441e-02, 3.494607e-02, 3.406224e-02, 2.585240e-03, 1.441085e-03, 1.243288e-03, 4.466983e-03, 1.570046e-03, 1.685361e-03, 1.175530e-03, 2.416459e-03, 1.782516e-03, 1.133752e-03, 4.762324e-04, 4.953829e-03, 5.593157e-05, 1.956618e-04, 3.128713e-05, 2.600544e-05, 1.784686e-05, 7.642103e-04, 2.781596e-04, 2.617582e-04, 2.663494e-05, 4.370924e-06, 8.149216e-05, 1.113821e-04, 2.377183e-03, 1.769148e-05}; double varianserorg[30]={1.015899e+00, 6.046441e-02, 5.884097e-03, 2.993718e-03, 1.502210e-03, 1.459503e-03, 2.992914e-04, 8.094224e-03, 2.725560e-03, 1.716925e-03, 1.982405e-04, 5.378608e-03, 2.947282e-04, 2.712258e-03, 1.039000e-04, 8.584549e-05, 4.481765e-04, 1.760766e-05, 4.933158e-04, 2.891304e-05, 2.412347e-05, 9.506914e-06, 2.199716e-04, 1.306271e-04, 1.597722e-05, 3.813277e-06, 9.418928e-05, 4.578298e-04, 1.168567e-03, 1.948569e-05}; double vs[30]={2.178927e+02, 2.632709e+00, 1.896596e+01, 7.482618e+00, 5.122873e+01, 5.539920e+01, 4.408378e+02, 6.640930e-01, 8.953117e+00, 1.013272e+01, 2.048619e+02, 1.840360e+00, 3.586241e+01, 1.570184e+01, 2.857427e+02, 2.037704e+01, 1.966589e+00, 3.038134e+00, 2.048440e+00, 2.777770e-01, 5.623737e-01, 2.804170e+00, 1.716416e-01, 1.191713e-01, 4.936448e-01, 1.773537e-01, 4.841054e-01, 3.842461e+00, 3.365983e-01, 1.054532e+00}; /*variance_smooth_CATH2.4_Hclasses*/ double backpolyl[MAXLENGTH][3], psum[3][3],crossvec[3]; double backcenterecdpolyl[MAXLENGTH][3]; double invarlength, invarlength2; double invarsmoothorg[30],invarsmoothnew[30]; double invarCalphaorg[29],invarCalphanew[29]; double distance, vcenter_of_mass[3], center_of_mass[3], v_centred[3]; double A1[3],A2[3],A3[3],B[3],det,det1,det2,det3,rot_vec[3]; int i,j,k,ii; if(dipeptide==1){print_dipeptide_frequeces();} if(SmoothenBackBone==1){ PerturbBackBone(pow(10,-9)); } for(j=1;j<=nres;j++){ for(i=0;i<3;i++){ backpolyl[j][i]=polyl[j][i]; } } if(SmoothenBackBone==1){ SmoothenTheBackbone(); smoothbacbonelength=0; for(i=1;i \n",argv[4]); return; } farrayo=fopen(argv[3],"w"); if (farrayo==(FILE *)NULL) { printf("Sorry - could not open file <%s>\n",argv[3]); return; } favgauss=fopen(argv[2],"r"); if (favgauss==(FILE *)NULL) { printf("Sorry - could not open file <%s>\n",argv[2]); return; } while(fgets(line,999,favgauss)!=NULL) { sscanf(line,"%li %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf\n",&nres,&inv[0],&inv[1],&inv[2],&inv[3],&inv[4],&inv[5],&inv[6],&inv[7],&inv[8],&inv[9],&inv[10],&inv[11],&inv[12],&inv[13],&inv[14],&inv[15],&inv[16],&inv[17],&inv[18],&inv[19],&inv[20],&inv[21],&inv[22],&inv[23],&inv[24],&inv[25],&inv[26],&inv[27],&inv[28]); for(i=0;i<29;i++) { if(inv[i]<=0 && nres>9) { printf("Warning, In table in <%s> with pre-calculated\n average Gauss integrals the term %i for proteins of length %i is zero or negative\n This is NOT POSSIBLE\n",argv[2],i,nres); fprintf(ferroro,"Warning, In table in <%s> with pre-calculated\n average Gauss integrals the term %i for proteins of length %i is zero or negative\n This is NOT POSSIBLE\n",argv[2],i,nres); return; } refGauss[nres][i]=inv[i]; } } if(nres with pre-calculated\n average Gauss integrals is not large enough\n",argv[2]); fprintf(ferroro, "Warning, the table in <%s> with pre-calculated\n average Gauss integrals is not large enough\n",argv[2]); return ; } /*for(i=1;i<200000;i++){rnd();}*/ dirwalk(argv[1]); /*for(i=-200;i<200;i++){ fprintf(farrayo,"%e %e\n",i/100.0, presplinedeformationCalphanew(i/100.0 ,28)); } */ printf("There has been calculated 29 Tuned Gauss Integrals for %i protein strands.\n", n_proteins); fclose(farrayo); fclose(favgauss); fclose(ferroro); }