The live run refines a placed model as `rugnux` does (ProcessConfig::refine), after every decision and before the end message; a cut before it starts leaves it out, as the model. The writer still gets the placed model; the refined one stays with the broker. API (broker/jfjoch_api.yaml): - rugnux_live_model.refinement (rugnux_live_refinement): performed, reason, on_gpu, seconds, r_work, r_free, rmsd_bonds_A, rmsd_angles_deg, blob_count, blobs (at most 50, rugnux_live_blob: kind, x, y, z, peak_sigma, volume_A3, nearest_atom, nearest_atom_distance_A) - rugnux_live_status.refined_model - /rugnux/model.cif and /rugnux/map.ccp4 take stage=placed|refined, by default the refined model where there is one; the anomalous map stays on the placed model's phases (the refined coefficients carry none). Regenerated broker/gen, frontend/src/client, redoc, and the python client docs (which also brings the hero fields and rugnux_live_model it was missing). Frontend: the model card keeps its green/red and gets "R-free 0.xx (refined)" as its context line, "refining..." while the step runs; the model section adds refined R-free and blob tiles; Mol* shows the refined model and maps, with the blobs as small spheres coloured by reading (switch, off at first). The Refinement step is in the timeline like any other. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu (cherry picked from commit 3b47fb9a53b7dfad1c1ed289e169094c8d3d9d3e)
3.9 KiB
3.9 KiB
RugnuxLiveStatus
Live rugnux processing of the last collection; kept until the next collection starts or POST /initialize. Times are taken when the image puller received a message, and are in seconds since the first image (before it arrives, since now). The frame rate is (images_received - 1) / last_image_s.
Properties
| Name | Type | Description | Notes |
|---|---|---|---|
| state | str | ||
| placed_model | bool | The run placed the model: it can be fetched from `/rugnux/model.cif` and its maps from `/rugnux/map.ccp4`. | |
| refined_model | bool | The run refined the placed model: `/rugnux/model.cif` and `/rugnux/map.ccp4` serve the refined model and its maps unless asked for `stage=placed`. | |
| anomalous_map | bool | The merge kept the Bijvoet pairs, so with the placed model there is an anomalous difference map (`/rugnux/map.ccp4?type=anom`). | |
| anomalous_signal | bool | The merged data carry usable anomalous signal (the summary's "Anomalous" row says so) | |
| model | RugnuxLiveModel | [optional] | |
| space_group | str | Space group of the result (the summary's "Space group" row); absent until the run is over | [optional] |
| d_min | float | High-resolution limit of the merge, in Angstrom; absent until the run is over, or without a merge | [optional] |
| isa | float | ISa of the error model; absent until the run is over, or where it was not determined | [optional] |
| probe | str | Answer of the early lattice probe on the first 60 degrees; empty until it answers | |
| probe_s | float | When the probe answered, since the first image | [optional] |
| start_to_first_image_s | float | From the START message to the first image; set once the first image arrives | [optional] |
| message | str | Why the run failed or was skipped | |
| images_expected | int | ||
| expected_collection_s | float | How long the collection is set up to take - images_expected times the image time; absent if not known | [optional] |
| images_received | int | ||
| elapsed_s | float | ||
| step_progress | float | Fraction of the current pass's images | [optional] |
| steps | List[RugnuxLiveStep] | ||
| last_image_s | float | When the last image arrived, since the first image; set once the collection is over | [optional] |
| cut | str | Empty, or why the analysis was cut: `deadline` (`deadline_s` after the last image) or `cancel` (`POST /cancel`). The end message then carried what was established at the cut. | [optional] |
| cut_s | float | When the analysis was cut, since the first image | [optional] |
| last_image_to_written_s | float | From the last image received to all results written | [optional] |
| verdict | str | OK, WARNINGS, UNUSABLE or FAILED; empty until the run is over | |
| verdict_text | str | ||
| summary | List[RugnuxSummaryRow] | ||
| warnings | List[str] |
Example
from jfjoch_client.models.rugnux_live_status import RugnuxLiveStatus
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxLiveStatus from a JSON string
rugnux_live_status_instance = RugnuxLiveStatus.from_json(json)
# print the JSON string representation of the object
print(RugnuxLiveStatus.to_json())
# convert the object into a dict
rugnux_live_status_dict = rugnux_live_status_instance.to_dict()
# create an instance of RugnuxLiveStatus from a dict
rugnux_live_status_from_dict = RugnuxLiveStatus.from_dict(rugnux_live_status_dict)