== 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, these are the things to try/consider:
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).
xds_par in this case also might need an increase of the environment variable OMP_STACKSIZE (e.g. "setenv OMP_STACKSIZE 128M").
=== memory consumption exceeding the 4GB barrier when using the 32bit binary ===
As pointed out by James Holton, the memory consumed by huge frames in combination with many threads may be larger than 32 bits allow. Execution then stops with forrtl: severe (41): insufficient virtual memory The workaround is to limit the [http:// homes. mpimf-heidelberg.mpg.de/ ~kabsch/ xds/ html_doc/xds_parameters.html MAXIMUM_NUMBER_OF_PROCESSORS], or to use XDS instead of XDS_PAR. An even better solution is to switch to the 64bit binary, but that of course requires a 64bit operating system.
=== Problems with OpenMP ===
If the "xds_par" binary crashed, try "xds". xds_par uses OpenMP for parallelization, which adds complexity. If it works with xds, but not with xds_par, then there is a chance that some environment variable needs to be set/changed. In any case the XDS developers would like to learn about this.
=== limitation of the parallel 32bit binary === The 32bit OpenMP binary may not be able to allocate enough storage when using many threads (e.g. >10). The error message might be something like: OMP: Error #34: System unable to allocate necessary resources for OMP thread: OMP: System error #11: Resource temporarily unavailable === 64bit binary on a 32 bit operating system ===
If the error message is e.g.
-bash: /usr/local/bin/xds: cannot execute binary file
make sure to use the 32bit version of XDS instead - you try to run the 64bit version on a 32bit operating system; this won't work. === CPU without SSE2 support === If the error message is forrtl: severe (168): Program Exception - illegal instruction Image PC Routine Line Source xds 08055250 Unknown Unknown Unknown xds 0804B3F6 Unknown Unknown Unknown this means that unfortunately the CPU of your machine is too old to be supported by XDS (which in this respect is compiled with the default options of the ifort compiler). This may happen e.g. with old AMD CPUs that don't support SSE2 (on Linux check the ''flags'' field of /proc/cpuinfo for the presence of the sse2 flag).
According to [http://en.wikipedia.org/wiki/SSE2#Notable_IA-32_CPUs_not_supporting_SSE2] the following Intel-compatible CPUs did not implement SSE2 after SSE2 was introduced (2001):
* AMD CPUs prior to Athlon 64, including all Socket A-based CPUs
* Intel CPUs prior to Pentium 4
* VIA C3
* Transmeta Crusoe
=== ASSERT VIOLATION ===
since otherwise, FRAME.cbf is overwritten by INTEGRATE.
To look at '''all''' spot positions found by COLSPOT, you
could try echo "set yrange  reverse ; plot 'SPOT. XDS' us 1:2 w dots" | gnuplot -persistThis may also help to find shaded regions on the detector .
=== IDXREF ends with !!! ERROR !!! message ===
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
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).
= Things to watch out for in IDXREF .LP ====
The first table "CLUSTER COORDINATES AND INDICES WITH RESPECT TO REC. LATTICE BASIS VECTORS" should show close-to-integer difference vectors. The following is an example how it should ''not'' look like:
1 0.0004199-0.0012633-0.0043826 2442. 0.97 -0.04 -0.00
2 0.0101757 0.0060701-0.0019630 2175. -0.03 -1.02 0.01
3 -0.0076118 0.0114167-0.0040603 1965. 0.13 0.04 0.50
4 0.0100552 0.0071646 0.0025337 1944. -1.01 -0.99 0.01
5 0.0072840-0.0101455 0.0084405 1841. -1.10 -0.01 -0.49
6 0.0000976 0.0027828 0.0089584 1792. -2.00 0.00 -0.00
7 0.0103103 0.0043851-0.0063902 1790. 0.98 -1.02 0.00
8 0.0025742 0.0163995-0.0098507 1760. 0.95 -0.99 0.51 9 0.0068686-0.0089437 0.0128884 1724. -2.08 0.03 -0.49 10 -0.0174443 0.0123504 0.0161324 1694. -4.01 0.99 0.52 11 0.0272195-0.0050005-0.0136142 1678. 2.99 -1.97 -0.50
PARAMETERS OF THE REDUCED CELL (ANGSTROEM & DEGREES)
34.71 84.72 213.67 90.35 90.27 90.06
This clearly indicates that the third axis above the table (with 1/length=34.71) actually should be twice that size. If this happens, the histogram of indexed spots often has two equally-large subtrees:
Remedy: take the reduced cell below the table, but double the 34.71, and stick it into the line
UNIT_CELL_CONSTANTS=69.42 84.72 213.67 90.35 90.27 90.06
To make XDS use that line, specify
and leave the space group determination for later.
Alternatively, try several well-separated SPOT_RANGEs instead of 1. For example, instead of
most cases, this makes IDXREF pick up the correct cell .
I have seen this working well in many cases of too short cell parameters.
=== IDXREF prints !!! WARNING !!! message ===
If you see
!!! WARNING !!! REFINEMENT DID NOT CONVERGE
in XDS.INP. If it is commented out with a !, remove the !. Then, change it to have
REFINE(IDXREF)=CELL BEAM ORIENTATION AXIS !
DISTANCEi.e. remove DISTANCE from the list of refinable parameters. Once that is done, save XDS.INP and re-run the IDXREF step .
problem occurs if the DISTANCE is large, and XDS cannot refine it meaningfully.
=== 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 [[CORRECT#An estimate for the overall quality of an experimental setup|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 ===
== Integration failure ==
If INTEGRATE stops after e.g.
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
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
REFLECTING_RANGE= 1.100 REFLECTING_RANGE_E.S.D.= 0.157
Copy them to XDS.INP. Restore the original DATA_RANGE and continue.
Another error mode of INTEGRATE (in processing of small-molecule data) is ...
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
and re-run INTEGRATE .
== See also ==
[[Low dose data]]