USER'S INSTRUCTIONS FOR PROGRAM BAYES ------ ------------ --- ------- ----- ROBERT H. BLESSING HAUPTMAN-WOODWARD INSTITUTE 73 HIGH STREET BUFFALO, NEW YORK 14203, USA TELEPHONE: (716) 856-9600, EXTENSION 335 E-MAIL: blessing@hwi.buffalo.edu GIVEN A SET OF INTENSITY DATA, Y AND SIGMA(Y), WHERE Y = I/LP = FMEAS**2, THE PROGRAM APPLIES BAYES' PROBABILITY THEOREM, AS DESCRIBED BY FRENCH AND WILSON (1979), TO ESTIMATE STATISTICAL EXPECTATION VALUES FOR FOBS**2, SIGMA(FOBS**2), FOBS, AND SIGMA(FOBS). Simon French and Keith Wilson (1979). On the Treatment of Negative Intensity Observations. Acta Cryst. A34, 517-525. Bayesian A Posteriori A Priori Normal Observed = Wilson x Measurement Error Distribution Distribution Distribution Measured Mean = Fmeas**2 Std. Dev. = sigma(Fmeas**2) A Priori Mean = local average Variance = Mean, for acentric distribution = 2*Mean, for centric distribution A Posteriori Mean = Fobs**2 Std. Dev. = sigma(Fobs**2) THE PROGRAM ALSO PRODUCES LOCALLY NORMALIZED STRUCTURE FACTOR MAGNITUDES, EOBS AND SIGMA(EOBS), WHERE E(hkl) = F(hkl)/sqrt[epsilon(hkl)*]. THE PROGRAM REQUIRES A CONTROL DATA FILE "bayes.dat" AND A REFLECTION DATA FILE SPECIFIED IN THE CONTROL DATA FILE. THE CODE FOR READING THESE FILES IS QUOTED BELOW. THE REFLECTION FILE SHOULD CONTAIN ALL, OR AT LEAST MOST OF, THE --- ---- UNIQUE DATA, AND ONLY UNIQUE DATA, WITH: MULTIPLE MEASUREMENTS ---- AVERAGED; SYMMETRY-FORBIDDEN, SPACE-GROUP EXTINGUISHED REFLECTIONS REMOVED; AND ALL SYMMETRY-ALLOWED REFLECTIONS, INCLUDING WEAK REFLECTIONS MEASURED AS INSIGNIFICANT ABOVE BACKGROUND, INCLUDED. ------------------------------------------------------------------------ CONTROL DATA FILE "bayes.dat" =========== (FREE FORMAT FOR NUMERICAL DATA) 1. TITLE (A) 2. INPUT FILE TYPE. ITYPE (*) ITYPE FILE TYPE FIRST FIVE WORDS PER RECORD ----- --------- --------------------------- 0 (FREE) FORMATTED, ASCII IH, IK, IL, FSQ, SIGFSQ 1 (FREE) FORMATTED, ASCII IH, IK, IL, F , SIGF 2 UNFORMATTED, BINARY IH, IK, IL, FSQ, SIGFSQ 3 UNFORMATTED, BINARY IH, IK, IL, F , SIGF 3. INPUT FILE NAME (A) 4. OUTPUT FILE NAME (A) 5. LATTICE SYMBOL (A). P, A, B, C, F, I, OR R 6. POINT GROUP SYMBOL (A) MUST BE ONE OF THE FOLLOWING, WITH NO LEADING OR EMBEDDED BLANKS AND LETTERS IN UPPER CASE. TRICL. MONOCL. ORTHO. TETRAG. TRIG. HEXAG. RHOMB. CUB. 1 2 222 4 3 6 R3 23 -1 M MM2 -4 -3 -6 R-3 M3 2/M MMM 4/M 312 6/M R32 432 422 321 622 R3M -43M 4MM 31M 6MM R-3M M3M -42M 3M1 -6M2 -4M2 -31M -62M 4/MMM -3M1 6/MMM FOR NONCENTROSYMMETRIC STRUCTURES, REMEMBER TO GIVE THE (NONCENTROSYMMETRIC) POINT GROUP, NOT THE (CENTROSYMMETRIC) ----- ----- LAUE GROUP, EVEN IF FRIEDEL OR BIJVOET PAIRS WERE NOT MEASURED OR WERE AVERAGED OVER THE LAUE GROUP SYMMETRY. 7. LATTICE PARAMETERS (*). A, B, C, AL, BE, GA 8. NSHELL (*) NUMBER OF (POSSIBLY OVERLAPPING) SIN(THETA)/LAMBDA SHELLS FOR COMPUTING THE LOCAL AVERAGES . (DEFAULT: NSHELL = 100. MAXIMUM: NSHELL = 100) 9. NLOCAL (*) NUMBER OF REFLECTIONS PER SIN(THETA)/LAMBDA SHELL FOR CALCULATING LOCAL AVERAGES . (DEFAULT: NLOCAL = 100) 10. NOBAYES (*) SET NOBAYES = 1 IF THE BAYESIAN REPLACEMENT IS NOT TO BE DONE. --- (DEFAULT: NOBAYES = 0) IF (NOBAYES .NE. 0) THEN FSQ = MAX(FSQ, 0.0) SIGMA_FSQ = MAX(SIGMA_FSQ, 0.0) F = SQRT(FSQ) IF (FSQ .GE. SIGMA_FSQ .AND. SIGMA_FSQ .GT. 0) THEN SIGMA_F = SIGMA_FSQ/(2*F) ELSE SIGMA_F = 0.5*SQRT(SIGMA_FSQ) END IF IF (SIGMA_FSQ .GT. 0 .AND. SIGMA_F .GT. 0) THEN IREJECT = 0 ELSE IREJECT = 1 END IF END IF IN PRINCIPLE, THE BAYESIAN REPLACEMENT SHOULD NOT BE DONE IF, IN THE EARLIER STEPS OF DATA PROCESSING, THE WEAK REFLECTION DATA WERE REJECTED OR MODIFIED ACCORDING TO SOME THRESHOLD CUTOFF. ------------------------------------------------------------------------ THE INPUT DATA ARE READ BY THE FOLLOWING CODE. . . . C C CONTROL DATA C OPEN (UNIT=IO1,FILE='bayes.dat',STATUS='OLD') READ (IO1,'(A)') TITLE READ (IO1,*) ITYPE READ (IO1,'(A)') FILEI READ (IO1,'(A)') FILEO READ (IO1,'(A)') LATT READ (IO1,'(A)') PTGP READ (IO1,*) CELL DATA NSHELL,NLOCAL,NOBAYES /0, 0, 0/ READ (IO1,*,END=5) NSHELL READ (IO1,*,END=5) NLOCAL READ (IO1,*,END=5) NOBAYES 5 CLOSE (UNIT=IO1,STATUS='KEEP') . . . C C INPUT REFLECTION DATA FILE C IF (ITYPE.LT.2) THEN FORM='UNFORMATTED' ELSE FORM='FORMATTED' END IF OPEN (UNIT=IO1,FILE=FILEI,STATUS='OLD',FORM=FORM) . . . CALL READ1 (ITYPE,IO1,IEND,IH,IK,IL,FSQ,SIGFSQ) . . . C----------------------------------------------------------------------- SUBROUTINE READ1 (ITYPE,IFILE,IEND,IH,IK,IL,FSQ,SIGFSQ) 1 IF (ITYPE.EQ.0) READ (IFILE,*,END=9) IH,IK,IL,FSQ,SIGFSQ IF (ITYPE.EQ.1) READ (IFILE,*,END=9) IH,IK,IL,F, SIGF IF (ITYPE.EQ.2) READ (IFILE, END=9) IH,IK,IL,FSQ,SIGFSQ IF (ITYPE.EQ.3) READ (IFILE, END=9) IH,IK,IL,F, SIGF IF (ITYPE.EQ.1.OR.ITYPE.EQ.3) THEN IF (F.LT.0) F=0 IF (SIGF.LT.0) SIGF=0 FSQ=F**2 SIGFSQ=MAX(2*F*SIGF,4*SIGF**2) END IF IF (SIGFSQ.LE.0) GO TO 1 RETURN 9 IEND=1 RETURN END C----------------------------------------------------------------------- THE OUTPUT REFLECTION DATA FILES ARE FORMATTED, ASCII FILES WRITTEN BY THE CODE: C----------------------------------------------------------------------- SUBROUTINE WRITE1 (IFILE,IH,IK,IL,FSQ,SIGFSQ,F,SIGF,E,SIGE) WRITE (IFILE,'(1X,3I5,4(E12.4,E10.2))') & IH,IK,IL,FSQ,SIGFSQ,F,SIGF,E,SIGE RETURN END C----------------------------------------------------------------------- RECORDS IN THE OUTPUT FILE NAMED "FILEO" OCCUR IN THE SAME ORDER AS IN THE INPUT FILE NAMED "FILEI". THE PROGRAM ALSO WRITES THE SAME OUTPUT DATA INTO A FILE NAMED "edata.bayes" IN WHICH THE RECORDS ARE SORTED IN ORDER OF DECREASING VALUES OF THE LOCALLY NORMALIZED STRUCTURE FACTOR MAGNITUDES E(hkl) = F(hkl)/sqrt[epsilon(hkl)*]. ------------------------------------------------------------------------