ACKNOWLEDGEMENT: autoPROC and Clemens Vonrhein; DOIs verified; DISTL; tNCS credit in MR

- All 84 DOIs checked (82 on Crossref, 2 DataCite): title, journal, volume, pages and first author
  match; Matthews 1968 and Yeates 1997 links percent-encode their parentheses; the MOSFLM link
  points at a page that answers.
- autoPROC: an explicit acknowledgement of Clemens Vonrhein (Global Phasing) for the principle that a
  pipeline should verify the metadata it is given - beam centre, geometry, goniometer - and correct
  it where it is wrong; Vonrhein et al. (2011) Acta Cryst. D67, 293-302 (DOI checked).
- Zhang, Sauter et al. (2006) DISTL, already credited in SpotFindingSettings.h, gets its entry.
- Molecular replacement: tNCS looked for in the native Patterson as Read, Adams & McCoy do; the same
  credit at DetectTranslationalNcs (comment only).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EizBKhTqrAYago9KJG3dA3
This commit is contained in:
2026-10-13 09:03:32 +02:00
co-authored by Claude Opus 5.5
parent 1bd251cdd1
commit 402b3d1293
2 changed files with 22 additions and 9 deletions
+21 -9
View File
@@ -21,11 +21,13 @@ image-header metadata, and the attention paid to diffraction anisotropy, each de
pipeline that takes the decisions an experienced crystallographer would take while processing a
dataset, and reports each decision together with the evidence it rests on, so that a bare
invocation gives the best answer available. autoPROC is the inspiration and the target for that
behaviour, and two of rugnux's working principles come from it. The first is that the metadata in
the image headers - beam centre, detector geometry, rotation axis - may be wrong and must not be
trusted blindly, a point argued in particular by Clemens Vonrhein. The second, which follows from
it, is that the beam centre should be determined from the images themselves; rugnux does this in
its own way, described in §1.4 of the [data-analysis reference](CPU_DATA_ANALYSIS_IMAGE.md). The
behaviour, and two of rugnux's working principles come from it. The first, and the one that has
guided rugnux most, we owe to Clemens Vonrhein: a processing pipeline should not take the
experimental metadata it is given - the beam centre, the detector geometry, the goniometer and its
rotation axis - on trust, but verify it against the images and, where it is wrong, correct it. We
are grateful to him for arguing this so clearly and for so long. The second follows from it: the
beam centre should be determined from the images themselves; rugnux does this in its own way,
described in §1.4 of the [data-analysis reference](CPU_DATA_ANALYSIS_IMAGE.md). The
reasons rugnux gives for a weak stretch of a sweep also use autoPROC's wording ("loss of centring
during crystal rotation"). C. Vonrhein, C. Flensburg, P. Keller, A. Sharff, O. Smart, W. Paciorek,
T. Womack and G. Bricogne, "Data processing and analysis with the autoPROC toolbox" (2011),
@@ -75,6 +77,13 @@ B. Couturier, V. V. Gligorov and L. Lacassagne, "SparseCCL: Connected Components
Analysis for sparse images" (2019), DASIP 2019, 65-70
[doi:10.1109/DASIP48288.2019.9049184](https://doi.org/10.1109/DASIP48288.2019.9049184).
**XDS and DISTL** — a spot is bounded by its shape (how much of its bounding box it fills) rather than
by its size alone, as XDS (cited under [Integration and rotation geometry](#integration-and-rotation-geometry)) and DISTL bound theirs; the statistic
is rugnux's own, the choice of shape over size is theirs. Z. Zhang, N. K. Sauter, H. van den Bedem,
G. Snell and A. M. Deacon, "Automated diffraction image analysis and spot searching for high-throughput
crystal screening" (2006), J. Appl. Cryst. 39, 112-119
[doi:10.1107/S0021889805040677](https://doi.org/10.1107/S0021889805040677).
### Indexing
**Fourier-transform indexing** — indexing a diffraction pattern, with no prior knowledge of the
@@ -84,7 +93,7 @@ one-dimensional projection form of that idea described in the next paragraph. G.
in *Proceedings of the EEC Cooperative Workshop on Position-Sensitive Detector Software
(Phase III)*, LURE, Paris, p. 28 (a workshop proceedings without a DOI).
**[MOSFLM](https://www.mrc-lmb.cam.ac.uk/mosflm/)** — the Rossmann FFT autoindexing algorithm and
**[MOSFLM](https://www.mrc-lmb.cam.ac.uk/mosflm/mosflm/)** — the Rossmann FFT autoindexing algorithm and
post-refinement practice, including which parameters are safe to refine per image and which must be
refined over a wedge. The autoindexing algorithm itself — projecting the reciprocal-space points
onto many directions and Fourier-transforming the 1D projection histograms — is I. Steller,
@@ -216,7 +225,7 @@ steps are restricted when one is detected - see the translational-pseudo-symmetr
the intensity a twinned crystal records is (1−α) I(h) + α I(Th), and the disagreement
H = |I(h) − I(Th)|/(I(h) + I(Th)) of the pairs a law relates is uniform on [0, 1−2α], so the median
gives the fraction. T. O. Yeates, "Detecting and overcoming crystal twinning" (1997), Methods Enzymol.
276, 344-358 [doi:10.1016/S0076-6879(97)76068-3](https://doi.org/10.1016/S0076-6879(97)76068-3).
276, 344-358 [doi:10.1016/S0076-6879(97)76068-3](https://doi.org/10.1016/S0076-6879%2897%2976068-3).
**A first-pass cell that is the coincidence lattice of two twin domains** (twinning by reticular
merohedry of index 2 or 3, e.g. obverse/reverse rhombohedral domains or a cubic crystal twinned about
@@ -465,7 +474,7 @@ crystallographic software" (2007), J. Appl. Cryst. 40, 658-674
[doi:10.1107/S0021889807021206](https://doi.org/10.1107/S0021889807021206). Whether one copy fits
the cell is read off the Matthews coefficient: B. W. Matthews, "Solvent content of protein
crystals" (1968), J. Mol. Biol. 33, 491-497
[doi:10.1016/0022-2836(68)90205-2](https://doi.org/10.1016/0022-2836(68)90205-2). How many copies
[doi:10.1016/0022-2836(68)90205-2](https://doi.org/10.1016/0022-2836%2868%2990205-2). How many copies
to search for is weighed by a distribution of the Matthews coefficient over protein crystals made from
the mode and mean of Kantardjieff and Rupp's: K. A. Kantardjieff and B. Rupp, "Matthews coefficient
probabilities: Improved estimates for unit cell contents of proteins, DNA, and protein-nucleic acid
@@ -486,7 +495,10 @@ log-likelihood gain - the sum of sigma_A^4 / 2 over the reflections - is too sma
out is not searched for: A. J. McCoy, R. D. Oeffner, A. G. Wrobel, J. R. M. Ojala, K. Tryggvason,
B. Lohkamp and R. J. Read, "Ab initio solution of macromolecular crystal structures without direct
methods" (2017), Proc. Natl. Acad. Sci. USA 114, 3637-3641
[doi:10.1073/pnas.1701640114](https://doi.org/10.1073/pnas.1701640114). The logarithm of the Bessel
[doi:10.1073/pnas.1701640114](https://doi.org/10.1073/pnas.1701640114). Translational NCS is looked
for in the native Patterson before the search, an off-origin peak read as Read, Adams and McCoy read
it (see
[Translational pseudo-symmetry](#space-group-twinning-and-pseudo-symmetry) above). The logarithm of the Bessel
function I0 in it is evaluated with the polynomial approximations of M. Abramowitz and I. A. Stegun,
"Handbook of Mathematical Functions" (1964), National Bureau of Standards, 9.8.1-9.8.2. A predicted
model is cut into rigid domains by its predicted aligned error, as Oeffner et al. (above) do before
@@ -1603,6 +1603,7 @@ LikelihoodPeak LikelihoodTranslationZ(const LikelihoodSetup &setup, const std::v
// --- translational NCS ---
// Following Read, Adams & McCoy (2013) Acta Cryst. D69, 176-183
TranslationalNcs DetectTranslationalNcs(const std::vector<MergedReflection> &merged, const gemmi::UnitCell &cell,
const gemmi::SpaceGroup &sg) {
constexpr double D_MIN = 5.0, D_MAX = 10.0, MIN_DISTANCE_A = 15.0, MIN_HEIGHT = 0.2;