XDS.INP
XDS.INP is a user-provided file that is read by XDS. Each line consists of one or more <keyword>=<parameter(s)> pairs. Anything after a "!" is a comment.
Complete documentation is at http://www.mpimf-heidelberg.mpg.de/~kabsch/xds/html_doc/xds_parameters.html .
Templates for various detectors are at http://www.mpimf-heidelberg.mpg.de/~kabsch/xds/html_doc/xds_prepare.html .
Required keywords
These keywords have no default parameters and must be given with the correct values.
The values may be obtained from logfiles of the beamline software, your notes, or (for many types of frames) from the headers of the frames (using 'strings <filename>|more'). A good way to retrieve them is by using MOSFLM.
A minimal XDS.INP needs at least these keywords and their parameters:
- Keywords that describe the detector:
DETECTOR NX NY QX QY - for a list of supported detectors and possible geometries, see Table of supported detectors
DIRECTION_OF_DETECTOR_X-AXIS - often 1 0 0
DIRECTION_OF_DETECTOR_Y-AXIS - often 0 1 0
INCIDENT_BEAM_DIRECTION - often 0 0 1
ROTATION_AXIS - often 1 0 0 at a synchrotron
- Keywords that describe your particular dataset:
ORGX ORGY - in pixels The most critical parameters for a successful data reduction . See Obtaining ORGX ORGY
DETECTOR_DISTANCE - in millimeters
OSCILLATION_RANGE - in degrees
X-RAY_WAVELENGTH - in Ångström
NAME_TEMPLATE_OF_DATA_FRAMES - path and name of frames, with wildcards for numbers, plus type of frames (e.g. "CBF")
DATA_RANGE - numbers of frames to be reduced
BACKGROUND_RANGE - numbers of frames to be used for initial background estimation, "1 5" is usually enough, and "1 20" should be ample.
Keywords that additionally describe your experiment
FRACTION_OF_POLARIZATION and POLARIZATION_PLANE_NORMAL should be specified for detectors at synchrotron sites. If they are not specified (or inaccurate), their effect will to some extent be absorbed by the scale factors determined in CORRECT.
Keywords for space group assignment
A dataset can be reduced by XDS in space group P1. If you know the space group and unit cell parameters of your crystal in advance you just need these two keywords:
- SPACE_GROUP_NUMBER
- If you don't know the space group, put a 0 or comment out the line. A mapping of space group names against their numbers is near the end of IDXREF.LP.
- UNIT_CELL_PARAMETERS
- If you don't know the space group, put six 0s or comment out the line. Unit cell parameters need to respect the constraints of the Laue group, e.g. all angles must be exactly 90.0 for orthorhombic and tetragonal space groups, a and b must be equal for trigonal and tetragonal, and so on.
If you want to assign a space group and unit cell parameters to a dataset that was reduced in P1, you most probably need this keyword as well:
- REINDEX
- 12 numbers, 9 of which are used as a re-indexing matrix (the other 3 are normally 0). These 12 numbers can be obtained from IDXREF.LP.
The way how to determine a space group (and unit cell parameters) is described in space group determination.
Keywords which affect completeness and resolution limits
- TRUSTED_REGION
- The default is "0.00 1.05" but if you have a square detector, and their are reflections visible in the corners, you may go as high as "0. 1.4142". Depending on the symmetry of your crystal, this may give you useful high-resolution data.
- VALUE_RANGE_FOR_TRUSTED_DETECTOR_PIXELS
- the default is "7000. 30000." but the first number is probably on the low side. See Determining_VALUE_RANGE_FOR_TRUSTED_DETECTOR_PIXELS.
- MINIMUM_ZETA
- the default of 0.15 is rather on the safe side. A lower value increases completeness. See MINIMUM_ZETA.
- INCLUDE_RESOLUTION_RANGE
- the default is "20.0 0.0" but it would be good to change this to sensible values for your data set, e.g. 50.0 for the lower resolution limit and the limiting resolution, where the average signal-to-noise ratio drops below 1, for the upper limit (the latter number could be obtained from CORRECT.LP).
- EXCLUDE_RESOLUTION_RANGE
- to exclude reflections in ice rings (CORRECT step). Whether ice rings are a problem should be obvious by looking at individual frames (often later frames are affected more than earlier ones), FRAME.pck and the "alien" statistics at the end of CORRECT.LP. Also see Wishlist, and VIEW misfits.pck (produced by XDSSTAT).
Keywords which affect aspects of geometry parameter refinement
- REFINE(IDXREF)
- The defaults (REFINE(IDXREF)=DISTANCE BEAM ORIENTATION CELL AXIS i.e. refine everything) are OK, but only if COLSPOT has seen all (or rather, a significant fraction of the) frames (see SPOT_RANGE below). If only a small SPOT_RANGE was used (which is not the best way, but possible), one should use REFINE(IDXREF)= AXIS BEAM ORIENTATION CELL . (The next thing to omit would be AXIS)
- REFINE(INTEGRATE)
- The defaults (REFINE(INTEGRATE)=DISTANCE BEAM ORIENTATION CELL) could be modified by omitting DISTANCE, because one should assume that the distance is constant. Furthermore, by fixing the distance one can better see from the results of the refinement whether the cell parameters are stable, or whether they change due to radiation damage. There are situations when one wants to reduce the number of parameters to be refined even more, see Optimization.
- REFINE(CORRECT)
- The defaults (REFINE(CORRECT)=DISTANCE BEAM ORIENTATION CELL AXIS i.e. refine everything) are OK. For low resolution datasets the distance refinement may not be stable (i.e. refined distance differs more than a few mm from expected distance). In this case one should remove DISTANCE from the list.
Keywords which affect whether indexing will succeed
Again, the most important parameters are ORGX ORGY. Often the software which writes the frames puts these numbers into the headers of the frames. However, these numbers are sometimes wrong, and furthermore, XDS does not read and interpret headers of frames. How to obtain estimates for ORGY ORGY from frames is described in Obtaining ORGX ORGY.
- SPOT_RANGE
- If this line is omitted (and MINUTE=0), the whole DATA_RANGE is used. This is usually a good way to proceed. If there is radiation damage, I would advise to use the first half of the DATA_RANGE as SPOT_RANGE. The SPOT_RANGE in principle may comprise a single frame.
Attention: if MINUTE= has a parameter >0, a small SPOT_RANGE will be used if SPOT_RANGE is not explicitly provided! - STRONG_PIXEL
- the default is 3, but 6 is usually more appropriate.
See also the article Ice_rings.
Keywords which affect the speed of data reduction
- MAXIMUM_NUMBER_OF_PROCESSORS
- speeds up XDS by use of several (e.g. 2-4) CPUs within a single machine.
- MAXIMUM_NUMBER_OF_JOBS
- speeds up XDS by chopping the DATA_RANGE into pieces, and feeding each piece to a new process. That process may run on the local machine, or a different one (but this needs to be configured by the system administrator). Unless specifically set up for a given computer environment (e.g., at a synchrotron site), usually don't set both MAXIMUM_NUMBER_OF_PROCESSORS and MAXIMUM_NUMBER_OF_JOBS to values >1 !
Some amount of "overcommiting of resources" is OK, i.e. if you are the sole user of a Dual-core workstation, you may set both parameters to 2. Wolfgang Kabsch found that this utilizes the machine even a bit better than either MAXIMUM_NUMBER_OF_PROCESSORS=2 or MAXIMUM_NUMBER_OF_JOBS=2.
How to tweak data quality
See Optimization#Final_polishing.
What can go wrong with this file?
The most important possible pitfalls are:
- Lines longer than 80 characters are not allowed. This happens most often with the NAME_TEMPLATE_OF_DATA_FRAMES keyword line, because the path to the directory with the frames may be long. Fix: use a symlink to the directory with the frames.
- Error due to omitting the "=" directly after the keyword (i.e. having an intervening blank).
- There may be decoding errors in the parameter which may lead to obscure error messages. E.g., see what happens if you provide only one cell parameter instead of six!
Example XDS.INP file
JOB=XYCORR INIT COLSPOT IDXREF DEFPIX INTEGRATE CORRECT ! for this experiment: ORGX=1330 ORGY=1321 DETECTOR_DISTANCE=550 OSCILLATION_RANGE=0.25 X-RAY_WAVELENGTH=1.0001 NAME_TEMPLATE_OF_DATA_FRAMES=../mk/mk04_1_0????.cbf CBF DATA_RANGE=1 720 SPOT_RANGE=1 720 SPACE_GROUP_NUMBER=0 !UNIT_CELL_CONSTANTS= 70 80 90 90 90 90 ! parameters with changes wrt default values: TRUSTED_REGION=0.00 1.15 VALUE_RANGE_FOR_TRUSTED_DETECTOR_PIXELS=8000. 30000. MINIMUM_ZETA=0.05 INCLUDE_RESOLUTION_RANGE=50 0 STRONG_PIXEL=6 BACKGROUND_RANGE=1 5 MAXIMUM_NUMBER_OF_PROCESSORS=4 ! parameters specifically for this detector and beamline: DETECTOR=PILATUS NX=2463 NY=2527 QX=0.172 QY=0.172 !PILATUS 6M DIRECTION_OF_DETECTOR_X-AXIS=1 0 0 DIRECTION_OF_DETECTOR_Y-AXIS=0 1 0 INCIDENT_BEAM_DIRECTION=0 0 1 ROTATION_AXIS=1 0 0 FRACTION_OF_POLARIZATION=0.99 POLARIZATION_PLANE_NORMAL=0 1 0 SENSOR_THICKNESS=0.32 ! (for the Pilatus, one might want to add UNTRUSTED_RECTANGLE keywords ! here, but if they are omitted, data reduction nevertheless works well)