[us-commits] [ehb54/ultrascan3] 7e3661: perceiver: add "perceive build" so bead-build defe...

emre brookes noreply at github.com
Sun Aug 9 06:55:21 MDT 2026


  Branch: refs/heads/ehb54-issue-980
  Home:   https://github.com/ehb54/ultrascan3
  Commit: 7e3661c0620004e21e075917ee94597e3e5e1daf
      https://github.com/ehb54/ultrascan3/commit/7e3661c0620004e21e075917ee94597e3e5e1daf
  Author: ehb54 <brookes at uthscsa.edu>
  Date:   2026-08-09 (Sun, 09 Aug 2026)

  Changed paths:
    M us_somo/develop/perceiver/README.md
    M us_somo/develop/perceiver/examples/perceive.somo
    M us_somo/develop/src/us_hydrodyn_load.cpp
    M us_somo/develop/src/us_hydrodyn_script.cpp

  Log Message:
  -----------
  perceiver: add "perceive build" so bead-build defects are testable headlessly

"perceive apply" cannot cover the model builder. A clean load takes calc_mw(),
not the excluded-volume path, so the somo.atom lookup -- and anything else
that only bites at bead-build time -- was exercised solely by clicking
through the GUI. That is how the atom-table skip reached the user in the
first place.

  perceive build [somo|somo_o|vdw|grid|a2b] <pdb>

is apply plus what the user does next: select the model, call the same
function the button does (calc_somo / calc_somo_o / calc_vdw_beads /
calc_grid_pdb), report the bead count, and FAIL the script if the build
fails or yields no beads. vdw is the sharpest of the four for a perceived
residue: it relies on atomic hydration, which the perceiver only proposes.

Two things this immediately caught in the harness itself:

- Counting bead_models[current_model] reported 0 beads for a build that had
  plainly succeeded (rc 0, three overlap-reduction stages, a written bead
  model). The build walks current_model as its loop variable and leaves it
  ONE PAST the last model, so that index is out of range right afterwards.
  Count bead_model, the model just built.

- ensure_atom_entry's report went out through editor_msg(), which only ever
  writes to the GUI text widget -- so in a gui_script run the substitution
  was completely silent, and its absence from a log proved nothing. It now
  also goes to stdout. A silent substitution is the same defect class as the
  silent skip it replaces.

Verified on 1MBO/2CMD against the reference tables: the fallback fires once
during the first build ("atom table: S (S) is not in the atom table; using
the hybrid match ... 19.86 A^3") and all four methods build --
somo 305, somo_o 305, vdw 1267, grid 331 beads. The 305 matches the count
from the user's GUI session.

Docs record that a script using "perceive build" must set "somo overwrite"
first -- without it the bead-model write calls setSomoGridFile(), which
raises a modal dialog and hangs a headless run (batch suppresses those
prompts, a gui_script does not) -- and that there is no equivalent flag for
the hydrodynamic calculations.



To unsubscribe from these emails, change your notification settings at https://github.com/ehb54/ultrascan3/settings/notifications


More information about the us-commits mailing list