[us-commits] [ehb54/ultrascan3] d67f25: SOMO: robust automatic Guinier range search (autor...

emre brookes noreply at github.com
Mon Sep 14 14:54:13 MDT 2026


  Branch: refs/heads/ehb54-issue-1063
  Home:   https://github.com/ehb54/ultrascan3
  Commit: d67f2528dc30e4ab2606d603a960bb978c599e9d
      https://github.com/ehb54/ultrascan3/commit/d67f2528dc30e4ab2606d603a960bb978c599e9d
  Author: Emre Brookes <emre.brookes at umontana.edu>
  Date:   2026-09-14 (Mon, 14 Sep 2026)

  Changed paths:
    M us_somo/develop/include/us_saxs_util.h
    A us_somo/develop/include/us_saxs_util_autorg.h
    M us_somo/develop/libus_somo.pro
    A us_somo/develop/src/us_saxs_util_autorg.cpp
    M us_somo/develop/src/us_saxs_util_pm.cpp
    M us_somo/develop/us_saxs_cmds_mpi/us_saxs_cmds_mpi.pro
    M us_somo/develop/us_saxs_cmds_mpi_cuda/us_saxs_cmds_mpi_cuda.pro
    M us_somo/develop/us_saxs_cmds_t/main.cpp
    M us_somo/develop/us_saxs_cmds_t/us_saxs_cmds_t.pro

  Log Message:
  -----------
  SOMO: robust automatic Guinier range search (autorg) core and headless CLI

New US_Saxs_Util::autorg() (us_saxs_util_autorg.cpp) with US_Autorg_Params /
US_Autorg_Result: cleans the curve, bounds the search by a preliminary Rg from
the longest valid low-q window, enumerates every window subject to minpts /
maxpts / q*Rg / Rg limits, slope significance and a minimum q*Rg span, scores
windows by a weighted geometric mean of reduced chi2, quadratic curvature,
q*Rg span, coverage (off by default), consistent-skip start penalty, forward
consistency over the q*Rg <= qrgmax region and consensus with the quality
weighted median Rg, then reports Rg and I(0) with SDs, the window, quality,
a low-q z-score with aggregation / repulsion flags and the Rg spread over the
top windows. Optional outlier rejection. Every parameter is settable.

read_iq_flexible() reads 2 or 3 numeric columns from any text file, skipping
non-numeric header / footer lines, and sorts unsorted q with a warning.

CLI: "us_saxs_cmds_t autorg [--json] [--key value ...] file ..." and the
"autorg" run type of "us_saxs_cmds_t json" (files [...] or inline q / i / e
arrays) returning one JSON object per curve.

Existing guinier_fit* routines are untouched.

Refs ehb54/ultrascan-tickets#1063

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