[us-commits] [ehb54/ultrascan3] 51613b: Add headless scripting for extrapolate-to-zero-con...

emre brookes noreply at github.com
Thu Jul 16 08:51:30 MDT 2026


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

  Changed paths:
    M us_somo/develop/include/us_hydrodyn_saxs.h
    M us_somo/develop/libus_somo.pro
    M us_somo/develop/src/us_hydrodyn_saxs_external.cpp
    M us_somo/develop/src/us_hydrodyn_saxs_iqq_extrap_c0.cpp
    A us_somo/develop/src/us_hydrodyn_saxs_iqq_extrap_c0_script.cpp
    M us_somo/develop/src/us_hydrodyn_saxs_loads.cpp
    M us_somo/develop/src/us_hydrodyn_script.cpp
    M us_somo/somo/doc/manual/somo/somo_saxs_extrap_c0.html

  Log Message:
  -----------
  Add headless scripting for extrapolate-to-zero-concentration

Add a us3_somo -g gui_script command, "saxs_extrap_c0 <controlfile>", that
runs the SAXS extrapolate-to-c0 computation with no interactive dialogs, so a
run is reproducible and its result can be saved for regression testing and for
validating every option combination. The computation is identical to the
interactive path -- the same fit, options and output curve -- only the two
modal dialogs are replaced by a key/value control file.

- New us_hydrodyn_saxs_iqq_extrap_c0_script.cpp: saxs_extrap_c0_script(ctrl)
  parses the control file, clears the plot, loads each input curve (no_scaling
  so the scaling-target dialog is skipped and each curve keeps its intensity),
  sets the run options, and drives the plotted-curve extrapolation path.
- us_hydrodyn_saxs.h: script-mode gate + parsed option members + method decl.
- us_hydrodyn_saxs_loads.cpp: in script mode, skip the load-selection dialog
  (select all loaded curves) and the scaling-target dialog.
- us_hydrodyn_saxs_iqq_extrap_c0.cpp: in script mode, skip the concentration/
  options dialog and take every choice from the script members (concentrations
  from the Conc: headers, optionally overridden); route the modal warnings to
  the editor log so a headless run does not block; write the extrapolated curve
  to the control file's output path as a 3-column .dat.
- us_hydrodyn_saxs_external.cpp: echo editor_msg to stdout during a gui_script
  run so the diagnostics (curves/points used, merge point, Guinier QC, outlier
  and SD-reassessment verdicts) are visible headlessly.
- us_hydrodyn_script.cpp: wire the saxs_extrap_c0 command (opens the SAXS
  window if needed, then runs the control file).
- manual: document the scripting mode, control-file directives and an example.

Validated on the 7-curve alpha-synuclein set across model x ref_scale x merge x
weighting x recompute-inputs x SD-reassess x outlier combinations; results and
self-describing names reproduce the interactive behaviour, including the known
outlier-concentration discard at sigma 1.5 / chi^2 1.2.

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