[us-commits] [ehb54/ultrascan3] 5a3784: extrap_c0 CLI: warn + auto-repair non-positive inp...

emre brookes noreply at github.com
Thu Jul 16 12:56:01 MDT 2026


  Branch: refs/heads/ehb54-issue-920
  Home:   https://github.com/ehb54/ultrascan3
  Commit: 5a37845a6354c292be6fa3a219622cb3a4847013
      https://github.com/ehb54/ultrascan3/commit/5a37845a6354c292be6fa3a219622cb3a4847013
  Author: ehb54 <brookes at uthscsa.edu>
  Date:   2026-07-16 (Thu, 16 Jul 2026)

  Changed paths:
    M us_somo/develop/src/us_hydrodyn_saxs_iqq_extrap_c0.cpp
    M us_somo/develop/src/us_hydrodyn_saxs_iqq_extrap_c0_script.cpp

  Log Message:
  -----------
  extrap_c0 CLI: warn + auto-repair non-positive input SDs (all-or-nothing errors)

A single non-positive SD point (commonly a grid edge in deposited SAXS data)
makes SOMO disable that curve's errors entirely -- error handling is
all-or-nothing by design -- silently forcing an unweighted extrapolation.
This surfaced as materially different, sometimes nonsensical, benchmark results
vs a weighted reference.

Rather than change the shared all-or-nothing convention, handle it in the
extrap-c0 scripted flow only:

- Always warn (non-blocking stdout log -- never a pop-up, so headless runs
  don't hang) which input curve carries how many non-positive SD points.
- fill_sd directive (default on): repair each non-positive SD from its nearest
  positive-SD neighbour before loading, but only when the positive SDs are the
  majority (a mostly/all-zero curve has no real errors to draw from and is left
  as-is). Since the dialog already offers "Weight regression by curve errors"
  (i.e. turn SDs off), auto-repair is a safe default; set fill_sd 0 to reproduce
  the raw unweighted result. Headers (incl. Conc:) are preserved.
- This is folded into the existing pre-load common_crop preprocessing.

do_extrap_c0: the "no usable error" note now explains the likely cause
(non-positive SD points disabling a curve's errors) and points at the
weighting-off option. It uses editor_msg (non-blocking), matching the existing
scripted-run pop-up guard.

Validated on the SASBDB Table-1 additive benchmark: lysozyme (3 edge zeros) now
warns, fills, and fits weighted; glucose isomerase went from no output to a
sensible Rg. (RNaseA/xylanase/urate-oxidase failures are separate low-q
data-quality issues, not SD/grid bugs.)

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