#include #include #include #define NFORWARD 4 #define DIM 3 #define MAXBUF 5000 #define MAXCHAR_LINE 10000 #define READ(a,b) fread(&(b),sizeof(b),1,(a)) inline int strindex(const char *a, const char *b, int isleft) { int la=(int)strlen(a); int lb=(int)strlen(b); if (lb==0) return -1; if (lb>la) return -1; int i; for (i=isleft?0:la-lb;isleft?i<=la-lb:i>=0;i+=isleft?1:-1) if (strncmp(a+i,b,lb)==0) return i; return -1; } void get_line (FILE *fp, char *buffer) { int i=0; char gc; if (feof(fp)==0) READ(fp,gc); while ((gc!=10) && (feof(fp)==0)) { if (gc!=13) { buffer[i]=gc;i++;} READ(fp,gc); if (i>MAXCHAR_LINE) {i=0;break;} } buffer[i]=0; } #define MAXBUFFER 5000 void trcspace(char *tstr) { char tempstr[MAXBUFFER],temp[MAXBUFFER]; int ti,tend,tspcnt; int i; if (strlen(tstr)==0) { tempstr[0]='|'; tempstr[1]='n'; tempstr[2]='o'; tempstr[3]='n'; tempstr[4]='e'; i=5; } else { i=0; tend=(int)strlen(tstr); tspcnt=0; for( ti=0;ti< tend;ti++) if (tstr[ti]==' ') tspcnt++; if (tspcnt==tend) { tempstr[0]='|'; tempstr[1]='n'; tempstr[2]='o'; tempstr[3]='n'; tempstr[4]='e'; i=5; } else { int j; for (j=1;j<=tend;j++) {temp[j]=tstr[j-1]; if (temp[j]==9) temp[j]=' '; } temp[0]=' '; temp[tend+1]=0; for( ti=0;tib) { float c=b; b=a; a=c; } float d=(b-a)/b; if (dparcnt(pstr)) {tempstr[0]=0;exit;} else { int i=0; pj=0; for( pai=0;pai<(int)strlen(pstr);pai++) if (pstr[pai]=='|') { pj++;} else { if (pj==pnum) { tempstr[i]=pstr[pai];i++;} } tempstr[i]=0; } } int main (int agrc, char * argv[]) { int i,k,j,l,m,n; char buffer[MAXBUF],buf[MAXBUF]; #define MAXINTTYP 256 #define NAMINO 28 int nparam=0; float vdwParam[MAXINTTYP][2]; char aanm[NAMINO][11]={ "ALA","GLY","PRO","DPR" ,"LEU","LYS","ARG","MET" ,"GLU","GLUH","ASP","ASPH" ,"GLN","ASN","VAL","ILE" ,"PHE","TYR","TRP","HIS" ,"HISH","CYS","CYSH","SER" ,"THR","ACE","NMA","HISE" }; #define NLIP 2 char lipnm[NLIP][11]={ "POPE","POPC" }; FILE *fp,*ftmp,*fprm; fp=fopen(argv[1],"r"); int ok=0; while ((feof(fp)==0)&&(ok==0)) { get_line(fp,buffer); trcspace (buffer); if (parcnt(buffer)==2) { parstr(buffer,2,buf); if (strcmp(buf,"!NATOM")==0) {ok=1;break;} } } if (ok==0) { printf( "Wrong PSF file!\n"); exit (1); } parstr (buffer,1,buf); int psfnatom; sscanf (buf,"%d",&psfnatom); char **psfnewnm,**psfsegnm, **psfresnm, **psfatomnm, **psfatomtype; int *psfresid,*psfispair; int *islip; int nlipatom=0; /*0 not in the pair list 1 yes*/ //loading all atom info from psf psfnewnm =malloc (psfnatom * sizeof (char *)); psfsegnm = malloc (psfnatom * sizeof (char *)); psfresnm = malloc (psfnatom * sizeof (char *)); psfatomnm = malloc (psfnatom * sizeof (char *)); psfatomtype = malloc (psfnatom * sizeof (char *)); psfresid = malloc (psfnatom * sizeof (int)); islip = malloc(psfnatom*sizeof(int)); // for (i=0;icbi+4 0.671 0.47 if (i<=nres-4) { if ((CA[i]>=0) && (CB[i+4]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.89314E-02 3.11858E-04 ; 0.671 0.47 nm\n", CA[i]+1, CB[i+4]+1); } if ((CA[i]>=0) && (CA[i+4]>=0)&&(strcmp(resnm[i+4],"GLY")==0)) { npair++;fprintf(ftmp,"%d %d 1 4.19375E-02 6.55273E-04 ; 0.671 0.50 GLY nm\n", CA[i]+1, CA[i+4]+1); } } //reinforce Oi-Ni+3 HB for turn if (i<=nres-3) { if ((strcmp(resnm[i+3],"PRO")!=0)&&(strcmp(resnm[i+3],"DPR")!=0)) if ((O[i]>=0) && (NH[i+3]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.12369E-02 2.14740E-06 ; Oi-Ni+3 \n", O[i]+1, NH[i+3]+1); } } if (i<=nres-4) { if ((strcmp(resnm[i+4],"PRO")!=0)&&(strcmp(resnm[i+4],"DPR")!=0)) if ((O[i]>=0) && (NH[i+4]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.12369E-02 2.14740E-06 ; Oi-Ni+4 \n", O[i]+1, NH[i+4]+1); } } // correct for gamma particles if ((OG[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.13380E-03 1.28550E-07 ; 2.5 0.22 nm OG-H \n", OG[i]+1, H[i]+1); } if ((OG[i]>=0) && (O[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 7.74841E-04 1.50095E-06 ; 2.5 0.27 nm OG-Oi rep\n", OG[i]+1, O[i]+1); } if ((OG[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.83970E-03 4.12285E-06 ; OG-Ni+1 \n", OG[i]+1, NH[i+1]+1); } if ((OG[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.13380E-03 1.28550E-07 ; Og-Hi+1\n", OG[i]+1, H[i+1]+1); } if (i>idx2res[m]) { if ((OG[i]>=0) && (O[i-1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.87420E-03 1.50095E-06 ; Og-Oi-1 \n", OG[i]+1, O[i-1]+1); } } // og1 if ((OG1[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.26760E-04 1.28550E-07 ; OG1-Hi rep\n", OG1[i]+1, H[i]+1); } if ((OG1[i]>=0) && (O[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 7.74841E-04 1.50095E-06 ; OG1-Oi rep\n", OG1[i]+1, O[i]+1); } if ((OG1[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.83970E-03 4.12285E-06 ; OG1-Ni+1 \n", OG1[i]+1, NH[i+1]+1); } if ((OG1[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.13380E-03 1.28550E-07 ; Og1-Hi+1\n", OG1[i]+1, H[i+1]+1); } if (i>idx2res[m]) { if ((OG1[i]>=0) && (O[i-1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.87420E-03 1.50095E-06 ; Og1-Oi-1 \n", OG1[i]+1, O[i-1]+1); } } if ((strcmp(resnm[i],"ASP")==0)||(strcmp(resnm[i],"ASN")==0)||(strcmp(resnm[i],"ASPH")==0)) { if ((CG[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 0.0 8.5E-07 ; CG-Hi asx\n", CG[i]+1, H[i]+1); } if ((CG[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 0.0 8.5E-07 ; CG-Hi+1 asx\n", CG[i]+1, H[i+1]+1); } if ((CG[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.91985E-03 2.06142E-06 ; CG-Ni+1 asx \n", CG[i]+1, NH[i+1]+1); } if ((ND2[i]>=0) && (NH[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.30345E-03 9.50217E-07 ; ND2-Ni asx \n", ND2[i]+1, NH[i]+1); } if ((ND2[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.76211E-03 4.26692E-06 ; ND2-Ni+1 asx \n", ND2[i]+1, NH[i+1]+1); } if (strcmp(resnm[i],"ASN")==0) { if ((HD21[i]>=0) && (O[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ; HD21-Oi asx\n", HD21[i]+1, O[i]+1); } if ((OD1[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ; OD1-Hi asx\n", OD1[i]+1, H[i]+1); } if ((OD1[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ; OD1-Hi+1 asx\n", OD1[i]+1, H[i+1]+1); } } if ((strcmp(resnm[i],"ASP")==0)||(strcmp(resnm[i],"ASPH")==0)) { if ((OD1[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ; OD1-Hi asx\n", OD1[i]+1, H[i]+1); } if ((OD1[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ;; OD1-Hi+1 asx\n", OD1[i]+1, H[i+1]+1); } if ((OD2[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ;; OD2-Hi asx\n", OD2[i]+1, H[i]+1); } if ((OD2[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.275068E-03 2.139210E-08 ;; OD2-Hi+1 asx\n", OD2[i]+1, H[i+1]+1); } if ((CG[i]>=0) && (O[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 7.41398E-03 2.29029E-06 ;; CG-Oi asx\n", CG[i]+1, O[i]+1); } } } else if ((strcmp(resnm[i],"PHE")==0)||(strcmp(resnm[i],"TYR")==0)|| (strcmp(resnm[i],"TRP")==0)||(strcmp(resnm[i],"HIS")==0)||(strcmp(resnm[i],"HISE")==0)||(strcmp(resnm[i],"HISH")==0)) { if ((CG[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 6.53184E-04 4.76171E-07 ; CG-Hi aro\n", CG[i]+1, H[i]+1); } if ((CG[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 6.53184E-04 4.76171E-07 ; CG-Hi+1 aro\n", CG[i]+1, H[i+1]+1); } if ((CG[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.91985E-03 2.06142E-06 ; CG-Ni+1 aro \n", CG[i]+1, NH[i+1]+1); } if ((CD1[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 6.53184E-04 4.76171E-07 ; Hi-CD1 aro\n", CD1[i]+1, H[i]+1); } if ((ND1[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 6.53184E-04 4.76171E-07 ; Hi-ND1 aro\n", ND1[i]+1, H[i]+1); } if ((CD2[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 6.53184E-04 4.76171E-07 ; Hi-CD2 aro\n", CD2[i]+1, H[i]+1); } if ((CD1[i]>=0) && (NH[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.30345E-03 9.50217E-07 ; CD1-Ni aro\n", CD1[i]+1, NH[i]+1); } if ((ND1[i]>=0) && (NH[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.30345E-03 9.50217E-07 ; ND1-Ni aro\n", ND1[i]+1, NH[i]+1); } if ((CD2[i]>=0) && (NH[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.30345E-03 9.50217E-07 ; CD2-Ni aro\n", CD2[i]+1, NH[i]+1); } if (i>idx2res[m]) { if ((CD1[i]>=0) && (O[i-1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.06354E-03 6.32621E-07 ; CD1-Oi-1 aro\n", CD1[i]+1, O[i-1]+1); } } if (i>idx2res[m]) { if ((CD2[i]>=0) && (O[i-1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.06354E-03 6.32621E-07 ; CD2-Oi-1 aro\n", CD2[i]+1, O[i-1]+1); } } if ((CD1[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.76211E-03 4.26692E-06 ; CD1-Ni+1 aro\n", CD1[i]+1, NH[i+1]+1); } if ((ND1[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.76211E-03 4.26692E-06 ; ND1-Ni+1 aro\n", ND1[i]+1, NH[i+1]+1); } if ((CD2[i]>=0) && (NH[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.76211E-03 4.26692E-06 ; CD2-Ni+1 aro\n", CD2[i]+1, NH[i+1]+1); } } else { if ((CG[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.74675E-03 1.70645E-06 ; H-CG H 0.2 0.24 nm rep\n", CG[i]+1, H[i]+1); } if ((CG[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.74675E-03 1.70645E-06 ; H-CG H 0.2 0.24 nm rep\n", CG[i]+1, H[i+1]+1); } } if ((CG1[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.06354E-03 6.32621E-07 ; H-CG H 0.2 0.24 nm rep\n", CG1[i]+1, H[i]+1); } if ((CG1[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.06354E-03 6.32621E-07 ; H-CG H 0.2 0.24 nm rep\n", CG1[i]+1, H[i+1]+1); } if ((CG2[i]>=0) && (H[i]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.06354E-03 6.32621E-07 ; H-CG H 0.2 0.24 nm rep\n", CG2[i]+1, H[i]+1); } if ((CG2[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.06354E-03 6.32621E-07 ; H-CG H 0.2 0.24 nm rep\n", CG2[i]+1, H[i+1]+1); } if ((NH[i]>=0) && (C[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.37244E-03 5.68668E-06 ; 0.5 0.345 nm\n", NH[i]+1, C[i+1]+1); } if ((O[i]>=0) && (O[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 4.13270E-03 5.33725E-06 ; Oi-Oi+1 \n", O[i]+1, O[i+1]+1); } if ((NH[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 4.42E-04 1.64E-08 ; Ni---Hi+1 \n", NH[i]+1, H[i+1]+1); } if ((NH[i]>=0) && (O[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.87870E-03 2.31737E-06 ; 0.894 0.305 nm\n", O[i+1]+1, NH[i]+1); } if ((CA[i]>=0) && (O[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.26146E-03 3.19637E-06 ; 0.6 0.335 nm\n", CA[i]+1, O[i+1]+1); } if ((C[i]>=0) && (O[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.91985E-03 2.06142E-06 ; 0.6 0.32 nm\n", C[i]+1, O[i+1]+1); } if ((O[i]>=0) && (C[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 9.29809E-04 3.60227E-07 ; Oi-Ci+1\n", O[i]+1, C[i+1]+1); } if ((CA[i]>=0) && (C[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.49170E-03 6.92920E-06 ; 0.45 0.375 nm\n", CA[i]+1, C[i+1]+1); } if ((CB[i]>=0) && (H[i+1]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.74675E-03 1.70645E-06 ; H-Cb H 0.2 0.24 nm rep\n", CB[i]+1, H[i+1]+1); } if (i=0) && (C[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.37244E-03 5.68668E-06 ; 0.671 0.345 nm\n", NH[i]+1, C[i+2]+1); } if ((NH[i]>=0) && (O[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.87870E-03 2.31737E-06 ; 0.894 0.305 nm\n", O[i+2]+1, NH[i]+1); } if ((CA[i]>=0) && (O[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.26146E-03 3.19637E-06 ; 0.6 0.335 nm\n", CA[i]+1, O[i+2]+1); } if ((C[i]>=0) && (O[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.91985E-03 2.06142E-06 ; 0.6 0.32 nm\n", C[i]+1, O[i+2]+1); } if ((C[i]>=0) && (NH[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 3.37244E-03 5.68668E-06 ; 0.671 0.345 nm\n", C[i]+1, NH[i+2]+1); } if ((O[i]>=0) && (CA[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.26146E-03 3.19637E-06 ; 0.6 0.335 nm\n", CA[i+2]+1, O[i]+1); } if ((O[i]>=0) && (NH[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.10468E-03 3.41254E-07 ; Oi-Ni+2\n", O[i]+1, NH[i+2]+1); } if ((CA[i]>=0) && (CA[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.81500E-03 9.90525E-06 ; 0.45 0.39 nm\n", CA[i]+1, CA[i+2]+1); } if ((CA[i]>=0) && (C[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.49170E-03 6.92920E-06 ; 0.45 0.375 nm\n", CA[i]+1, C[i+2]+1); } if ((C[i]>=0) && (CA[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.49170E-03 6.92920E-06 ; 0.45 0.375 nm\n", C[i]+1, CA[i+2]+1); } if ((C[i]>=0) && (C[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 2.17678E-03 4.73838E-06 ; 0.45 0.36 nm\n", C[i]+1, C[i+2]+1); } if (i>idx2res[m]) { if ((C[i-1]>=0) && (O[i+2]>=0)) { npair++;fprintf(ftmp,"%d %d 1 1.91985E-03 2.06142E-06 ; 0.6 0.32 nm\n", C[i-1]+1, O[i+2]+1); } } } } } fclose (ftmp); //use info in temp.xvg int *pair1=malloc(npair*sizeof(int)); int *pair2=malloc(npair*sizeof(int)); int *pairtyp=malloc(npair*sizeof(int)); ftmp= fopen("temp.xvg","r"); for (i=0;i=0) lip2aidx[islip[i]]=i+1; for (i=0;i1) { parstr(buffer,2,buf); if (!strncmp(buf,"!NBO",4)) { found=1; break; } } }; if (!found) { printf("Error: No bond connections are found in the PSF.\n"); exit(1); } while (!feof(fp)) { get_line(fp,buffer); trcspace(buffer); if (parcnt(buffer)>1) { parstr(buffer,2,buf); if (!strncmp(buf,"!N",2)) { found=1; break; } //load bond idx pair int nidx=parcnt(buffer); for (i=1;i<=nidx;i+=2) { int idxa, idxb; parstr(buffer,i,buf); sscanf(buf,"%d",&idxa); parstr(buffer,i+1,buf); sscanf(buf,"%d",&idxb); if (islip[idxa-1]>=0&&islip[idxb-1]>=0) { int i_a = islip[idxa-1]; int i_b = islip[idxb-1]; if (lipconcnt[i_a]>=MAXCON||lipconcnt[i_b]>=MAXCON) { printf("Error: Too many connections to atom \n"); exit(1); } lipcon[i_a][(lipconcnt[i_a])++]=idxb; lipcon[i_b][(lipconcnt[i_b])++]=idxa; } } } }; //search for 13 interaction char *mark= malloc(nlipatom*sizeof(char)); int *queue= malloc(nlipatom*sizeof(int)); int *gene = malloc(nlipatom*sizeof(int)); struct LLpair { int ia; int ib; struct LLpair * next; }; struct LLpair ts, *tn; tn = &ts; tn->next=NULL; int nnewpair=0; for (i=0;inext = malloc(sizeof(struct LLpair)); tn= tn->next; tn->ia = lip2aidx[i]; tn->ib = lip2aidx[_ci]; tn->next=NULL; nnewpair++; } head++; continue; } for (j=0;jia; t_p2[npair]=tn->ib; //printf("%d %d\n",tn->ia, tn->ib); npair++; tn = tn->next; free(_t); } free(pair1); free(pair2); pair1 = t_p1; pair2 = t_p2; t_p1=t_p2=NULL; fclose(fp); for(i=0;ipair2[i]) { int ii = pair1[i]; pair1[i]=pair2[i]; pair2[i]= ii; } for (i=0;ipair1[j]) { int ii = pair1[i]; pair1[i]=pair1[j]; pair1[j]= ii; ii = pair2[i]; pair2[i]=pair2[j]; pair2[j]= ii; } else if ((pair1[i]==pair1[j])&& (pair2[i]>pair2[j])) { int ii = pair2[i]; pair2[i]=pair2[j]; pair2[j]= ii; } //now for all pairs like // 1 1 1 2 2 3 3 3 4 4 4 .. // 2 4 5 3 6 5 6 7 5 8 9 .. #if 0 ftmp=fopen(argv[2],"r"); fp=fopen(argv[4],"w"); while (!feof(ftmp)) { get_line(ftmp,buffer); fprintf(fp,"%s\n",buffer); } fclose(ftmp); fprintf(fp,"\n"); fprintf(fp,"MODP\n"); for (i=0;i1) { char ct[512]; parstr(buf,2,ct); if (!strcmp(ct,"!NATOM")) { showatom=1;turnoff=1; lastres=-1; suf_id=-1; fprintf(fp,"%s\n",buffer); continue;} if (!strcmp(ct,"!NNB")) { fprintf(fp,"%8d !NNB\n",npair); //output pairs //first part of NNB for (i=0;ic_idx) break; idx_pair1 = j; } fprintf(fp,"%8d",idx_pair1); wrapcnt++; if (wrapcnt==8) { wrapcnt=0; fprintf(fp,"\n"); } } if (wrapcnt) fprintf(fp,"\n"); fprintf(fp,"\n"); turnoff=1; continue; // for (i=0;i1) { char ct[512]; int resid; parstr(buf,3,ct); sscanf(ct,"%d", &resid); parstr(buf, 6, ct); int lc=(int)strlen(ct); int st= strindex(buffer, ct, 0); if (resid!=lastres) { suf_id++; if (suf_id==2*NFORWARD+1) suf_id=0; lastres=resid; } char resnm[512]; parstr(buf, 4, resnm); int ispro=0; for (i=0;i