INTEGER*2 H,K,L,N,HMAX,HOFF CHARACTER*40 FNAME,ASTRING R32K=128*256 TYPE *,'READ DENZO OUTPUT FILE WRITE INPUT FOR PROTEIN' TYPE*,'USING PROFILE FITTED INTENSITY AND VARIATION, COLUMNS 5 AND 8 ' TYPE*,'SPOTS WITH NEGATIVE SIGMA (DENZO OVERFLOW) GIVEN CLASS 3, ', & 'POSITIVE SIGMA' write(6,*)' (1)Keep or (0)Discard partials?' read(5,*) pflag write(6,*)' enter bs shadow x, y, radius in pixels' write(6,*)' (x,y in denzo convention):' read(5,*) shadx,shady,shadr 30 TYPE *,'ENTER FILE NAME (Q TO QUIT):' 35 read(5,40)FNAME IF (FNAME.EQ.'Q') GOTO 501 40 FORMAT (A40) OPEN(UNIT=2,FILE=FNAME,STATUS='OLD',readonly) TYPE *,'ENTER FILE NAME FOR OUTPUT:' read(5,40)FNAME OPEN(UNIT=3,FILE=FNAME,STATUS='NEW') pcount=0 fcount=0 sums=0. sumi=0. sumr=0. N1=0 N2=0 DO 45 I=1,5 45 READ (2,50)ASTRING C TYPE*, ASTRING 50 FORMAT (A40) C 55 READ (2,60)X 60 FORMAT (F7.4) C70 READ(2,101,END=500)H,K,L,J,X1,X2,X,S,X,X,X,PL,X 70 READ(2,101,END=500)H,K,L,J,X1,X2, S,X,X,Y,PL,Z if (H.EQ.999) GOTO 500 N1=N1+1 ICLASS=1 C TYPE *,'HKL=',H,K,L C 24 -8 71 1 66.6 66.6 4.64 0.0 0.971 35.4 623.0 0.034 0.0 C 28 -8 66 1 73.1 73.1 4.64 0.0 0.971 34.7 567.0 0.041 0.0 C101 FORMAT (I4,2I4,I2,F8.1,F8.1,F7.2,F6.1,F6.3,F7.1,F7.1,F6.3,F8.1) C101 FORMAT (I4,2I4,I2,F8.0,F8.1,F7.2,F6.1,F6.3,F7.1,F7.1,F6.3,F8.1) 101 FORMAT (I4,2I4,I2,F8.0,F8.1,7X,F6.1,F6.3,F7.1,F7.1,F6.3,F8.1) IF (S.EQ.0) GOTO 70 IF (X1.LT.1) GOTO 70 d=sqrt((x-shadx)**2+(y-shady)**2) if (d.le.shadr) goto 70 if (S.LT.0) THEN ICLASS=3 WRITE(6,103) H,K,L,X1,S 103 FORMAT('SPOT',3I3,' CLASS 3. INTENS, SIGMA=',2F10.1) S=-S ENDIF if (j.eq.1) then pcount=pcount+1 if (pflag.eq.0) goto 70 endif if (j.eq.0) fcount=fcount+1 WRITE(3,102) H,K,L,J,X1,S,ICLASS C J IS PARTIALITY: 1 -> PARTIAL C X1 IS PROFILLE-FITTED INTENSITY,S IS SIGMA (IF ZERO, VERY HIGH SIGMA?) 102 FORMAT (3I4,I2,F10.0,F8.2,I3) sumr=sumr+s/x1 sums=sums+s sumi=sumi+x1 N2=N2+1 GOTO 70 500 CLOSE (UNIT=2) CLOSE (UNIT=3) TYPE *,'NUMBER OF SPOTS REPORTED:',N1,' NUMBER USED:',N2 TYPE *,'NUMBER OF SPOTS partial:',pcount,' NUMBER full:',fcount if (n2.gt.0) then write(6,*)' average of sigma(I)/I:',sumr/n2, . ' sum of sigma/sum of I:',sums/sumI end if GOTO 30 501 CONTINUE END