2,649
edits
(→IDXREF produces too short cell parameter(s): Difference vectors are neither half nor integers) |
|||
(10 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== XDS crashes == | == XDS crashes == | ||
XDS should never crash (if it terminates with an error message, this does not count as crash). If it does, it is either a bug in the program which should be brought to the attention of Wolfgang Kabsch or Kay Diederichs, and will be fixed, or it is a problem with your computer. | XDS should never crash (if it terminates with an error message, this does not count as crash). If it does, it is either a bug in the program which should be brought to the attention of Wolfgang Kabsch or Kay Diederichs, and will be fixed, or it is a problem with your computer, or (rarely) it is due to improper inputs ([[Problems#INTEGRATE_cell_and.2For_distance_run_away.3B_xds_crashes_or_has_to_be_killed|this]] is the only example I know of). | ||
If it crashes for the second reason, these are the things to try/consider: | If it crashes for the second reason, these are the things to try/consider: | ||
Line 111: | Line 111: | ||
THE "DATA_RANGE=" IN FILE "XDS.INP" AND START ALL OVER AGAIN. | THE "DATA_RANGE=" IN FILE "XDS.INP" AND START ALL OVER AGAIN. | ||
This is printed out for you to actually read, and take action accordingly. In most cases you just change the | This is printed out for you to actually read, and take action accordingly. In most cases you just change the JOB= line in XDS.INP to read | ||
JOB= DEFPIX INTEGRATE CORRECT | JOB= DEFPIX INTEGRATE CORRECT | ||
and then continue to run XDS. In other cases you may want to change SPOT.XDS, or other keywords in [[XDS.INP]] (see also below). But in any case this is an important alert that should make you check the correctness of the parameters that describe the data collection (X-RAY_WAVELENGTH, DETECTOR_DISTANCE, ORGX, ORGY, OSCILLATION_RANGE, NAME_TEMPLATE_OF_DATA_FRAMES). | and then continue to run XDS. In other cases you may want to change SPOT.XDS, or other keywords in [[XDS.INP]] (see also below). But in any case this is an important alert that should make you check the correctness of the parameters that describe the data collection (X-RAY_WAVELENGTH, DETECTOR_DISTANCE, ORGX, ORGY, OSCILLATION_RANGE, NAME_TEMPLATE_OF_DATA_FRAMES). | ||
Line 168: | Line 168: | ||
== Difference vectors are neither integers nor halfs == | === Difference vectors are neither integers nor halfs === | ||
This can happen if SPACE_GROUP_NUMBER is wrong, i.e. the user "forces" a lattice (e.g. body-centered) that does not match the true one (which may be primitive). So the first thing to try is SPACE_GROUP_NUMBER=0. | |||
Sometimes, IDXREF nevertheless finds no good lattice: | |||
# COORDINATES OF VECTOR CLUSTER FREQUENCY CLUSTER INDICES | # COORDINATES OF VECTOR CLUSTER FREQUENCY CLUSTER INDICES | ||
Line 178: | Line 182: | ||
6 0.0098829 0.0070246-0.0042191 1430. 0.50 -0.50 -0.44 <---- same here | 6 0.0098829 0.0070246-0.0042191 1430. 0.50 -0.50 -0.44 <---- same here | ||
7 -0.0030325 0.0110238 0.0056577 1422. -0.50 0.50 -0.44 <---- and here | 7 -0.0030325 0.0110238 0.0056577 1422. -0.50 0.50 -0.44 <---- and here | ||
... | ... | ||
If it is not a case of SEPMIN and CLUSTER_RADIUS being too large (see above), try to increase INDEX_ERROR - in this case, it indexes beautifully with INDEX_ERROR=0.14 . | If it is not a case of SEPMIN and CLUSTER_RADIUS being too large (see above), try to increase INDEX_ERROR - in this case, it indexes beautifully with INDEX_ERROR=0.14 . | ||
Line 202: | Line 206: | ||
If this does not help, try to refine even less items, e.g. leave out AXIS. | If this does not help, try to refine even less items, e.g. leave out AXIS. | ||
=== IDXREF prints ERROR IN REFINE !!! RETURN CODE IS IER= 0 === | |||
This is due to either wrong inputs in XDS.INP, or due to bad data, e.g. spots from many crystals whose diffraction patterns overlap. The first possibility applies if the diffraction pattern is clean. The second applies if the diffraction pattern is ugly, and unsuitable for indexing. In that case, maybe try a different SPOT_RANGE. | |||
=== IDXREF.LP does not show the expected lattice === | === IDXREF.LP does not show the expected lattice === | ||
Line 229: | Line 237: | ||
== Integration failure == | == Integration failure == | ||
=== INTEGRATE stops with error message === | |||
If INTEGRATE stops after e.g. | If INTEGRATE stops after e.g. | ||
****************************************************************************** | ****************************************************************************** | ||
Line 239: | Line 248: | ||
BEAM_DIVERGENCE= BEAM_DIVERGENCE_E.S.D.= | BEAM_DIVERGENCE= BEAM_DIVERGENCE_E.S.D.= | ||
then you should reduce the upper limit of the DATA_RANGE, to stop before the problematic frames, and re-run INTEGRATE. In this example, you would modify XDS.INP to have | then there are two ways to resolve this: | ||
* you could insert a line DELPHI=10 (or DELPHI=20, for 10 or 20 degrees batches; the default is 5 degree batches) into XDS.INP and re-run INTEGRATE | |||
* as the error message suggests, you should reduce the upper limit of the DATA_RANGE, to stop before the problematic frames, and re-run INTEGRATE. In this example, you would modify XDS.INP to have | |||
DATA_RANGE=1 135 | DATA_RANGE=1 135 | ||
JOB=INTEGRATE CORRECT | JOB=INTEGRATE CORRECT | ||
Save XDS.INP, run XDS and inspect INTEGRATE.LP, to find the lines (e.g.) | Save XDS.INP, run XDS and inspect INTEGRATE.LP, to find the lines (e.g.) | ||
BEAM_DIVERGENCE= 0.478 BEAM_DIVERGENCE_E.S.D.= 0.048 | BEAM_DIVERGENCE= 0.478 BEAM_DIVERGENCE_E.S.D.= 0.048 | ||
REFLECTING_RANGE= 1.100 REFLECTING_RANGE_E.S.D.= 0.157 | REFLECTING_RANGE= 1.100 REFLECTING_RANGE_E.S.D.= 0.157 | ||
Copy them to XDS.INP. Restore the original DATA_RANGE and continue. | Copy them to XDS.INP. Restore the original DATA_RANGE and continue. | ||
If this problem happens with multiple XDS jobs working on the same data set, you might also get a message like | |||
.../bin1_02.tmp | |||
Image PC Routine Line Source | |||
xds_par 0000000000592B91 Unknown Unknown Unknown | |||
xds_par 00000000004BEF21 joinintegrate_ 8995 MAIN_XDS.f90 | |||
xds_par 0000000000410A5B xds_ 21690 MAIN_XDS.f90 | |||
xds_par 000000000040B3A4 MAIN__ 1 MAIN_XDS.f90 | |||
xds_par 00000000004083F6 Unknown Unknown Unknown | |||
libc.so.6 00007FB40222E830 Unknown Unknown Unknown | |||
xds_par 00000000004082E9 Unknown Unknown Unknown | |||
which looks like a real crash of the program, but in this case with a known reason. | |||
Another error mode of INTEGRATE (in processing of small-molecule data) is ... | Another error mode of INTEGRATE (in processing of small-molecule data) is ... | ||
Line 258: | Line 281: | ||
The error message is misleading in this case: there are too few reflections to build the average profile. The fix is: restart INTEGRATE after inserting e.g. | The error message is misleading in this case: there are too few reflections to build the average profile. The fix is: restart INTEGRATE after inserting e.g. | ||
DELPHI=20 ! default is 5, so try with e.g. 10, 20, 45, 90, 180 | DELPHI=20 ! default is 5, so try with e.g. 10, 20, 45, 90, 180 | ||
and re-run INTEGRATE. | in XDS.INP and re-run INTEGRATE. | ||
=== INTEGRATE cell and/or distance run away; xds crashes or has to be killed === | |||
If during INTEGRATE the cell keeps increasing or the distance decreasing or both, then xds starts to consume large amounts of memory and becomes very slow. This may finally exhaust all available memory, and the job either crashes or has to be killed by the user. | |||
The fix here is to use | |||
REFINE(INTEGRATE)= BEAM POSITION ORIENTATION ! CELL | |||
instead of (what used to be the default until June 2017) | |||
REFINE(INTEGRATE)= BEAM POSITION ORIENTATION CELL | |||
Quite generally, the more conservative setting without CELL refinement is adequate unless your crystals diffract to quite high resolution. A sure sign that you should not be refining CELL is that the refined cell and/or distance values in INTEGRATE.LP fluctuate without obvious physical reason. Moreover, distance ("POSITION") refinement nicely soaks up any cell change resulting from radiation damage. | |||
A compromise (if you suspect that the cell parameters actually change ''differently'') would be | |||
REFINE(INTEGRATE)= BEAM ORIENTATION CELL ! POSITION | |||
This should also avoid the run-away but gives more freedom to the refinement. Of course it requires a refined distance (from IDXREF, or rather from GXPARM.XDS->XPARM.XDS renaming). | |||
== See also == | == See also == | ||
Line 264: | Line 300: | ||
[[Low dose data]] | [[Low dose data]] | ||
[[Indexing]] | |||
[[IDXREF.LP]] |