[us-commits] [ehb54/ultrascan3] 2468de: Fill in psv, anhydrous volume and hydration for ge...

emre brookes noreply at github.com
Sat Aug 8 08:01:27 MDT 2026


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

  Changed paths:
    A us_somo/develop/include/us_hydrodyn_hydration.h
    M us_somo/develop/include/us_hydrodyn_perceive.h
    A us_somo/develop/include/us_hydrodyn_residue_builder.h
    M us_somo/develop/perceiver/DECISIONS.md
    M us_somo/develop/perceiver/Makefile
    A us_somo/develop/perceiver/tests/builder.cpp
    M us_somo/develop/perceiver/tests/emit_residue.cpp
    A us_somo/develop/perceiver/tests/hydration.cpp
    A us_somo/develop/src/us_hydrodyn_hydration.cpp
    M us_somo/develop/src/us_hydrodyn_perceive.cpp
    A us_somo/develop/src/us_hydrodyn_residue_builder.cpp

  Log Message:
  -----------
  Fill in psv, anhydrous volume and hydration for generated entries

A generated somo.residue entry left vbar, molvol and hydration at zero. This
computes all three and emits a complete entry, with anything still unset
stated as "NOT SET" in the header so a partly filled entry always looks
partly filled.

Hydration lookup (us_hydrodyn_hydration.h/.cpp)

  Derived at run time from whatever somo.residue is loaded rather than
  embedded, so it cannot drift from the user's own tables. 1581 observations
  give 48 hybrid types, 41 of them confident and 7 flagged; flagged types are
  surfaced for review rather than silently defaulted, and ties break toward
  the lower water count, since under-hydrating a proposal the user will edit
  is safer than over-hydrating one they may accept unchanged.

  The per-atom values in somo.residue are a hand distribution of a
  per-residue Kuntz total rather than a per-atom rule, so this is a starting
  point for editing and says so. The residue total is the quantity with
  literature backing; tests confirm the totals reproduce Kuntz for 14 of 14
  applicable residues, with Asp and Glu deliberately low because SOMO stores
  them protonated.

  One test records a gap Mattia suspected: every nucleotide entry carries
  zero hydration. It is asserted as the current state, so it turns red the day
  someone fills those in, which is when models built on the old values need
  revisiting.

Orchestration (us_hydrodyn_residue_builder.h/.cpp)

  perceive, then psv, volume and hydration, then emit. emit_residue takes an
  optional Properties argument rather than including the new headers, which
  include it in turn.

  A generated tryptophan entry now gives vbar 0.753 against a stored 0.738,
  molvol 224.29 against 228.2, and hydration 2.0 against 2.0. Over twelve
  residues treated as unknown, computed molvol is within 2.32% of the stored
  values on average and never worse than 4.6%.

The volume convention factor is specific to the radius set. The 1.204/1.131
measured previously came from 3V's default radii; this pipeline uses SOMO's
own, which are smaller, so the right factors are 1.248 and 1.179. The factor
tracks polarity as much as size, hydrophobics sitting near 1.26 to 1.29 and
polar residues near 1.16 to 1.21, so the band split is placed below the
hydrophobic cluster rather than at the midpoint, where it separated leucine
from isoleucine and cost both 8%.

Also corrects a comment that described the residue header's ASA field as a
molecular weight column.

Refs ehb54/ultrascan-tickets#980

Co-Authored-By: Claude Opus 4.8 <noreply at anthropic.com>



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