Spot2pdb
[1] is a jiffy that serves to create pseudo-PDB files for visualization of reciprocal space, based on SPOT.XDS and XPARM.XDS . The "atom" positions in the pseudo-PDB files are actually reflections positions.
The usage is simple: just run
spot2pdb
in a XDS directory containing SPOT.XDS and XPARM.XDS . The program then creates SPOT-indexed.pdb and 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
coot SPOT-*.pdb
Since there exist duplicate residue numbers in SPOT-indexed.pdb, one needs a ~/.coot with the line
(allow-duplicate-sequence-numbers)
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
dials.rs_mapper /path/to/reflection/files.ext
and produces a CCP4 map file with pixel contents mapped to reciprocal space, to 6Å.
Notes:
- the mapping used by dials.rs_mapper uses 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.
- if no XPARM.XDS exists, one may use XDS.INP as a source of geometry information.