Everything in the source code is written from scratch, therefore I consider the program to be public domain. You can take it and modify it for your own purposes. You cannot sell it, however, unless you include the source code with it with no restrictions on copying and further distribution. These terms are those of the Gnu copyleft.
The current version assumes a single axis goniostat and thus will not map well to something that has more variable geometry. However the in-house Raxis IIc and Raxis IV systems and beamline X9A are all single-axis so this isn't such a bad approximation. In the latest version it should be fairly straightforward to add new detector types (like Quantum4).xx
oscillation start 0.0in your auto.dat (or index.com) file, otherwise I will not guarantee that the program will work properly. (One of these days I will fix that).
The arguments to Predict4 are as follows:
Hit ^C (control-C) when you've seen enough.
Note that the third argument is mean to allow you to patch an existing partial dataset to make it more complete. The current implementation makes that a very slow process, and if you used Predict4 in the first place you shouldn't need to use this option.
If you are collecting anomalous (MAD/SAD) data use the -a flag (i.e. predict4 -a) since this tells the program not to use Friedel's Law
The output should be pretty straightforward (here for a large trigonal cell at beamline X9A):
Detector setups supported: Raxis2 = raxisIIc on home generator Raxis4 = raxis4 on home generator X9A = MARCCD on beamline X9A at NSLS Type of detector [raxis4]: x9a Detector type MAR CCD 165mm (81u scan) 2048x2048 pixels Enter space group [P1]: P3121 Space group info for P3121 Number : 152 Point Group: 321 Class : TRIGONAL Warning: Friedel's Law is ASSUMED Name of DENZO .x file: woo/15m2_1_001.x Opened .x file woo/15m2_1_001.x Name of DENZO additional .hkl file (for none): Additional Denzo HKL file will not be used Orientation matrix for (h,k,l) -0.00206086 -0.00865791 -0.00520570 -0.00151179 0.00826988 -0.00442148 0.01340485 0.00654770 -0.00129898 Unit Cell : 84.62 84.62 143.84 90.00 90.00 120.00 Resolution Limits: 20.00 2.20 Wavelength : 0.98 Phi Start, Range : 0.00 1.00 Predict found 3608 reflections in the .x file Now calculating the resolution and Z-value for all reflections Now correcting Ewald space X and Y estimates for rotation Rotation around Y with positive sign Now estimating U->Y and V->X conversion factors (Ewald-to-pixel) Correlation X with U 1.000 ; X with V 0.001 Correlation Y with U -0.001 ; Y with V -1.000 Scale factor for U to X is 1844.865 from 3608 refls Scale factor for V to X is 0.000 from 3608 refls Scale factor for U to Y is 0.000 from 3608 refls Scale factor for V to Y is -1844.817 from 3608 refls Intercept for V to X is 1039.574 from 3608 refls Intercept for U to Y is 1042.042 from 3608 refls Initial values are: X = 1844.87U + 0.00V + 1039.57 Y = 0.00U + -1844.82V + 1042.04 RMS deviations in X,Y,Z: 1.15 1.05 0.00036 Final values are: X = 1844.87U + 0.00V + 1039.57 Y = 0.00U + -1844.82V + 1042.04 RMS deviations in X,Y,Z: 1.15 1.05 0.00036 Now comparing predictions with observations RMS deviations in X,Y,Z: 1.15 1.05 0.00036 Acceptable values are : 1.50 1.50 0.00100 Generating a full sphere of reflections FullSphere: 518783 reflections checked, 350389 reflections OK Generating unique indices for each reflection Reflections sorted on LKH order Here are the top 50: HKL: unique: 2 3 0 observed: -3 -2 0 HKL: unique: 2 3 0 observed: 3 2 0 HKL: unique: 2 3 0 observed: -2 -3 0 HKL: unique: 2 3 0 observed: 2 3 0 HKL: unique: 3 3 0 observed: -3 -3 0 HKL: unique: 3 3 0 observed: 3 3 0 HKL: unique: 2 4 0 observed: -2 -4 0 HKL: unique: 2 4 0 observed: -4 -2 0 HKL: unique: 2 4 0 observed: 4 2 0 HKL: unique: 2 4 0 observed: 2 4 0 HKL: unique: 3 4 0 observed: -4 -3 0 HKL: unique: 3 4 0 observed: -4 -1 0 HKL: unique: 3 4 0 observed: 4 3 0 HKL: unique: 3 4 0 observed: 4 1 0 HKL: unique: 3 4 0 observed: -1 -4 0 HKL: unique: 3 4 0 observed: 3 4 0 HKL: unique: 3 4 0 observed: -3 -4 0 HKL: unique: 3 4 0 observed: 1 4 0 HKL: unique: 4 4 0 observed: 0 4 0 HKL: unique: 4 4 0 observed: 4 0 0 HKL: unique: 4 4 0 observed: 4 4 0 HKL: unique: 4 4 0 observed: -4 0 0 HKL: unique: 4 4 0 observed: 0 -4 0 HKL: unique: 4 4 0 observed: -4 -4 0 HKL: unique: 3 5 0 observed: -2 -5 0 HKL: unique: 3 5 0 observed: 5 3 0 HKL: unique: 3 5 0 observed: 5 2 0 HKL: unique: 3 5 0 observed: 2 5 0 HKL: unique: 3 5 0 observed: 3 5 0 HKL: unique: 3 5 0 observed: -5 -3 0 HKL: unique: 3 5 0 observed: -3 -5 0 HKL: unique: 3 5 0 observed: -5 -2 0 HKL: unique: 4 5 0 observed: 4 5 0 HKL: unique: 4 5 0 observed: 1 5 0 HKL: unique: 4 5 0 observed: -4 -5 0 HKL: unique: 4 5 0 observed: -5 -4 0 HKL: unique: 4 5 0 observed: -5 -1 0 HKL: unique: 4 5 0 observed: 5 4 0 HKL: unique: 4 5 0 observed: -1 -5 0 HKL: unique: 4 5 0 observed: 5 1 0 HKL: unique: 5 5 0 observed: 5 0 0 HKL: unique: 5 5 0 observed: -5 -5 0 HKL: unique: 5 5 0 observed: 5 5 0 HKL: unique: 5 5 0 observed: -5 0 0 HKL: unique: 5 5 0 observed: 0 5 0 HKL: unique: 5 5 0 observed: 0 -5 0 HKL: unique: 3 6 0 observed: 6 3 0 HKL: unique: 3 6 0 observed: -3 -6 0 HKL: unique: 3 6 0 observed: -6 -3 0 HKL: unique: 3 6 0 observed: 3 6 0 Finding the two diffraction conditions for each reflection (ALGABREIC mode) Starting refl #0 Starting refl #50000 Starting refl #100000 Starting refl #150000 Starting refl #200000 Starting refl #250000 Starting refl #300000 Starting refl #350000 Testing data collection scenarios for P3121 50% of the data can be collected in approx 20.0 deg. 75% of the data can be collected in approx 45.0 deg. 90% of the data can be collected in approx 60.0 deg. Enter how many DEGREES of data you want to collect: 10 Scenarios will evaluate wedges of 10.00 degrees From -180 to -170 #obs 19125 #uniq 17149 #total 17149, compl 28.5%, redun 1.1 From -170 to -160 #obs 19167 #uniq 17089 #total 17089, compl 28.4%, redun 1.1 From -160 to -150 #obs 19147 #uniq 16087 #total 16087, compl 26.7%, redun 1.2 From -150 to -140 #obs 19192 #uniq 16223 #total 16223, compl 27.0%, redun 1.2 From -140 to -130 #obs 19120 #uniq 17012 #total 17012, compl 28.3%, redun 1.1 From -130 to -120 #obs 19150 #uniq 17534 #total 17534, compl 29.1%, redun 1.1 From -120 to -110 #obs 19143 #uniq 17674 #total 17674, compl 29.4%, redun 1.1 From -110 to -100 #obs 19101 #uniq 17612 #total 17612, compl 29.3%, redun 1.1 From -100 to -90 #obs 19160 #uniq 17062 #total 17062, compl 28.3%, redun 1.1 From -90 to -80 #obs 19188 #uniq 15931 #total 15931, compl 26.5%, redun 1.2 From -80 to -70 #obs 19148 #uniq 14190 #total 14190, compl 23.6%, redun 1.3 From -70 to -60 #obs 19174 #uniq 12816 #total 12816, compl 21.3%, redun 1.5 From -60 to -50 #obs 19102 #uniq 14649 #total 14649, compl 24.3%, redun 1.3 From -50 to -40 #obs 19159 #uniq 14617 #total 14617, compl 24.3%, redun 1.3 From -40 to -30 #obs 19127 #uniq 14994 #total 14994, compl 24.9%, redun 1.3 From -30 to -20 #obs 19159 #uniq 15389 #total 15389, compl 25.6%, redun 1.2 From -20 to -10 #obs 19159 #uniq 16447 #total 16447, compl 27.3%, redun 1.2 From -10 to 0 #obs 19108 #uniq 16934 #total 16934, compl 28.1%, redun 1.1 From 0 to 10 #obs 19122 #uniq 17146 #total 17146, compl 28.5%, redun 1.1 From 10 to 20 #obs 19164 #uniq 17086 #total 17086, compl 28.4%, redun 1.1 From 20 to 30 #obs 19160 #uniq 16099 #total 16099, compl 26.7%, redun 1.2 From 30 to 40 #obs 19199 #uniq 16230 #total 16230, compl 27.0%, redun 1.2 From 40 to 50 #obs 19121 #uniq 17013 #total 17013, compl 28.3%, redun 1.1 From 50 to 60 #obs 19143 #uniq 17527 #total 17527, compl 29.1%, redun 1.1 From 60 to 70 #obs 19145 #uniq 17676 #total 17676, compl 29.4%, redun 1.1 From 70 to 80 #obs 19100 #uniq 17620 #total 17620, compl 29.3%, redun 1.1 From 80 to 90 #obs 19163 #uniq 17061 #total 17061, compl 28.3%, redun 1.1 From 90 to 100 #obs 19181 #uniq 15919 #total 15919, compl 26.4%, redun 1.2 From 100 to 110 #obs 19137 #uniq 14187 #total 14187, compl 23.6%, redun 1.3 From 110 to 120 #obs 19144 #uniq 12816 #total 12816, compl 21.3%, redun 1.5 From 120 to 130 #obs 19035 #uniq 14595 #total 14595, compl 24.2%, redun 1.3 From 130 to 140 #obs 19017 #uniq 14489 #total 14489, compl 24.1%, redun 1.3 From 140 to 150 #obs 18809 #uniq 14685 #total 14685, compl 24.4%, redun 1.3 From 150 to 160 #obs 18435 #uniq 14753 #total 14753, compl 24.5%, redun 1.2 From 160 to 170 #obs 16101 #uniq 13938 #total 13938, compl 23.2%, redun 1.2 From 170 to 180 #obs 10228 #uniq 9372 #total 9372, compl 15.6%, redun 1.1 Enter how many DEGREES of data you want to collect: 30 Scenarios will evaluate wedges of 30.00 degrees From -180 to -150 #obs 57439 #uniq 37439 #total 37439, compl 62.2%, redun 1.5 From -170 to -140 #obs 57506 #uniq 32891 #total 32891, compl 54.6%, redun 1.7 From -160 to -130 #obs 57459 #uniq 32152 #total 32152, compl 53.4%, redun 1.8 From -150 to -120 #obs 57462 #uniq 35414 #total 35414, compl 58.8%, redun 1.6 From -140 to -110 #obs 57413 #uniq 38845 #total 38845, compl 64.5%, redun 1.5 From -130 to -100 #obs 57394 #uniq 40627 #total 40627, compl 67.5%, redun 1.4 From -120 to -90 #obs 57404 #uniq 40975 #total 40975, compl 68.1%, redun 1.4 From -110 to -80 #obs 57449 #uniq 37914 #total 37914, compl 63.0%, redun 1.5 From -100 to -70 #obs 57496 #uniq 33725 #total 33725, compl 56.0%, redun 1.7 From -90 to -60 #obs 57510 #uniq 29289 #total 29289, compl 48.7%, redun 2.0 From -80 to -50 #obs 57424 #uniq 24514 #total 24514, compl 40.7%, redun 2.3 From -70 to -40 #obs 57435 #uniq 25410 #total 25410, compl 42.2%, redun 2.3 From -60 to -30 #obs 57388 #uniq 29093 #total 29093, compl 48.3%, redun 2.0 From -50 to -20 #obs 57445 #uniq 31633 #total 31633, compl 52.6%, redun 1.8 From -40 to -10 #obs 57445 #uniq 33718 #total 33718, compl 56.0%, redun 1.7 From -30 to 0 #obs 57426 #uniq 36688 #total 36688, compl 61.0%, redun 1.6 From -20 to 10 #obs 57389 #uniq 39179 #total 39179, compl 65.1%, redun 1.5 From -10 to 20 #obs 57394 #uniq 39815 #total 39815, compl 66.1%, redun 1.4 From 0 to 30 #obs 57446 #uniq 37445 #total 37445, compl 62.2%, redun 1.5 From 10 to 40 #obs 57523 #uniq 32905 #total 32905, compl 54.7%, redun 1.7 From 20 to 50 #obs 57480 #uniq 32171 #total 32171, compl 53.4%, redun 1.8 From 30 to 60 #obs 57463 #uniq 35415 #total 35415, compl 58.8%, redun 1.6 From 40 to 70 #obs 57409 #uniq 38843 #total 38843, compl 64.5%, redun 1.5 From 50 to 80 #obs 57388 #uniq 40636 #total 40636, compl 67.5%, redun 1.4 From 60 to 90 #obs 57408 #uniq 40974 #total 40974, compl 68.1%, redun 1.4 From 70 to 100 #obs 57444 #uniq 37887 #total 37887, compl 62.9%, redun 1.5 From 80 to 110 #obs 57481 #uniq 33700 #total 33700, compl 56.0%, redun 1.7 From 90 to 120 #obs 57462 #uniq 29285 #total 29285, compl 48.7%, redun 2.0 From 100 to 130 #obs 57316 #uniq 24514 #total 24514, compl 40.7%, redun 2.3 From 110 to 140 #obs 57196 #uniq 25410 #total 25410, compl 42.2%, redun 2.3 From 120 to 150 #obs 56861 #uniq 28812 #total 28812, compl 47.9%, redun 2.0 From 130 to 160 #obs 56261 #uniq 30868 #total 30868, compl 51.3%, redun 1.8 From 140 to 170 #obs 53345 #uniq 31082 #total 31082, compl 51.6%, redun 1.7 From 150 to 180 #obs 44764 #uniq 28322 #total 28322, compl 47.1%, redun 1.6 Enter how many DEGREES of data you want to collect: 70 Scenarios will evaluate wedges of 70.00 degrees From -180 to -110 #obs 134044 #uniq 47117 #total 47117, compl 78.3%, redun 2.8 From -170 to -100 #obs 134020 #uniq 50473 #total 50473, compl 83.9%, redun 2.7 From -160 to -90 #obs 134013 #uniq 55258 #total 55258, compl 91.8%, redun 2.4 From -150 to -80 #obs 134054 #uniq 57430 #total 57430, compl 95.4%, redun 2.3 From -140 to -70 #obs 134010 #uniq 56790 #total 56790, compl 94.3%, redun 2.4 From -130 to -60 #obs 134064 #uniq 53641 #total 53641, compl 89.1%, redun 2.5 From -120 to -50 #obs 134016 #uniq 48718 #total 48718, compl 80.9%, redun 2.8 From -110 to -40 #obs 134032 #uniq 43570 #total 43570, compl 72.4%, redun 3.1 From -100 to -30 #obs 134058 #uniq 39544 #total 39544, compl 65.7%, redun 3.4 From -90 to -20 #obs 134057 #uniq 38450 #total 38450, compl 63.9%, redun 3.5 From -80 to -10 #obs 134028 #uniq 41277 #total 41277, compl 68.6%, redun 3.2 From -70 to 0 #obs 133988 #uniq 45804 #total 45804, compl 76.1%, redun 2.9 From -60 to 10 #obs 133936 #uniq 50807 #total 50807, compl 84.4%, redun 2.6 From -50 to 20 #obs 133998 #uniq 54584 #total 54584, compl 90.7%, redun 2.5 From -40 to 30 #obs 133999 #uniq 56225 #total 56225, compl 93.4%, redun 2.4 From -30 to 40 #obs 134071 #uniq 55581 #total 55581, compl 92.3%, redun 2.4 From -20 to 50 #obs 134033 #uniq 52930 #total 52930, compl 87.9%, redun 2.5 From -10 to 60 #obs 134017 #uniq 48707 #total 48707, compl 80.9%, redun 2.8 From 0 to 70 #obs 134054 #uniq 47122 #total 47122, compl 78.3%, redun 2.8 From 10 to 80 #obs 134032 #uniq 50472 #total 50472, compl 83.9%, redun 2.7 From 20 to 90 #obs 134031 #uniq 55261 #total 55261, compl 91.8%, redun 2.4 From 30 to 100 #obs 134052 #uniq 57398 #total 57398, compl 95.4%, redun 2.3 From 40 to 110 #obs 133990 #uniq 56759 #total 56759, compl 94.3%, redun 2.4 From 50 to 120 #obs 134013 #uniq 53638 #total 53638, compl 89.1%, redun 2.5 From 60 to 130 #obs 133905 #uniq 48718 #total 48718, compl 80.9%, redun 2.7 From 70 to 140 #obs 133777 #uniq 43570 #total 43570, compl 72.4%, redun 3.1 From 80 to 150 #obs 133486 #uniq 39544 #total 39544, compl 65.7%, redun 3.4 From 90 to 160 #obs 132758 #uniq 38432 #total 38432, compl 63.8%, redun 3.5 From 100 to 170 #obs 129678 #uniq 39642 #total 39642, compl 65.9%, redun 3.3 From 110 to 180 #obs 120769 #uniq 38590 #total 38590, compl 64.1%, redun 3.1 Enter how many DEGREES of data you want to collect: Finished Note that since you processed your frame with oscillation start 0.0 the angular values are with respect to this first frame.
Bugs, etc
This program can be a memory hog for large unit cells and/or high resolution data. It doesn't handle things well if oscillation start is non-zero. It doesn't handle exotic space groups like R3 or R32. Not all space groups have been tested so you should always check that the data collection results match those for the predictions. Enjoy.
Phil Jeffrey, June 2002