Battery: per-set rugnux options (args), for files that misdescribe their experiment
A row may carry "args": [...] and an "args_why". The options go into that set's command ahead of any the run passes to every set, and show in the row's cmd. They are meant for files from a retired acquisition system that misdescribe the experiment in a way rugnux is not expected to detect, e.g. a placeholder detector distance, or a run padded with frames recorded after the shutter closed. They should stay limited to what the reference itself was given (its frame range, its refined distance), so the comparison remains like for like. Also names L-ascorbic acid in the Arms table and in doc_check's specimen map; the row was added without them and doc_check failed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UqXYdL4qBGYRiSXSGXfCLu
This commit is contained in:
1 parent
87912e1ca8
commit
6c5fbc8dae
3 files changed
+9
-2
No files matched your search
@@ -23,7 +23,7 @@ data): `cd tools/battery && python3 doc_check.py`.
|
||||
| arm | datasets | reference | manifest |
|
||||
|---|---|---|---|
|
||||
| **open** | public PDB depositions of raw diffraction data, plus a few published small-molecule sets | the deposited space group, cell and resolution | `open.json` (committed) |
|
||||
| **inhouse** | standard test crystals measured at the SLS (lysozyme, thaumatin, insulin, cytochrome C, myoglobin), small-molecule standards (aspirin, citric acid, HEPES, YAG, KDP, L-cystine), plus no-crystal controls | XDS, from the `CORRECT.LP` beside each dataset (the standard proteins also carry a reference model for R-free, reported only: `--model` below); for the small molecules the space group is the literature's (`ref_override`), as XDS reports only Sohncke groups; L-cystine, which XDS does not index, has only the literature reference | `inhouse.json` (committed) |
|
||||
| **inhouse** | standard test crystals measured at the SLS (lysozyme, thaumatin, insulin, cytochrome C, myoglobin), small-molecule standards (aspirin, citric acid, HEPES, YAG, KDP, L-cystine, L-ascorbic acid), plus no-crystal controls | XDS, from the `CORRECT.LP` beside each dataset (the standard proteins also carry a reference model for R-free, reported only: `--model` below); for the small molecules the space group is the literature's (`ref_override`), as XDS reports only Sohncke groups; L-cystine, which XDS does not index, has only the literature reference | `inhouse.json` (committed) |
|
||||
| **private** | user data | XDS, like inhouse | outside the repository; the local site config gives its path |
|
||||
| **refine** | public PDB depositions whose structure factors and coordinates go through refinement only, nothing processed | none: a set passes when the refinement ran; the R-factors and the solvent audit are reported | `refine.json` (committed) |
|
||||
| **multisweep** | several sweeps merged as one - small wedges of several crystals, several sweeps of one crystal (swung detector, kappa runs, repeated sweeps), small molecules - plus must-not-merge controls; opt-in, never part of a default run | the base row's: each row names an open or in-house row (`base`), whose reference scores the merge as that arm scores it, plus which sweeps joined (`sweeps_expect`, below) | `multisweep.json` (committed) |
|
||||
@@ -909,6 +909,12 @@ whole range; the manifest keeps the rule used as `dmin_rule`.
|
||||
A reference measured by hand goes in `ref_override`, which `refs` leaves alone.
|
||||
A set whose reference is known to be wrong gets `"unscored": "<why>"`: it still runs, but
|
||||
scores `unscored` instead of pass or fail.
|
||||
A set whose files misdescribe the experiment in a way rugnux is not meant to detect (a placeholder
|
||||
distance written by a retired acquisition system, a run padded with frames recorded after the
|
||||
shutter closed) gets `"args": [...]` and `"args_why": "<why>"`: the options are added to that set's
|
||||
command, ahead of any the run passes to every set, and appear in the row's `cmd`. Keep them to
|
||||
what the reference itself was given (its frame range, its refined distance), so the comparison
|
||||
stays like for like; anything rugnux should work out on its own does not belong here.
|
||||
A set where two answers are both defensible gets
|
||||
`"ref_alternatives": [{"sg": ..., "sgno": ..., "cell": [...], "why": "<reason>"}]` - the fields
|
||||
given replace the reference's, the row passes on any of its references, and `why` is mandatory.
|
||||
|
||||
@@ -412,6 +412,7 @@ def command(binary, e, opts, model=None):
|
||||
f"{dmin:.3f}" + (f",{ref['dmax']:.3f}" if ref.get("dmax") else "")]
|
||||
if model:
|
||||
cmd += ["--model", model]
|
||||
cmd += e.get("args", []) # the set's own options (see README), then the run's
|
||||
cmd += opts["extra_args"]
|
||||
cmd += e.get("input_paths") or [e["input_path"]]
|
||||
if opts["gpulock"] and "--no-gpu" not in cmd: # a CPU run has no card to share
|
||||
|
||||
@@ -30,7 +30,7 @@ DOCS = os.path.join(HERE, "..", "..", "docs")
|
||||
INHOUSE = {"lyso": "lysozyme", "lysoI": "lysozyme", "thau": "thaumatin", "insu": "insulin",
|
||||
"cytc": "cytochrome C", "myob": "myoglobin", "nothing": "no-crystal controls",
|
||||
"aspirin": "aspirin", "citricacid": "citric acid", "hepes": "HEPES", "yag": "YAG",
|
||||
"kdp": "KDP", "lcystine": "L-cystine"}
|
||||
"kdp": "KDP", "lcystine": "L-cystine", "lascorbate": "L-ascorbic acid"}
|
||||
|
||||
errors = []
|
||||
|
||||
|
||||
Reference in new issue
Block a user