[us-commits] [ehb54/ultrascan3] c4bced: perceiver: fix the ionization index, respect the 2...

emre brookes noreply at github.com
Wed Aug 12 09:01:57 MDT 2026


  Branch: refs/heads/ehb54-issue-980
  Home:   https://github.com/ehb54/ultrascan3
  Commit: c4bced72a8e5f15e3372a0ae7faaf2ef444fb0f9
      https://github.com/ehb54/ultrascan3/commit/c4bced72a8e5f15e3372a0ae7faaf2ef444fb0f9
  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: fix the ionization index, respect the 2-pKa limit, reword the total

Accepting a citrate entry failed with "Duplicate ionization index". Three separate
constraints in the residue-file format, none of which the emitter was honouring:

 1. the ionization index must be UNIQUE within a residue. Every ionizable atom was
    written with index 1, so citrate's second carboxyl collided. Now counts from 1.
 2. the header is a vbar followed by one (vbar, pKa) PAIR per ionization, and each
    atom's index must match a declared pKa, which it then consumes. Only one pair was
    being written no matter how many atoms were ionizable.
 3. at most TWO are supported -- the loader rejects a third outright. Citrate has
    three carboxyls and simply cannot be written in two states.

For (3) the entry now collapses to the single state that is true at pH 7, the
deprotonated one, applied to the primary fields so the TYPES and the WATERS agree --
unlike the original bug, where the types were neutral and the waters ionized. The
REVIEW block says the entry is not pH-switchable and why. Silently emitting a record
the loader refuses is the one option not on the table.

Verified both paths: a single-carboxyl residue emits ASP's exact shape (header
"0.593 0.593 3.67", one 16-field line at index 1); citrate emits 8-field lines with
O1H0- and 5 waters, and the collapse note.

Hydration total reworded as Mattia reads it -- "16 waters proposed, 1 for non-ionized
and 15 for ionized atoms" -- split by atom category rather than by state, and
coloured, since it is the number most worth checking.

Tests unchanged: unit 86/0, hydration 37/0, psv 60/0, regression 97.894% exact.

Co-Authored-By: Claude Opus 5 <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