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)
1.4 KiB
1.4 KiB
RugnuxLiveBlob
A blob of positive mFo-DFc density the refined model leaves unexplained, with its likely reading: a rule on what is measured, to point a person at the density - not an identification.
Properties
| Name | Type | Description | Notes |
|---|---|---|---|
| kind | str | ||
| x | float | Centroid, Cartesian Angstrom, in the frame of the refined model (`/rugnux/model.cif`) | |
| y | float | ||
| z | float | ||
| peak_sigma | float | The highest point, in map sigma | |
| volume_a3 | float | Volume above 3 sigma, in cubic Angstrom | |
| nearest_atom | str | e.g. "OG1 THR A42" | |
| nearest_atom_distance_a | float |
Example
from jfjoch_client.models.rugnux_live_blob import RugnuxLiveBlob
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxLiveBlob from a JSON string
rugnux_live_blob_instance = RugnuxLiveBlob.from_json(json)
# print the JSON string representation of the object
print(RugnuxLiveBlob.to_json())
# convert the object into a dict
rugnux_live_blob_dict = rugnux_live_blob_instance.to_dict()
# create an instance of RugnuxLiveBlob from a dict
rugnux_live_blob_from_dict = RugnuxLiveBlob.from_dict(rugnux_live_blob_dict)