SolX is a coordinate-based solution X-ray scattering simulation computer program. It is a stand-alone, Windows-based software. The installation package can be downloaded here.


SolX Graphic User Interfaces

Main simulation functions:

1. Molecular X-ray Scattering

2. Molecular Pair Distance Distribution Function (PDDF)

3. Molecular Anomalous X-ray Scattering and PDDF

4. Reduced Molecular Structure Function and PDF/G(r)




Any questions/comments/sugguestion, please contact:

Xiaobing Zuo: zuox(AT)anl.gov

David Tiede: tiede(AT)anl.gov


A. X-ray Scattering Calculation

SolX program computes the scattering profile using Debye formula:

      `I(q) = sum_(j=1)^N sum_(k=1)^N(A_{j}(q)A_{k}(q) \frac{sin(q*r_{j,k})}{q*r_{j,k}})`       -- Eqn (1);    and

      `A_(j)(q) = f_{j}(q)e^{cB_{j}q^2/16\pi} -g_{j}(q)`            -- Eqn (2)

`f_{j}(q)` is the form factor of jth atom; `r_{j,k}` is the distance between jth and kth atoms; and `g_{j}(q)` is the dummy atom form factor


B. Coordinate-based pair distance distribution function

Pair distance distribution function (PDDF, P(r)) is also calculated from structural coordinates. P(r) and I(q) are related by Equantion (3):

      `P(r) = frac(1)(4\pi^3)int_0^{\infty}I(q)*r*q*sin(r*q)dq `       -- Eqn (3).   


Since `A_j(q)` is a summation of Gaussians, substitute Eqn (1,2) into Eqn(3), `P(r)` can be written as a summation of a series of Gaussian functions in terms of (`r` and `r_{j,k}`). .


C. Anomalous X-ray Scattering

When the incident X-ray energy is in the vicinity of the atomic X-ray absorption edge, the atomic form factor(`f(q)`) in Eqn (1,2) needs an anomalous dispersion correction :

      `f_j^E(q,E) = f_j^0(q) + f_j^'(E) + i f_j''(E) `       -- Eqn (4).   


`f_j^0(q)` is the normal atomic form factor in Eqn (2) and x-ray energy `E`-independent, but `q`-dependent. `f_j^'` and `f_j''` are real and imaginary correction, both are `E`-dependent, but `q`-independent. In anomalous calculations, `f_j^E(q,E)` will be used in Eqn 1-3, instead of `f_j^0(q)`.



SolX Short Instruction

