tools/battery: the like-for-like table covers XDS's own range
--report-resolution now gets XDS's own d_min, the range its CORRECT.LP totals cover, so the comparison is exact; shells past rugnux's cut print as not merged. The derived reference d_min stays what rugnux's own cut is scored against. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,7 @@ Every set runs **once**, with one command per arm:
|
||||
| arm (reference) | command |
|
||||
|---|---|
|
||||
| open (deposition) | `rugnux -o p --no-export-unmerged --model <deposited coordinates> <input>`; sets without a deposited model (small molecules, unpublished sets, or coordinates that cannot be downloaded) run the same command without `--model` |
|
||||
| inhouse, private (XDS) | `rugnux -o p --no-export-unmerged [-A] --report-resolution <reference d_min>,<XDS d_max> <input>` |
|
||||
| inhouse, private (XDS) | `rugnux -o p --no-export-unmerged [-A] --report-resolution <XDS d_min>,<XDS d_max> <input>` |
|
||||
|
||||
Neither `--model` nor `--report-resolution` changes the processing: the merged reflections, the
|
||||
resolution cut and every decision are the same with and without them (verified bit for bit). So
|
||||
@@ -50,8 +50,8 @@ the reference:
|
||||
data's own determination instead (`SOHNCKE_SPACE_GROUP` where `SPACE_GROUP_ENANTIOMORPH` is
|
||||
`ASSUMED_FROM_MODEL`) and keeps the label in `sg_label`.
|
||||
- **`--report-resolution`** (XDS arms): a second statistics table from the same merge, binned over
|
||||
XDS's range (the reference d_min, see "The XDS reference d_min" below, and XDS's d_max as given,
|
||||
999 included), and `-A` where XDS merged with `FRIEDEL'S_LAW=FALSE` (`"anomalous": true` in the
|
||||
XDS's own range (`dmin_xds` and XDS's d_max as given, 999 included, so it covers exactly what
|
||||
XDS's CORRECT.LP totals cover), and `-A` where XDS merged with `FRIEDEL'S_LAW=FALSE` (`"anomalous": true` in the
|
||||
manifest), so the two tables count the same way. Its REFRES_* numbers are scored against XDS's
|
||||
CORRECT.LP totals: completeness, multiplicity, R_meas, CC1/2 and ISa (I/sigma is shown; the
|
||||
manifest holds no XDS value for it). Where rugnux's own cut is coarser than the reference
|
||||
@@ -325,9 +325,9 @@ is significant, and that decides which case applies (`inputs.reference_dmin`):
|
||||
point where XDS's CC1/2 falls through 0.30 (the target of rugnux's own cutoff), interpolated in
|
||||
1/d² between shell centres.
|
||||
|
||||
The derived value is both the score reference and the d_min of the reference-range table. The manifest keeps XDS's own
|
||||
limit as `dmin_xds` and the rule used as `dmin_rule`. XDS's pooled R_meas, CC1/2 and completeness
|
||||
still cover its whole range.
|
||||
The derived value is the reference rugnux's own cut is scored against. The reference-range table
|
||||
uses XDS's own limit, `dmin_xds`, because XDS's pooled R_meas, CC1/2 and completeness cover its
|
||||
whole range; the manifest keeps the rule used as `dmin_rule`.
|
||||
|
||||
## Adding or changing datasets
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ PDB_ID = re.compile(r"^[0-9][A-Za-z0-9]{3}$")
|
||||
COMMAND_DOC = {
|
||||
"deposition": "`rugnux --model <deposited coordinates> <input>` (without --model where there is no "
|
||||
"deposited model: small molecules, unpublished sets)",
|
||||
"xds": "`rugnux [-A] --report-resolution <reference d_min>,<XDS d_max> <input>`: -A where XDS kept "
|
||||
"xds": "`rugnux [-A] --report-resolution <XDS d_min>,<XDS d_max> <input>`: -A where XDS kept "
|
||||
"Friedel mates apart; the second statistics table at XDS's range is report-only",
|
||||
}
|
||||
|
||||
@@ -178,10 +178,14 @@ def command(binary, e, opts, model=None):
|
||||
# statistics are not comparable
|
||||
if ref.get("anomalous"):
|
||||
cmd.append("-A")
|
||||
# a second statistics table over XDS's range, from the same merge (report only)
|
||||
if ref.get("dmin"):
|
||||
# a second statistics table over XDS's own range, from the same merge (report only). XDS's
|
||||
# own limit, not the derived reference d_min: the manifest's XDS totals are over XDS's range,
|
||||
# so only that makes the table like for like. Shells past rugnux's own cut print as not
|
||||
# merged.
|
||||
dmin = ref.get("dmin_xds") or ref.get("dmin")
|
||||
if dmin:
|
||||
cmd += ["--report-resolution",
|
||||
f"{ref['dmin']:.3f}" + (f",{ref['dmax']:.3f}" if ref.get("dmax") else "")]
|
||||
f"{dmin:.3f}" + (f",{ref['dmax']:.3f}" if ref.get("dmax") else "")]
|
||||
if model:
|
||||
cmd += ["--model", model]
|
||||
cmd += opts["extra_args"]
|
||||
|
||||
Reference in New Issue
Block a user