[us-commits] [ehb54/ultrascan3] 0c1fcd: perceiver: allow a tabulated vbar to be overridden...
emre brookes
noreply at github.com
Wed Aug 12 07:53:15 MDT 2026
Branch: refs/heads/ehb54-issue-980
Home: https://github.com/ehb54/ultrascan3
Commit: 0c1fcd9179ba31a2df164eb1bb7c14af3c7b1f19
https://github.com/ehb54/ultrascan3/commit/0c1fcd9179ba31a2df164eb1bb7c14af3c7b1f19
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-10 (Mon, 10 Aug 2026)
Changed paths:
M us_somo/develop/perceiver/tests/protein_psv.cpp
Log Message:
-----------
perceiver: allow a tabulated vbar to be overridden, to test candidate values
Mattia asked which of the three competing arginine values fares better. An argv
token RES=vbar now replaces that residue's vbar in the [table] column only; the
D&Z columns are computed from coordinates and stay untouched, so the run asks
exactly one question -- which tabulated value best predicts measured protein psv.
Result over 7 proteins, mean |error| of [table]:
ARG 0.698 (somo.residue) 0.84%
ARG 0.7686 (Rocco recalc) 1.37%
ARG 0.809 (D&Z increments) 1.67%
Monotonic: every step up is worse. The incumbent value wins and should stay.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: 80159a145019f75db9608c30f77b1b4a74fa9606
https://github.com/ehb54/ultrascan3/commit/80159a145019f75db9608c30f77b1b4a74fa9606
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-10 (Mon, 10 Aug 2026)
Changed paths:
M us_somo/develop/perceiver/tests/protein_psv.cpp
Log Message:
-----------
perceiver: show per-residue D&Z spread and a sequence-only cross-check
Mattia's point: psv is a composition property, so an experimental structure may
be unnecessary -- a sequence-correct model (AF2) would do, and then verifying the
protein's SOURCE and processed form matters more than the coordinates.
Measured rather than assumed. Per-residue D&Z psv across 7 proteins:
ALA SER TRP MET HIS ARG SD exactly 0.000 -- fully context-independent
most others SD 0.1-1.0%
CYS 2.21%, TYR 1.23%, LYS 1.00% -- real chemistry, not noise: free thiol vs
disulfide for CYS, termini for LYS. Sequence-only averages over these.
Recomputing every protein from composition alone, using corpus-mean per-residue
values, against the full structure-based calculation:
mean |diff| 0.076%, worst +0.116%
An order of magnitude below the effect being measured (table 0.84% vs D&Z 3.07%).
So structures are not the bottleneck after all: a correct sequence suffices, and
the binding constraint moves to source/isoform/processing verification.
Caveat: the per-residue means come from these same proteins, so the check is
mildly circular; the six zero-SD residues are exempt by construction.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: c2290b2405b9902ebfc422c684ce3db21e4bab41
https://github.com/ehb54/ultrascan3/commit/c2290b2405b9902ebfc422c684ce3db21e4bab41
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-10 (Mon, 10 Aug 2026)
Changed paths:
A us_somo/develop/perceiver/data/psv/candidates.fasta
M us_somo/develop/perceiver/tests/protein_psv.cpp
Log Message:
-----------
perceiver: score proteins from UniProt mature sequences, no structures needed
Follows the sequence-only validation: composition reproduces the structural answer
to 0.076%, so any protein with a known MATURE sequence can join the validation set.
PROTEIN_PSV_FASTA=<file> reads records of '>label measured_psv' + one-letter sequence.
The processed form comes from UniProt MOLECULE_PROCESSING rather than guesswork,
which matters because the tables measure different forms of the same gene product:
pepsinogen = PROPEP + CHAIN (activation peptide RETAINED), P00791 16..385
papain = CHAIN only, propeptide removed, P00784 134..345
carboxypep A = CHAIN only, 94-residue activation peptide off, P00730 111..419
chymotrypsinogen A = full zymogen 1..245
a-chymotrypsin = chains A+B+C, dipeptides 14-15/147-148 excised, 241 residues
Eight new proteins, table column vs measured:
catalase -0.04, pepsinogen -0.06, a-chymotrypsin +0.05, chymotrypsinogen +0.18,
calmodulin +0.93, papain +1.05, carboxypeptidase A -1.51, a-lactalbumin +4.02
Excluding a-lactalbumin: bias +0.09%, mean |err| 0.55% -- better than the
structure-based set. Combined 14 proteins: bias +0.46%, mean |err| 0.69%.
Two things worth noting. The chymotrypsinogen/a-chymotrypsin pair differ by four
excised residues out of 245; measured +0.30%, calculated +0.18% -- the method
resolves it, and in the right direction. And a-lactalbumin, the one bad case, is
the entry Table 6 annotates '~12% carbohydrate content'; a carbohydrate correction
explains roughly half the 4% and it should stay excluded.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: 45c7a165c46eac6c86500795ccaf86169ebdfbd8
https://github.com/ehb54/ultrascan3/commit/45c7a165c46eac6c86500795ccaf86169ebdfbd8
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-12 (Wed, 12 Aug 2026)
Changed paths:
M us_somo/develop/src/us_hydrodyn_perceive.cpp
M us_somo/develop/src/us_hydrodyn_perceive_dialog.cpp
Log Message:
-----------
perceiver: white dialog background, and one review line per atom
Two of three items from Mattia's Linux GUI testing (2026-08-10).
Background: the dialog is mostly close reading -- a generated table entry and a
list of flags -- and SOMO's global frame grey is hard going, more so on Linux
where it renders darker. Only this frame's background changes; every label here
calls AUTFBACK and paints its own, and the global palette is untouched.
Review list: two independent streams feed it, perception ambiguity notes and the
psv/volume/hydration reviews, both keyed "NAME (HYB)". Emitted raw, an atom with
one of each appeared twice, so citrate showed six entries for three atoms and read
as flagging far more waters than it does. Now grouped by atom, first-appearance
order, notes joined:
before after
O2 (O2H1): carboxyl -OH O2 (O2H1): carboxyl -OH; carboxylate at pH 7, 5 waters
O4 (O2H1): carboxylate O (symmetric...) O4 (O2H1): carboxylate O (symmetric...); carboxylate at pH 7, 5 waters
O6 (O2H1): carboxylate O (symmetric...) O6 (O2H1): carboxylate O (symmetric...); carboxylate at pH 7, 5 waters
O2 (O2H1): carboxylate at pH 7, 5 waters
O4 (O2H1): carboxylate at pH 7, 5 waters
O6 (O2H1): carboxylate at pH 7, 5 waters
The third item -- hydration on the wrong oxygen -- is a real inconsistency but
needs a convention decision, so it is not touched here.
Tests unchanged: unit 86/0, psv 60/0, hydration 37/0, regression 97.894% exact.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: cd3273186cd71d1e13df7e48c645aa592a704e9b
https://github.com/ehb54/ultrascan3/commit/cd3273186cd71d1e13df7e48c645aa592a704e9b
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-12 (Wed, 12 Aug 2026)
Changed paths:
M us_somo/develop/src/us_hydrodyn_perceive_dialog.cpp
Log Message:
-----------
perceiver: pin the dialog foreground too, not just the background
Mattia: the font colour came out different on Linux and macOS.
Cause: PALET_LABEL and PALET_FRAME construct a whole QPalette from a single
configured colour, and Qt derives the remaining roles itself. That derivation is
not identical across Qt versions and platforms, so the text colour drifted.
perceive_palette() now names every role this dialog relies on -- Window, Base,
AlternateBase, WindowText, Text, ButtonText -- and is applied to the frame, all
labels, the info line, the checkbox and both read-only text views. Nothing is
derived, so both platforms render the same.
Push buttons deliberately keep PALET_PUSHB: they are controls users recognise by
their SOMO styling, and they are not the surface being read.
libus_somo builds clean.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: cf0adf435b6dbfef0b6f699a42947e0162aa5270
https://github.com/ehb54/ultrascan3/commit/cf0adf435b6dbfef0b6f699a42947e0162aa5270
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-12 (Wed, 12 Aug 2026)
Changed paths:
M us_somo/develop/src/us_hydrodyn_perceive_dialog.cpp
Log Message:
-----------
perceiver: make the review list's length visible, and fix the flagged count
Mattia, testing on Linux: "I didn't get from the actual perceiver that there were
more lines to be scrolled, likely the grey bkg fooled me. It should be evident".
Three things were hiding it:
- the box had no frame, so on the old grey it blended into the dialog. White needs
the border more than grey did: both text views are now StyledPanel|Sunken.
- no scrollbar until you tried to scroll. Both views now keep a vertical scrollbar
permanently, so a list longer than its box says so without being discovered.
- the summary quoted tent_.flagged, which counts only atoms the PERCEPTION step
found ambiguous, while the box also carries psv, volume and hydration notes. The
two disagreed -- a "0 atom(s) flagged" line could sit above a box with entries in
it. The REVIEW lines are now extracted once, before the summary, and the same
count feeds both; the label reads "Flagged for review - N item(s), scroll for all".
Wording moves from "atom(s)" to "item(s)", which is what they are.
Also AUTFBACK on the two text views and the checkbox. Per ehb54, SOMO needs it
per-field for backgrounds to render consistently, and those three were given a
palette without it.
libus_somo builds clean.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Compare: https://github.com/ehb54/ultrascan3/compare/c18f890853e4...cf0adf435b6d
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