SolX Menu GUI


  • 1. Click on "File" in the menu bar and select "Read Standard PDB File" to read in a coordinate file.

  • 2. Click on "Parameters" in the menu bar and select "Set Calculation Parameters" to set the q min/max for calculation, solvent, etc.

  • 3. Click on "MoleculeType" in the menu bar and select "Set Molecule Type" and then select the priority order for interpreting atom names in the coordinate files. Currently this has to be done every time a new pdb file is read. An editable library of recognized atom name is listed in the file "SolXAtoms.txt" also in the installation directory. If your coordinates are for a protein, pick choice type #3 as the default 1st choice, and you can select the other types as backups to catch atom names in the pdb file that aren't in the protein list. To get all of the atoms in a coordinate file to be recognized, all of the atom names in the pdb file will have to correspond to one of the atom names in the built-in and "SolXAtoms.txt" list.

  • 4. Click on "Calculations" in the menu bar and select "Single Scattering Calculation". Here you can edit the output file name and add an output file tag.

  • "Fast X-ray Scattering Calculation" and "Fast PDDF Calculation" are recommended for large molecules(~>50 kDa). They use pair distance histogram algorithm.
  • 5. If you have multiple pdb files that will be calculated with the same "Parameters" and "MoleculeType", you can skip step #1, do steps #2& #3, then under "Calculations" menu, click "Multiple Scattering Calculation" to select those pdb files to automatically calculate one by one.

  • In addition to X-ray scattering, there are other types of calculations available under this menu, for example PDDF/PDF and anomalous etc. More details on these calcuations in later sections.


    0. SolX menu GUI

    SolX Menu GUI


    Sub menu: File, Parameters, MoleculeType, Calculations, Utilities


    1. File sub-menu

    File Menu GUI


  • Change X-ray Parameters: online read in default/user-defined software parameters without restarting the software
  • Clear X-ray Parameters: online clear default/user-defined software parameters without restarting the software

  • SolX can handle structure coordinate files in XYZ, and standard PDB format.

  • For diagnostic purpose, SolX can print out the information of read-in atoms, to check if the structure file is processed correctly.
  • Print All Atoms for Current Molecule: print out all read-in atoms.
  • Print Atoms to Be Used in Calculations: print out all atoms that are recognized by SolX after setting MoleculeType.
  • Print Atoms Not Recognized: print out all atoms that are NOT recognized by SolX after setting MoleculeType.
  • Print Atoms in Calculation w/ Dispersion Info: print out dispersion parameters for all atoms in anomalous calculation.

  • 2. Parameters sub-menu

    SolX Menu GUI

    SolX Menu GUI


    Set parameters for X-ray scattering (including anomalous) calculations: Q_Min, Q_Max, Q_step, Scaling Rom, DW Scaling Factor, Solvent Electron Density.

  • Scaling Rom(Rom): a uniform scaling factor for atomic volume. Volume will be scaled by Rom^3 times.
  • DW Scaling Factor: a uniform scaling factor for thermal factor. Thermal factor will be set as 1 if not defined.
  • Solvent Electron Density: in electron number / A^3. Parameters of common solvents are listed and a calculator is also provided for non-common solvent.

  • 3. MoleculeType sub-menu

    MoleculeType sub-menu

    SolX Menu GUI


    Set Molecule Type and Modify Atomic Volume Parameters if needed.

  • Set Molecule Type: In SolX, atoms are recongized by atomic name, residue name and molecule type, which are defined in built-in molecule type and SolXAtomMap.txt. User can define new atoms and molecule type in SolXAtomMap.txt. Up to 4 types can be read in. This is useful for assemblies comprising of multiple types of molecules.
  • Atomic Volume Panel: display volume values of all atom types in the currently read-in molecule. Those values can be modified and taken in effect in the calculation without restarting SolX.
  • After set the molecue type, atoms should be recognized and ready for further calculations.


  • 4. Calculations sub-menu

    Calculations Menu GUI

    SolX Calculations include:

  • X-ray Scattering Calculation: normal single/multiple/batch molecule(s); anomalous scattering.
  • PDDF/PDF Calculation: pair distance distribution function directly from coordinates.
  • Reduced Structure Function Calculation: F(q)=q*[S(q)-1], for further computation of reduced pair distribution function, G(r) .
  • Fast X-ray scattering and PDDF calculations utlizing pair distance histogram algorithm. To use them, run "Prepare Pair Distance Histograms" first, then do "Fast X-ray Scattering Calculation" or "Fast PDDF Calculation".
  • Anomalous scattering and PDDF Calculation.

  • A. Scattering Calculations

    Single Scattering Calculation

  • Single Scattering Calculation: Calculate x-ray scattering profile for the current molecule.
  • Multiple Scattering Calculation: Calculate x-ray scattering profiles for multiple molecules. Parameters and MoleculeType are needed to set first.
  • Batch Scattering Calculation: for MD simulation results, same molecule with different structures. Parameters and MoleculeType are needed to set first.

  • B. PDDF & G(r) Calculations

    Single PDDF/G(r) Calculation

    PDDF and reduced PDF calculation:

  • Calculations --> Single PDDF/PDF Calculation
  • Rmax: largest distance in the moleucle, which will be automatically calculated by the software.
  • PDDF: Point-charge PDDF and PDDF defined in equation 3.
  • Real Space G(r): Reduced pair distribution function, defined in Equation y, relevant to the reduced structure function F(q).
  • Reciprocal Space G(r): Reduce pair distribution function, calculated from the Fourier transform of F(q) defined in Equation y. R_step should be >~PI/Qmax. To remove the SAXS contribution in G(r), Qmin is recommended to set ~1 /A for small molecules.

  • C. Anomalous X-ray Scattering Calculations

    Anomalous Calculation Menu

    Display dispersion

    X-ray dispersion values

    Anomalous X-ray Scattering Calculation:

  • Element X-Ray Dispersion: display the dispersion plot
  • Set X-Ray Energy: Specifiy x-ray energy for anomalous scattering / PDDF calculation.
  • X-Ray Energy Dispersion Values: display x-ray energy dispersion values(f', f") at spcified energy. Those values can be modified thourgh the GUI and take into calculation.
  • Anomalous X-ray Scattering Calculation: calculate x-ray scattering profile at specified x-ray energy.
  • Anomalous PDDF Calculation: calculate molecular PDDF at specified x-ray energy.

  • D. Reduced Structure Function F(q)=q[S(q)-1]

    Reduced Structure Function

    G(r) or reduced PDF

    Reduced structure function and PDF:

  • Reduced structure function: Parameters such as q_max, etc, defined in sub-menu Parameters.
  • G(r)/PDF: Calculated using GUI above in (B).

  • 5. Utilities sub-menu

    Utilities Menu GUI

    SolX Utilities include:

  • PDDF Broadening: simply Gaussian broadening to account for the structural dynamic nature.
  • PDDF to I(q): transform P(r) / PDDF to I(q).
  • List All Atom Types in the memory of the software (both built-in and user-defined in SolXAtoms.txt).
  • List All Name Maps in the memory of the software (both built-in and user-defined in SolXAtomMap.txt).
  • List All AtomFFs (atomic/group form factors) in the memory of the software (both built-in and user-defined in SolXFormFactor.txt).


  • User can define new parameter values, such as new atom types, new atom names, new volume values, new form factors, or overwrite existing parameters in built-in library.
    Those can be achieved by editing three text files under SolX program folder: SolXAtoms.txt, SolXAtomMap.txt and SolXFormFactor.txt.
    Parameters defined in those .txt-files will be loaded along with those built-ins, but will over-write existing built-in parameters.

    1. SolX Atom Type

    SolX Atome Type format


    SolX Atom Type can be defined in SolXAtoms.txt, with following format

  • Format: "ATOM (ATOM_TYPE) (ELEMENT_NAME) (ELECTRON_NUMBER) (VOLUME) ATM"
  • For example: "ATOM CH C 7.0 21.59 ATM // for CH group"
  • "//" for comments
  • More than 200 atom types defined in built-in library.
  • SolX will load in parameters in both built-in library and "SolXAtoms.txt", but SolXAtoms.txt can overwrite existing paramters.
  • The full list of atom types (including built-in and those in SolXAtoms.txt) can be printed out from "Utilities" menu.

  • 2. Atom Name Conversion Map

    SolXAtomMap format


  • Atom name conversion map format:


  • Current SolX program is a 32-bit version. Minimum Operating System requirement is Windows XP. The installation is straightforward, simply following the on-screen instruction and clicking "Next>>", except for changing "Target directory for application" as shown below.
    If the program behaves abnormally, uninstall and reinstall it.

    A. Installation

    SolX installation 1

    SolX installation 2: Change "Target directory for application"

    SolX installation 3


    Quick instruction on installation

  • Unzip the SolX program package, and click "setup.exe" to install
  • "Target dirctory for application" is the location where the programm will be installed. Both the SolX application file and the parameters files will be installed there.
  • The default directory is "C:\Program Files(x86)\SolX\". Parameter files will not be allowed to edit without administator previleges.
  • Therefore, it is better to install it to a location (for example "C:\SolX\") where the current windows user is allowed editting the parameter files in it.
  • Then follow the on-screen instruction and click "Next" to finish the installation.
  • After installation completes, the SolX program can be found from "Start" menu, under "SolX" folder.

  • B. Uninstallation

    Starting uninstallation from "Start" menu

    Uninstall at "Control Panel"--> "Programs"


  • To uninstall, find the SolX program from "Start" menu, then right click and select "Uninstall".
  • It will bring you to "Programs" window in "Control Panel". Then find SolX and right click to "Uninstall".
  • Both the installation folder (i.e., "C:\SolX") and Program folder in "Start" menu will be detelted.