spot2pdb (for Linux, for Mac, source) is a jiffy that creates pseudo-PDB files for visualization of reciprocal space, based on
XPARM.XDS. The "atom" positions in the pseudo-PDB files are actually reflections positions in reciprocal space.
The usage is simple: just run
in a XDS directory containing
XPARM.XDS. The program then creates
SPOT-notindexed.pdb, depending on whether
SPOT.XDS has indices attached to spot positions or not (or just 0 0 0). Thus it is useful directly after COLSPOT, but even more after IDXREF. Reflections of
SPOT-indexed.pdb can be clicked, and have (atomname residuename sequencenumber) corresponding to (H K L).
By default, the program creates pseudo-PDB files with reflections up to 6Å. The maximum resolution can be adjusted with the -r option.
Visualization can then be achieved with
Since there exist duplicate residue numbers in
SPOT-indexed.pdb, one needs a
~/.coot with the line
Even better visualization of the raw data and their abstraction as reflection positions is achieved with
coot --pdb SPOT-*.pdb --map rs_mapper_output.ccp4
provided that dials.rs_mapper is run beforehand. The latter is as easy as
and produces a CCP4 map file with pixel contents mapped to reciprocal space, to 6Å.
Examples with wrong ROTATION_AXIS:
- the mapping used by
dials.rs_mapperuses the (unrefined) frame header values, and possibly assumptions (as implemented in
iotbx.detectors) about geometry aspects, like ROTATION_AXIS, not stored in the header. On the other hand, XPARM.XDS may have different assumptions about geometry aspects, and uses the geometry as refined by IDXREF. Ideally, these two mappings should agree.
dials.rs_mapperuses the STARTING_ANGLE information from the frame headers, the mappings can only agree if
XDS.INPalso has this item. generate_XDS.INP versions since 0.82 write
XDS.INPwith STARTING_ANGLE information for most detectors.
- if no
XPARM.XDSexists, spot2pdb uses XDS.INP as a source of geometry information.
cootconnects atoms that are close, have residue numbers differing by at most 1, and are in the same chain, with bonds (lines) (Paul Emsley, personal communication). The program makes an attempt to avoid such lines by cycling through chain names; the proper solution would be
coot's display objects (Paul Emsley, personal communication).