Spot2pdb: Difference between revisions
No edit summary |
m (→Notes) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[ | spot2pdb ([https://{{SERVERNAME}}/pub/linux_bin/spot2pdb for Linux], [https://{{SERVERNAME}}/pub/mac_bin/spot2pdb for Mac], [https://{{SERVERNAME}}/pub/sources/spot2pdb.f90 source]) is a jiffy that creates pseudo-PDB files for visualization of reciprocal space, based on <code>SPOT.XDS</code> and <code>XPARM.XDS</code>. The "atom" positions in the pseudo-PDB files are actually reflections positions in reciprocal space. | ||
The usage is simple: just run | The usage is simple: just run | ||
Line 20: | Line 20: | ||
== Examples == | == Examples == | ||
[[File:insu6A.png | [[File:insu6A.png|400px|thumb|left|Indexed spot positions are yellow, un-indexed ones red.]] | ||
Indexed spot positions are yellow, un-indexed ones red. | |||
[[File:insu6AplusED.png | [[File:insu6AplusED.png|400px|thumb|right|Same, but with pseudo electron density. The offset between spot positions and electron density is due to a slight error in the header values of ORGX, ORGY (see [[spot2pdb#Notes|Notes]] below).]] | ||
Same, but with pseudo electron density. | |||
<br clear=all>Examples with wrong ROTATION_AXIS: | |||
[[File:backwardsrotaxis.png|400px|thumb|left|ROTATION_AXIS is -1 0 0 instead of 1 0 0]] | |||
[[File:backwardsrotaxis2.png|400px|thumb|right|another view of result with rotation axis backwards]] | |||
[[File:wrongrotaxis.png|400px|thumb|left|ROTATION_AXIS is 0 1 0 instead of 1 0 0]] | |||
[[File:wrongrotaxis2.png|400px|thumb|right|another view of result with rotation axis 90° off]] | |||
<br clear=all> | |||
== Notes == | == Notes == | ||
* the mapping used by <code>dials.rs_mapper</code> uses the (unrefined) frame header values, and possibly assumptions (as implemented in <code>iotbx.detectors</code>) 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. | * the mapping used by <code>dials.rs_mapper</code> uses the (unrefined) frame header values, and possibly assumptions (as implemented in <code>iotbx.detectors</code>) 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. | ||
* Since <code>dials.rs_mapper</code> uses the STARTING_ANGLE information from the frame headers, the mappings can only agree if <code>XDS.INP</code> also has this item. [[generate_XDS.INP]] versions since 0.82 write <code>XDS.INP</code> with STARTING_ANGLE information | * Since <code>dials.rs_mapper</code> uses the STARTING_ANGLE information from the frame headers, the mappings can only agree if <code>XDS.INP</code> also has this item. [[generate_XDS.INP]] versions since 0.82 write <code>XDS.INP</code> with STARTING_ANGLE information for most detectors. | ||
* if no <code>XPARM.XDS</code> exists, | * if no <code>XPARM.XDS</code> exists, spot2pdb uses [[XDS.INP]] as a source of geometry information. | ||
* <code>coot</ | * <code>coot</code> connects 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 <code>coot</code>'s ''display objects'' (Paul Emsley, personal communication). |
Latest revision as of 15:31, 8 March 2023
spot2pdb (for Linux, for Mac, source) is a jiffy that creates 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 in reciprocal space.
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Å.
Examples
Examples with wrong ROTATION_AXIS:
Notes
- the mapping used by
dials.rs_mapper
uses the (unrefined) frame header values, and possibly assumptions (as implemented iniotbx.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. - Since
dials.rs_mapper
uses the STARTING_ANGLE information from the frame headers, the mappings can only agree ifXDS.INP
also has this item. generate_XDS.INP versions since 0.82 writeXDS.INP
with STARTING_ANGLE information for most detectors. - if no
XPARM.XDS
exists, spot2pdb uses XDS.INP as a source of geometry information. coot
connects 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 becoot
's display objects (Paul Emsley, personal communication).