Problems: Difference between revisions

From XDSwiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
This is a collection of problems and their solution.
This is a collection of problems and their solutions.


== XDS crashes ==
== XDS crashes ==


XDS should never crash (it 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.  


If it crashes for the second reason, there are three things to try:
If it crashes for the second reason, there are three things to try:
Line 16: Line 16:
make sure to use the 32bit version of XDS instead - you were trying to run the 64bit version on a 32bit operating system.  
make sure to use the 32bit version of XDS instead - you were trying to run the 64bit version on a 32bit operating system.  


== IDXREF ends with message ==
== Indexing failures ==
 
In case of problems, you should definitively inspect FRAME.cbf, using [[XDS-viewer]] or [[adxv]]).
 
FRAME.cbf is written by COLSPOT. It shows the last frame of the SPOT_RANGE, together with spot positions that COLSPOT found, marked with white pixels.
 
FRAME.cbf is also written by INTEGRATE (this overwrites the FRAME.cbf written by COLSPOT). It shows the last frame of the DATA_RANGE, and you should make sure that the predictions (circles) match the observed reflections.
 
=== IDXREF ends with message ===


   !!! ERROR !!! SOLUTION IS INACCURATE
   !!! ERROR !!! SOLUTION IS INACCURATE
Line 33: Line 41:
  THE "DATA_RANGE=" IN FILE "XDS.INP" AND START ALL OVER AGAIN.
  THE "DATA_RANGE=" IN FILE "XDS.INP" AND START ALL OVER AGAIN.


Well, this is printed out for you to actually read, and take action accordingly. In many cases you just change the JOBS - line in XDS.INP to read
This is printed out for you to actually read, and take action accordingly. In many cases you just change the JOBS - line in XDS.INP to read
  JOB= DEFPIX INTEGRATE CORRECT
  JOB= DEFPIX INTEGRATE CORRECT
and then continue to run XDS. In other cases you change other keywords in [[XDS.INP]]. 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).  
 
Furthermore, you should definitively check FRAME.cbf after the XDS run (using [[XDS-viewer]] or [[adxv]]), to make sure that the predictions match the observed reflections.


== IDXREF does not show the expected lattice ==
=== IDXREF.LP does not show the expected lattice ===


By specifying the spacegroup and unitcell, you tell XDS that it should index based on those reflections that match that spacegroup and unitcell. In a sense, you _force_ that spacegroup and cell. This will discard other (spurious?) reflections, and usually leads to a clean list of Bravais lattice possibilities.
By specifying the spacegroup and unitcell, you tell XDS that it should index based on those reflections that match that spacegroup and unitcell. In a sense, you _force_ that spacegroup and cell. This will discard other (spurious?) reflections, and usually leads to a clean list of Bravais lattice possibilities.
Line 49: Line 55:
== none of the lattices in IDXREF.LP (except aP) has a good QUALITY OF FIT ==
== none of the lattices in IDXREF.LP (except aP) has a good QUALITY OF FIT ==


It is a good idea to use many frames (e.g. the first half of the DATA_RANGE, as it is done in the [[generate_XDS.INP]] script) for SPOT_RANGE in the COLSPOT and IDXREF steps.  
It is a good idea to use many frames, e.g. the first half of the DATA_RANGE, as does the [[generate_XDS.INP]] script, for the COLSPOT and IDXREF steps.  


It is entirely possible to run COLSPOT for the ''full'' DATA_RANGE, and to try sub-ranges in IDXREF - this means COLSPOT has to be run only once, and the JOBS= line has e.g.  
It is entirely possible to run COLSPOT for the ''full'' DATA_RANGE, and to try sub-ranges in IDXREF - this means COLSPOT has to be run only once, and the JOBS= line has e.g.  
Line 57: Line 63:
because otherwise the spurious reflections in the other sub-ranges will probably disturb the on-the-fly refinement of parameters.
because otherwise the spurious reflections in the other sub-ranges will probably disturb the on-the-fly refinement of parameters.


I've seen datasets where each reflection had a satellite associated with the main reflection, but separate from it. In such a case it helps to use
I've seen datasets where each reflection had a satellite associated with the main reflection, but separate from it. This is well visible in FRAME.cbf written by COLSPOT. In such a case it helps to use
  MINIMUM_NUMBER_OF_PIXELS_IN_A_SPOT= 12 ! re-run COLSPOT after changing the parameter !
  MINIMUM_NUMBER_OF_PIXELS_IN_A_SPOT= 12 ! re-run COLSPOT after changing the parameter !
thus doubling (w.r.t. the default of 6) the required spotsize that makes a reflection be used for indexing. In the latest case this made it possible to index cleanly on a single frame (which is actually not uncommon).
thus doubling (w.r.t. the default of 6) the required spotsize that makes a reflection be used for indexing. In the latest case this made it possible to index cleanly on a single frame (which is actually not uncommon).

Revision as of 11:32, 28 August 2010

