Pepsi-SAXS (PEPSI stands for Polynomial Expansions of Protein Structures and Interactions) is new implementation of the multipole-based scheme initially proposed by Stuhrmann (Stuhrmann, 1970). Overall, our method is significantly faster with a similar accuracy compared to Crysol, FoXS, and the 3D-Zernike implementation from the SAStbx package.


Pepsi-SAXS achieves speed and accuracy thanks to the following features of the method :

  1. We use a very fast model for hydration shell computation based on a uniform grid of points.
  2. We use the adaptive order of the multipole expansion. More precisely, according to the Nyquist– Shannon–Kotelnikov sampling theorem, we determine the required expansion order using the gyration radius of the model’s hydration shell and the value of the maximum scattering vector.
  3. We represent the scattering intensity curve using a cubic spline interpolation, which allows us to significantly speed up the running time of our method.
  4. We introduce partial scattering intensities to rapidly fit the theoretical curve to the experimental one using exhaustive search in two adjustable parameters.
  5. Wee paid particular attention when deriving parameters for the form-factors, especially those for charged and resonance groups.

Test cases

We have systematically validated our method on an excessive set of over fifty models collected from the BioIsis and SASBDB databases. Using a laptop (a MacBook Pro Mid 2015 with a 2.8 GHz Intel Core i7 processor and 16 GB 1600 MHz DDR3 RAM), we demonstrated that Pepsi-SAXS is about 7, to 36 times faster compared to Crysol, FoXS and the 3D-Zernike method in SAStbx, correspondingly, when tested on data from the BioIsis database, and is about 5, to 25 times faster compared to Crysol, FoXS and SAStbx, correspondingly, when tested on data from SASBDB.


Comparison of modelled and experimental scattering profiles. A) Comparison of Pepsi-SAXS, CRYSOL, and FoXS on the SASDAW3 profile from the SASBDB database. B) Comparison of Pepsi-SAXS, CRYSOL, and FoXS on the BID 1SPXGP profile from the BioIsis database. C) Effect of the adaptive expansion order on the model quality of Pepsi-SAXS applied to the BID GISRUP profile from the BioIsis database. D) Comparison of Pepsi-SAXS modelled scattering profiles without the subtraction (two fitting constants) and with the subtraction (three fitting constants) of the constant systematic error from the experimental data calculated for the BID ZGDWKP model from the BioIsis database.

Performance on the BioIsis data

Comparison of four methods, Crysol, FoXS, SAStbx (using the 3D-Zernike technique and data reduction option), and Pepsi-SAXS, when fitting modelled intensity profiles to experimental data collected from the BioIsis database. For each method, we provide the value of χ and the running time measured in seconds for each of the scattering profiles. We also list the number of atoms in the models along with the average values of χ and running time. All tests were performed on a MacBook Pro Mid 2015 laptop.


Sergei Grudinin1 and Maria Garkavenko2,

1 Nano-D team, Inria/CNRS Grenoble, France  & 2 Laboratoty of Advanced Studies of Membrane Proteins, MIPT Moscow
e-mail: Sergei.Grudinin @


Pepsi-SAXS_for MacOS version 2.6

Pepsi-SAXS for Linux version 3.0 (statically linked with libstdc++ and libgcc, GLIBC 2.4)

Pepsi-SAXS for Windows (not updated regularly)

Pepsi-SAXS GUI will be available at

A python wrapper for batch processing of multiple input files

A manual is also coming


Version 2.9 from May 2020:

  • Initial version of computing profiles for symmetric multimers added. The format is expected to be the SAM rigid-body transforms. It supports subtraction of the intersection solvation layer, which should work fine for Cn symmetries. The subtraction is not supposed to work correctly for now for higher-oder assemblies. Constant background subtraction is not supported yet.

Version 2.8 from April 2020:

  • Added new format for rigid blocks. An NMA bug for alternative positions atoms is fixed.

Version 2.7 from 13 Feb 2020:

  • First prototype for the novel excluded solvent model.

Version 2.6 from 29 Jan 2020:

  • A possibility to vary the r0 fitting parameter is added to the simulation mode.

Version 2.5 from 16 Jan 2020:

  • A bug in the excluded volume of individual hydrogen atoms is fixed in the SAXS code.

Version 2.4 from 31 July 2019:

  • An option to fix I(0) is added.

Version 2.3 from July 2019:

  • Domain definition is added, the format of rigid blocks is updated.

Version 2.1 from February 2019:

  • Initial implimentation of the multi-structure fitting.

January 2019, Version 2.0 :

  • Added flexible optimization of conformations.
  • A bug with absolute contrast fixed.

1st August 2018, Version 1.4 :

  • Added docking module.

30th July 2018, Version 1.3 :

  • Added initial prototype of 2D scattering images.

24th April 2018, Version 1.2  :

  • Added automatic identification of labile and nonlabile explicit hydrogens.
  • Added bulk SLD option.

19th April 2018, Version 1.1 :

  • Excluded solvent radii updated. Many more ions added.

6th March 2018, Version 1.0 :

  • Added computation of P(r).

March 2018, Version 0.9 :

  • Several features for SANS fitting added.

23/02/2018 Version 0.8  uploaded :

  • A small bug when outputting the intensities with an offset constant is fixed.
  • Code rearranged to allow for SANS computations.

12/01/2018 Version 0.7  uploaded :

  • Output intensity format has been completed if no fitting is used.
  • Additional constant contrast option was added with the flag –dro.

15/12/2017 Version 0.6  uploaded :

  • Initial support of equilibrium fluctuations added.

11/04/2017 Version 0.5  uploaded :

  • the default value of the maximum scattering angle was fixed to 0.5 A^-1.

30/05/2016 Version 0.4  uploaded :

  • reading multiple profiles form a single data file bug fixed
  • default positive contrast of the hydration shell
  • shrunk default ranges of the adjustable parameters
  • shrunk width of the hydration layer

03/10/2015 Version 0.3  uploaded :

  • uninitialised fitting constant bug fixed
  • option added to force positive contrast of the hydration shell


All rights reserved. The academic version is free.


Sergei Grudinin, Maria Garkavenko, Andrei Kazennov. Pepsi-SAXS : an adaptive method for rapid and accurate computation of small-angle X-ray scattering profilesActa Cryst., 2017, D73, pp.449 – 464. <10.1107/S2059798317005745> BibTex

Comments are closed.