Research note · 7 min read
Trusting a SAXS analysis you didn't do by hand
By Eman Ahmed, PhD candidate, Gormley Lab, Rutgers University
Small-angle X-ray scattering gives you the size and shape of something in solution without crystallising it, which is why it is so useful for proteins, polymer nanoparticles and anything else that will not sit still. What it does not give you is an unambiguous answer. Between the raw scattering curve and a reported radius of gyration sit a series of decisions, and different analysts make them differently.
The judgement calls
Where do you set the Guinier region? Too narrow and the fit is noisy; too wide and you violate the approximation the
fit depends on. How do you choose the maximum particle dimension, Dmax, when computing the pair distance
distribution function? Pick it too small and you truncate real structure, too large and you invent oscillation that is
not there. Is the sample aggregating? Is there interparticle interference at low q?
An experienced person handles all of this more or less automatically, and does it well. The problem is that they handle it at a rate of a few profiles an hour, and two experienced people will not produce identical numbers. Once you are generating hundreds of profiles from a high-throughput synthesis campaign, both of those facts become blocking.
Cross-validation instead of assertion
The design decision I think matters most in SAXS Assistant is that it does not simply report a number. There are two independent routes to a radius of gyration: the Guinier approximation at low q, and integration of the pair distance distribution function. On a well-measured dataset those two should agree. When they diverge, something is wrong: with the measurement, the buffer subtraction, or the assumption of monodispersity.
Using that agreement as a built-in quality gate means the tool has a basis for declining to answer, which is the property you actually want from automation. A pipeline that confidently returns a plausible-looking number for a bad profile is worse than no pipeline.
Training on what people actually did
For Dmax estimation we trained a multilayer perceptron regressor on 1,940 experimental data files from
the Small Angle Scattering Biological Data Bank. The choice of training data is deliberate: these are real profiles with
Dmax values chosen by researchers, many of them specialists. The model is therefore learning how the field
makes this judgement, not how an idealised simulation behaves.
On a held-out test set it reached R² = 0.90 with a mean absolute error of 11.7 Å. That is not a replacement for expert review on a structure you intend to publish. It is entirely adequate for triaging several hundred profiles down to the handful that deserve it.
Shape, without pretending to a structure
The other piece is classification. We fitted a Gaussian mixture model over SASBDB entries to group scattering profiles into structural classes, so a user can ask how closely an experimental sample resembles known biomolecular shapes. The Kratky plot has always carried this information (folded, unfolded, multidomain), but reading it has been qualitative. Clustering makes it a probability rather than an impression, without overclaiming that you have solved a structure.
The general point
Automating an analysis forces you to write down the decisions that were previously made implicitly. That is uncomfortable, because some of them turn out not to have a principled basis. It is also the only way to make the analysis reproducible, and the flags for low-confidence results are, in the end, more valuable than the speed.
Source
This note summarises SAXS Assistant: Automated SAXS analysis for structural discovery in biologics and polymeric nanoparticles (Ramirez, Mare, Byrnes et al., Biophysical Journal, 2025; doi:10.1016/j.bpj.2025.09.034). These notes are plain-language companions to peer-reviewed work. Every factual claim traces to the paper linked at the end of the note.