This is a collection of problems and their solutions.

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.

If it crashes for the second reason, there are three things to try:

  • increase the stack limit of your shell, e.g. (if using csh or tcsh) with
limit stacksize 102400 

or (in case of bash)

ulimit -s 102400 

The numbers above mean a 10-fold increase over the default, and should be enough. I've found this to be necessary for unusually large frames (32 MB).

  • if you used xds when it crashes, try xds_par, and vice versa. xds_par uses OpenMP for parallelization, which adds complexity.
  • if the error message is
xds: Exec format error. Wrong Architecture.

make sure to use the 32bit version of XDS instead - you were trying to run the 64bit version on a 32bit operating system.

Indexing failures

In case of problems, you should definitively inspect FRAME.cbf, using XDS-viewer or adxv).

FRAME.cbf is written by COLSPOT. It shows the last frame of the SPOT_RANGE, together with spot positions that COLSPOT found, marked with white pixels.

FRAME.cbf is also written by INTEGRATE (this overwrites the FRAME.cbf written by COLSPOT). It shows the last frame of the DATA_RANGE, and you should make sure that the predictions (circles) match the observed reflections.

IDXREF ends with message

 !!! ERROR !!! SOLUTION IS INACCURATE
AUTOMATIC DATA PROCESSING STOPPED. AS THE CRITERIA FOR A GOOD
SOLUTION ARE RATHER STRICT, YOU MAY CHOOSE TO CONTINUE DATA
PROCESSING AFTER CHANGING THE "JOB="-CARD IN "XDS.INP" TO
"JOB= DEFPIX INTEGRATE CORRECT".
IF THE BEST SOLUTION IS REALLY NONSENSE YOU SHOULD FIRST HAVE
A LOOK AT THE ASCII-FILE "SPOT.XDS". THIS FILE CONTAINS THE
INITIAL SPOT LIST SORTED IN DECREASING SPOT INTENSITY. SPOTS
NEAR THE END OF THE FILE MAY BE ARTEFACTS AND SHOULD BE ERASED.
ALTERNATIVELY YOU MAY TRY DIFFERENT VALUES FOR "INDEX_ORIGIN"
AS SUGGESTED IN THE ABOVE LISTING.
IF THE CRYSTAL HAS SLIPPED AT THE BEGINNING OF DATA COLLECTION
YOU MAY CHOOSE TO SKIP SOME OF THE FIRST FRAMES BY CHANGING
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 many cases you just change the JOBS - line in XDS.INP to read

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).

IDXREF.LP does not show the expected lattice

By specifying the spacegroup and unitcell, you tell XDS that it should index based on those reflections that match that spacegroup and unitcell. In a sense, you _force_ that spacegroup and cell. This will discard other (spurious?) reflections, and usually leads to a clean list of Bravais lattice possibilities.

If the data reduction fails nevertheless (in terms of bad R-factors and ISa in the CORRECT step), then chances are that you specified some parameter wrongly, or not accurate enough (ORGY and ORGY are the most likely candidates), or that the crystal does not match your idea about its spacegroup and unit cell. Actually the latter happens pretty frequently (which is why it is always the safest way to collect 180° of spindle rotation unless you know your crystals very well; this is also a good strategy in other respects).

If you tell XDS that you do not to know the spacegroup (SPACE_GROUP_NUMBER= 0), then IDXREF takes all observed reflections into account. By design, the spacegroup decision is then postponed until the CORRECT step, or rather to a run of pointless after CORRECT, and it may be not vital to closely inspect IDXREF.LP, because CORRECT.LP has basically the same information, plus more.

none of the lattices in IDXREF.LP (except aP) has a good QUALITY OF FIT

It is a good idea to use many frames, e.g. the first half of the DATA_RANGE, as does the generate_XDS.INP script, for the COLSPOT and IDXREF steps.

It is entirely possible to run COLSPOT for the full DATA_RANGE, and to try sub-ranges in IDXREF - this means COLSPOT has to be run only once, and the JOBS= line has e.g.

JOBS= IDXREF 

only. Maybe some sub-range gives a clear answer. In that case it may be useful to use

REFINE(INTEGRATE)=! AXIS BEAM ORIENTATION CELL DISTANCE

because otherwise the spurious reflections in the other sub-ranges will probably disturb the on-the-fly refinement of parameters.

I've seen datasets where each reflection had a satellite associated with the main reflection, but separate from it. This is well visible in FRAME.cbf written by COLSPOT. In such a case it helps to use

MINIMUM_NUMBER_OF_PIXELS_IN_A_SPOT= 12 ! re-run COLSPOT after changing the parameter !

thus doubling (w.r.t. the default of 6) the required spotsize that makes a reflection be used for indexing. In the latest case this made it possible to index cleanly on a single frame (which is actually not uncommon).

A final possibility: your crystal may really be triclinic - hopefully you collected 180° of data, or even a bit more than that.

See also

XDS.INP#What can go wrong with this file?