Architecture¶
AtomWorks owns molecular arrays, annotations, chemical data, selection syntax, and CIF parsing. Studio owns the editing interface and transactional Undo.
Component |
Responsibility |
|---|---|
|
Documents, mutations, selection, validation, and Undo. |
|
Shared annotation definitions and coupled edits for RFD4 conditions. |
|
Bounded sessions and HTTP access to the editing library. |
|
Browser editor with Patinae and Mol* renderers. |
|
Embeds the browser editor and forwards the host theme. |
|
Native Qt controls and synchronization with PyMOL objects. |
All components ship together in the single atomworks-studio Python distribution.
Browser and VS Code use the API’s document as their source of truth. PyMOL keeps
a StudioDocument per object in process. All hosts load the same installed
annotation provider. Files, values, levels, defaults, and coupled coordinate edits
therefore follow one contract. Tab names and order are defined once in the editing
package and used by Qt and the browser. Renderers own display state only.
Public AtomWorks supplies sequence, coordinate, index, terminal, and distance conditions. Hotspots, groups, RASA, CATH, and other RFD4 conditions extend its annotation registry. The RFD4 annotation wheel includes only pinned definitions, parse presets, vocabulary, and their license. It does not import the model package initializer or install its inference dependencies.
Edits are atomic: a failed operation restores the prior array; nested operations form one Undo step. Coordinates and saved internal targets are changed together. Discarding targets requires confirmation tied to the document revision. Saving validates and serializes one frozen snapshot. Checks cover editing and structural consistency, not whether a model will accept or successfully generate from the file.
Sessions are process-local and bounded. Set ANNOTATION_STUDIO_SESSION_DIR to
persist CIF snapshots across server restarts; Undo history is in memory. Run one
server process. Optional proxy identity support isolates users’ session lookups.
Patinae’s WebGPU support is for molecular rendering. The base editor has no model runtime or GPU provisioning. The optional Gradio host embeds the same web editor and queues calls to a deployment-supplied generation function. The model repository owns checkpoint loading and inference; the host owns CIF handoff, result selection and downloads.