CHARACTER*40 INFILE1,INFILE2,FILENAME CHARACTER*70 BSTRING, ASTRING LOGICAL EFLG, near(5000) real*8 M1(3,5000),M2(3),d INTEGER*4 I,J,k character*14 nres(5000),nres2 1200 FORMAT(A) write(6,*)'Read 2 .PDB files and divide first into two ' write(6,*) 'files based on threshold B-factor in second.' write(6,*) 'Use for rejecting high Bs (both files same)' write(6,*) 'or for rejecting waters with low density in resolve' write(6,*) 'in which case second file is from mapman peek value' write(6,*) 'far.pdb contains all atoms in file1 outside thresh' c read first file into m1 6 WRITE(6,*) 'ENTER NAME OF 1st pdb file:' READ(5,1200) INFILE1 IF (INFILE1(:5).EQ.' ') STOP INQUIRE(FILE=INFILE1, NAME=FILENAME,EXIST=EFLG) IF (.NOT.EFLG) GOTO 6 c OPEN (UNIT=2,FILE=INFILE1,STATUS='OLD',READONLY) OPEN (UNIT=2,FILE=INFILE1,STATUS='OLD') 8 WRITE(6,*) 'ENTER NAME OF 2nd pdb file:' READ(5,1200) INFILE2 IF (INFILE2(:5).EQ.' ') STOP INQUIRE(FILE=INFILE2, NAME=FILENAME,EXIST=EFLG) IF (.NOT.EFLG) GOTO 8 c OPEN (UNIT=3,FILE=INFILE2,STATUS='OLD',READONLY) OPEN (UNIT=3,FILE=INFILE2,STATUS='OLD') OPEN (UNIT=92,FILE='above.pdb',STATUS='UNKNOWN') OPEN (UNIT=93,FILE='below.pdb',STATUS='UNKNOWN') write(6,*)'Threshold oN B-factor or density' read (5,*) thresh write(6,*)'ATOMS FROM ',INFILE1(:15),' WITH B-FACTOR IN ',INFILE2(:15) write(6,*) 'GREATER THAN ',thresh,' WILL BE WRITTEN TO above.pdb.' write(6,*) 'OTHERS WILL BE WRITTEN TO below.pdb.' k=1 c read coord 50 read(2,1200,end=85) ASTRING read(3,1200,end=85) BSTRING if (ASTRING(1:30).ne.BSTRING(1:30)) stop 'files out of synch!' c write(6,*) ASTRING(k) read (BSTRING,51) nres(k),(m1(i,k),I=1,3),occup,bfact 51 format (12x,A14,4x,3d8.3,2f6.2) c write(6,*) ASTRING(k), k,nres(k),(m1(i,k),I=1,3) if (bfact.ge.thresh) write(92,1200) ASTRING if (bfact.lt.thresh) write(93,1200) ASTRING 80 goto 50 85 CLOSE (UNIT=2) CLOSE (UNIT=3) CLOSE (UNIT=92) CLOSE (UNIT=93) END