diff --git a/docs/RUGNUX.md b/docs/RUGNUX.md index 3f148d1c2..c70205eff 100644 --- a/docs/RUGNUX.md +++ b/docs/RUGNUX.md @@ -402,7 +402,10 @@ goniometer axis but you want per-frame stills processing anyway, add `--force-st ## Input and output -**Input** is either an HDF5 master file or a directory of PILATUS miniCBF frames. +**Input** is either an HDF5 master file or a directory of PILATUS miniCBF frames. One input is +**one sweep of one crystal** — rugnux does not combine sweeps or crystals in a run; process each +sweep to its own `_unmerged.mtz` and merge them downstream +(see [Taking the data onward](#taking-the-data-onward)). * **HDF5 master (NXmx-based)** — a file written by [`jfjoch_writer`](JFJOCH_WRITER.md), a DECTRIS EIGER master, or an NXmx master written by another facility's toolchain. Lengths are taken in the @@ -668,6 +671,12 @@ to enable or disable it. Two cases follow from that: The report is never allowed to fail a run: if it cannot be written (unwritable path, full disk) the failure is logged as a warning and the run finishes normally. +**Exit status.** rugnux exits 0 when the run completed — everything it determined, declined to +determine (`CANNOT_DETERMINE`) or warned about is in the report — and non-zero when the run +stopped: unreadable input, no usable lattice, a `-S` group the indexed lattice cannot host, an +indexer that could not run. The reason goes to the terminal, and the report may not exist in that +case — so a script branches on the exit status first and greps the report second. + ### Format The model is XDS's `CORRECT.LP`: prose and tables a crystallographer reads top to bottom, with a @@ -935,7 +944,9 @@ Given an atomic model of the same structure, `--model model.pdb` scales the mode factors to the merged amplitudes — fitting a flat bulk-solvent contribution and an overall anisotropic *B* — and reports **R-work / R-free** and the mean 2Fo-Fc density at the atom centres. It also writes `_2fofc.ccp4`, `_fofc.ccp4` and `_maps.mtz` next to the -merged reflections. Nothing about the model is refined; it is only re-fractionalized into the data +merged reflections — and, where the merge kept the Bijvoet split (a rotation merge always does), +`_anom.ccp4`, the anomalous difference map whose strongest sites the report names +(`ANOMALOUS_SITE_01`…`10`). Nothing about the model is refined; it is only re-fractionalized into the data cell, so a deposited model with a slightly different cell still lines up. The model may be **PDB or mmCIF**, gzipped or not, and the format is taken from the file's own @@ -1164,6 +1175,14 @@ indexing) by default; a dataset without one is processed as independent stills. overrides the former; the `-R` / `--single-pass-rotation` / `--force-rotation-lattice` flags request rotation explicitly and pick the pass or lattice. +The FFT search looks for cell axes between 10 Å (`--fft-min-unit-cell`) and a default **longest +axis of 500 Å**, which has no flag of its own — a reference cell (`-C`) moves both bounds to cover +the cell it names. An axis beyond the search's reach is **not refused**: the run returns a +plausible shorter sub-cell or an axis harmonic and processes it happily, so a cell that comes out +at a half or a third of the expected long axis should be read as this limit, not as the crystal. +For very long axes the direction grid's angular resolution binds well below 500 Å — see the +[analysis reference](CPU_DATA_ANALYSIS.md) on FFT indexing. + | Option | Description | | --- | --- | | `--force-still` | Treat a rotation (goniometer) dataset as independent stills instead of rotation | @@ -1199,7 +1218,7 @@ Scaling and merging: | `--capture-uncertainty ` | rot3d: systematic sigma on under-captured fulls, ~num·(1−captured_fraction)·I (default: 1.0 for rotation, 0 otherwise) | | `--min-captured-fraction ` | rot3d: drop a combined full whose rocking curve was captured below this fraction — edge-of-sweep truncated fulls (default: 0.7 for rotation, 0 otherwise; 0 = off) | | `--scaling-high-resolution ` | High-resolution limit for scaling, Å — manual override (default: no limit; disables the automatic cutoff below) | -| `--scaling-low-resolution ` | Low-resolution limit for scaling and merging, Å (default: 50, the value XDS configurations use; 0 removes the limit). Reflections coarser than this sit behind or beside the beam stop and are measured on a background it has eaten into | +| `--scaling-low-resolution ` | Low-resolution limit for scaling and merging, Å (default: 50, the value XDS configurations use; 0 removes the limit). Reflections coarser than this sit behind or beside the beam stop and are measured on a background it has eaten into. That reasoning assumes an ordinary cell: a very large one (a few hundred Å) has real reflections coarser than 50 Å, so lower it there | | `--resolution-cutoff ` | Automatic high-resolution cutoff for the written reflections and reported shells: `cc-logistic` \| `off` (default: `cc-logistic`; ignored when `--scaling-high-resolution` is set) | | `--resolution-cc-target ` | CC1/2 target defining the `cc-logistic` fall-off (default: 0.30) | | `--resolution-shells ` | Number of resolution shells in the reported statistics table (default: 9). The bins are equal steps in 1/d² between the lowest- and highest-resolution reflection merged, which is XDS's rule, and 9 is XDS's count — so at the same resolution limits the two tables have the same shells and can be read row for row |