[us-commits] [ehb54/ultrascan3] d67f25: SOMO: robust automatic Guinier range search (autor...
emre brookes
noreply at github.com
Thu Sep 24 13:58:11 MDT 2026
Branch: refs/heads/somo-dev
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>
Commit: 84b654830742df5091f45de5622802856083935b
https://github.com/ehb54/ultrascan3/commit/84b654830742df5091f45de5622802856083935b
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-14 (Mon, 14 Sep 2026)
Changed paths:
M us_somo/develop/src/us_saxs_util_autorg.cpp
Log Message:
-----------
autorg: keep the q = 0 point for the rg type, emit params as JSON numbers
log( 0 ) times the zero power gave NaN and silently dropped q = 0; the
effective-parameter echo of the json run type now writes unquoted numbers.
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: c8ac15cdfa33c9be9df5f455a48f12f40ed5ec66
https://github.com/ehb54/ultrascan3/commit/c8ac15cdfa33c9be9df5f455a48f12f40ed5ec66
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-14 (Mon, 14 Sep 2026)
Changed paths:
M us_somo/develop/include/us_hydrodyn_saxs.h
M us_somo/develop/include/us_saxs_util_autorg.h
M us_somo/develop/libus_somo.pro
A us_somo/develop/src/us_hydrodyn_saxs_autorg.cpp
M us_somo/develop/src/us_hydrodyn_script.cpp
M us_somo/develop/src/us_saxs_util_autorg.cpp
M us_somo/develop/us_saxs_cmds_t/main.cpp
A us_somo/somo/doc/manual/somo/somo_autorg.html
M us_somo/somo/doc/manual/somo/somo_saxs_options.html
Log Message:
-----------
autorg: gui_script "sas load_iq" / "sas autorg", CSV output, manual page
sas load_iq <file> [<file> ...] loads curves into the SAS window without
scaling; sas autorg [csv <file>] [key value ...] runs the search on every
loaded curve, echoing the table to stdout and the editor and optionally a
CSV with all result fields. Unknown keys are rejected with the parameter
help. us_saxs_cmds_t autorg gains --csv. New manual page somo_autorg.html
(algorithm, parameters, the three entry points), linked from the Guinier
options page.
Refs ehb54/ultrascan-tickets#1063
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: 782641bd93d878b850131ac74576cee30f949c8f
https://github.com/ehb54/ultrascan3/commit/782641bd93d878b850131ac74576cee30f949c8f
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-14 (Mon, 14 Sep 2026)
Changed paths:
A us_somo/develop/test/autorg/README.md
A us_somo/develop/test/autorg/compare.pl
A us_somo/develop/test/autorg/gen_synthetic.pl
Log Message:
-----------
autorg: synthetic validation harness (generator + comparison table)
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: 35bdd14542b8c63d79b11fd0b72b63ce1d9a2853
https://github.com/ehb54/ultrascan3/commit/35bdd14542b8c63d79b11fd0b72b63ce1d9a2853
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-15 (Tue, 15 Sep 2026)
Changed paths:
M us_somo/develop/include/us_hydrodyn_sas_options_guinier.h
M us_somo/develop/include/us_hydrodyn_saxs.h
M us_somo/develop/include/us_saxs_util.h
R us_somo/develop/include/us_saxs_util_autorg.h
A us_somo/develop/include/us_saxs_util_guinier_search.h
M us_somo/develop/libus_somo.pro
M us_somo/develop/src/us_hydrodyn_sas_options_guinier.cpp
R us_somo/develop/src/us_hydrodyn_saxs_autorg.cpp
M us_somo/develop/src/us_hydrodyn_saxs_guinier.cpp
A us_somo/develop/src/us_hydrodyn_saxs_guinier_search.cpp
M us_somo/develop/src/us_hydrodyn_script.cpp
M us_somo/develop/src/us_hydrodyn_settings.cpp
R us_somo/develop/src/us_saxs_util_autorg.cpp
A us_somo/develop/src/us_saxs_util_guinier_search.cpp
M us_somo/develop/src/us_saxs_util_pm.cpp
R us_somo/develop/test/autorg/README.md
R us_somo/develop/test/autorg/compare.pl
R us_somo/develop/test/autorg/gen_synthetic.pl
A us_somo/develop/test/guinier_search/README.md
A us_somo/develop/test/guinier_search/compare.pl
A us_somo/develop/test/guinier_search/gen_synthetic.pl
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
R us_somo/somo/doc/manual/somo/somo_autorg.html
A us_somo/somo/doc/manual/somo/somo_guinier_search.html
M us_somo/somo/doc/manual/somo/somo_saxs_options.html
Log Message:
-----------
Rename autorg to guinier_search; Guinier options checkbox for the robust search; sas guinier
"autorg" is ATSAS's name; the US-SOMO routine is now guinier_search everywhere:
us_saxs_cmds_t guinier_search, the guinier_search json run type, gui_script
"sas guinier_search", US_Guinier_Search_Params / _Result, the source files,
the manual page somo_guinier_search.html and the test directory. ATSAS's
autorg keeps its name where it is compared against.
Guinier options window: new checkbox "Robust automatic Guinier range search"
(gparams guinier_robust_search, default off, mutually exclusive with "Search
for best Guinier range", the q*R limit mode and outlier rejection) routes
Process Guinier, Process CS Guinier and Process TV Guinier through the new
search with the q limits, point limits, q*R limit and SD weighting of that
window; the quality, window count and low-q diagnostics go to the message
area and the csv header records "Robust automatic range fitting used".
gui_script "sas guinier [rg|cs|tv]" presses those buttons; under gui_script
the Guinier reports are also echoed to stdout.
Refs ehb54/ultrascan-tickets#1063
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: 5cd42eab072ad4f1652c8e9d4d21135102d62513
https://github.com/ehb54/ultrascan3/commit/5cd42eab072ad4f1652c8e9d4d21135102d62513
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-17 (Thu, 17 Sep 2026)
Changed paths:
M us_somo/develop/include/us_saxs_util_guinier_search.h
M us_somo/develop/src/us_saxs_util_guinier_search.cpp
M us_somo/somo/doc/manual/somo/somo_guinier_search.html
Log Message:
-----------
guinier_search: maxrelsd parameter to exclude points with SD/I above a fraction
Off by default: such points carry little weight in the SD-weighted fit
(on a real extrapolated curve, dropping the first 9 noisy points moved Rg
by 0.1 A). Exposed on every interface for users who expect the leading
noisy points to be discarded as ATSAS does; the warning reports how many
excluded points fall below the end of the fitted range.
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: 53ef02097005ec8f0c6a5385dbf6fccba4a6e598
https://github.com/ehb54/ultrascan3/commit/53ef02097005ec8f0c6a5385dbf6fccba4a6e598
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-24 (Thu, 24 Sep 2026)
Changed paths:
M us_somo/develop/include/us_saxs_util_guinier_search.h
M us_somo/develop/src/us_saxs_util_guinier_search.cpp
M us_somo/somo/doc/manual/somo/somo_guinier_search.html
Log Message:
-----------
guinier_search: fixed mode fits exactly the qmin..qmax range with the same diagnostics
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: d71273e85c2b7613e53c65a272bac080e0cc6018
https://github.com/ehb54/ultrascan3/commit/d71273e85c2b7613e53c65a272bac080e0cc6018
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-09-24 (Thu, 24 Sep 2026)
Changed paths:
M us_somo/develop/src/us_saxs_util_guinier_search.cpp
M us_somo/somo/doc/manual/somo/somo_guinier_search.html
Log Message:
-----------
guinier_search: in fixed mode an explicit qrgmax trims the end of the requested range
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
Commit: 8f80d70b6f083d4f73da9d8ce613cceb82c1f80c
https://github.com/ehb54/ultrascan3/commit/8f80d70b6f083d4f73da9d8ce613cceb82c1f80c
Author: emre brookes <ehb54 at users.noreply.github.com>
Date: 2026-09-24 (Thu, 24 Sep 2026)
Changed paths:
M us_somo/develop/include/us_hydrodyn_sas_options_guinier.h
M us_somo/develop/include/us_hydrodyn_saxs.h
M us_somo/develop/include/us_saxs_util.h
A us_somo/develop/include/us_saxs_util_guinier_search.h
M us_somo/develop/libus_somo.pro
M us_somo/develop/src/us_hydrodyn_sas_options_guinier.cpp
M us_somo/develop/src/us_hydrodyn_saxs_guinier.cpp
A us_somo/develop/src/us_hydrodyn_saxs_guinier_search.cpp
M us_somo/develop/src/us_hydrodyn_script.cpp
M us_somo/develop/src/us_hydrodyn_settings.cpp
A us_somo/develop/src/us_saxs_util_guinier_search.cpp
M us_somo/develop/src/us_saxs_util_pm.cpp
A us_somo/develop/test/guinier_search/README.md
A us_somo/develop/test/guinier_search/compare.pl
A us_somo/develop/test/guinier_search/gen_synthetic.pl
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
A us_somo/somo/doc/manual/somo/somo_guinier_search.html
M us_somo/somo/doc/manual/somo/somo_saxs_options.html
Log Message:
-----------
Merge pull request #560 from ehb54/ehb54-issue-1063
SOMO: robust automatic Guinier range search (guinier_search) with CLI, JSON, gui_script and Guinier-options access
Compare: https://github.com/ehb54/ultrascan3/compare/65288d8f5056...8f80d70b6f08
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