[us-commits] [ehb54/ultrascan3] 7692f3: perceiver: make an accepted entry actually take ef...
emre brookes
noreply at github.com
Sun Aug 9 04:57:53 MDT 2026
Branch: refs/heads/ehb54-issue-980
Home: https://github.com/ehb54/ultrascan3
Commit: 7692f3f168e5b354537e359ed8be24db7343e821
https://github.com/ehb54/ultrascan3/commit/7692f3f168e5b354537e359ed8be24db7343e821
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-09 (Sun, 09 Aug 2026)
Changed paths:
M us_somo/develop/include/us_hydrodyn.h
M us_somo/develop/include/us_hydrodyn_perceive.h
M us_somo/develop/perceiver/README.md
M us_somo/develop/perceiver/examples/perceive.somo
M us_somo/develop/perceiver/tests/builder.cpp
M us_somo/develop/src/us_hydrodyn.cpp
M us_somo/develop/src/us_hydrodyn_perceive.cpp
M us_somo/develop/src/us_hydrodyn_script.cpp
Log Message:
-----------
perceiver: make an accepted entry actually take effect
Accepting an entry in the review dialog only printed it. The bead builder
still saw a non-coded residue and fell back to a generic averaged bead --
the outcome this feature exists to prevent. Three separate defects, each of
which alone was enough to break it:
1. ASA was emitted as 0. Every SOMO residue loader -- read_residue_file
(us_hydrodyn_load.cpp:534), US_AddResidue (:1288), US_Saxs_Util (:693) --
skips a record whose ASA is zero, and skips it SILENTLY. The entry parsed,
never entered residue_list or multi_residue_map, and the residue went on
being reported non-coded with nothing to indicate why. All 127 coded
residues have ASA > 0. Emit 18 A^2/atom, the coded-residue mean, labelled
a placeholder in the REVIEW block: nothing computes with the tabulated
residue ASA (it appears only in info dumps), but it may not be zero.
Properties::asa lets a caller supply a measured value later.
2. The block was not a valid record. The table is strictly positional -- one
free-text comment line, then header, atoms, beads -- and has no comment
syntax. The emitted block's ~20 '#' lines were consumed two at a time as
comment/header pairs, silently creating zero-atom residues named "#".
Ticking "add to somo.residue" would have written that into the user's own
table. perceived_table_record() collapses the block to one comment line.
3. Nothing applied the entry. apply_perceived_entries() puts accepted entries
into a session overlay (<table>.perceived), re-runs read_residue_file on
it and re-reads the structure, so the atoms rebind. The user's table is
written only when they tick the box. Novel hybrid rows, previously dropped
on the floor, are injected into hybrid_to_protons/electrons first, since
read_residue_file rejects atoms whose hybrid it cannot resolve.
Adds "perceive apply <pdb>" -- the headless equivalent of accepting every
entry -- reporting the non-coded count after the fact. That assertion is what
found (1) and (2); the GUI path had no way to tell "file written" from
"entry in effect". builder.cpp now checks the emitted ASA is positive.
Verified: 1MBO SO4 and 2CMD CIT both apply, 0 types still non-coded, and a
fresh perceive of 1MBO reports every residue already coded. Suites green
(54/35/18/60/5/37/55/21), regression 99.833%.
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