SAXS
This is part of the isdb module

Calculates SAXS intensity.

SAXS intensities are calculated for a set of scattering vectors using QVALUE keywords numbered from 1. Form factors can be assigned either by polynomial expansion of any order by using the PARAMETERS keywords, or automatically matched to atoms using the ATOMISTIC flag by reading a PDB file. Alternatively to the atomistic representation, two types of coarse-grained mapping are available:

  • MARTINI.
  • ONEBEAD.

Whether for PARAMETERS, ATOMISTIC, and ONEBEAD the user must provide an all-atom PDB file via MOLINFO before the SAXS instruction. MARTINI requires a mapping scheme consisting of a PDB file that contains both the all-atom and MARTINI representations, and a bead position file (e.g., bead1: CENTER ATOMS=1,5,7,11,12 WEIGHTS=14,12,12, 12,16).

ONEBEAD scheme consists in a single-bead per amino acid residue or three-bead for nucleic acid residue (one for the phosphate group, one for the pentose sugar, one for the nucleobase). PLUMED creates a virtual bead on which the SAXS calculations are performed, centred on the COM of all atoms belonging to the bead. It is possible to account for the contribution of the solvation layer to the SAXS intensity by adding a correction term for the solvent accessible beads only: the form factors of the amino acids / phosphate groups / pentose sugars / nucleobases with a SASA (computed via LCPO algorithm) greater than a threshold are corrected according to an electron density term. Both the surface cut-off threshold and the electron density term can be set by the user with the SASA_CUTOFF and SOLVATION_CORRECTION keywords. Moreover, SASA stride calculation can be modified using SOLVATION_STRIDE, which is set to 10 steps by default. ONEBEAD requires an additional PDB file to perform mapping conversion, which must be provided via TEMPLATE keyword. This PDB file should only include the atoms for which the SAXS intensity will be computed. The AMBER OL3 (RNA) and OL15 (DNA) naming is required for nucleic acids. Three additional bead types are available for DNA and RNA besides phosphate group, pentose sugar, and nucleobase:

  • 5'-end pentose sugar capped with an hydroxyl moiety at C5' (the residue name in the PDB must be followed by "5", e.g., DC5 or C5 for cytosine in DNA and RNA, respectively);
  • 5'-phosphorylated end with an additional hydroxyl moiety at P (the residue name in the PDB must be followed by "T", e.g., DCT or CT for cytosine in DNA and RNA, respectively);
  • 3'-end pentose sugar capped with an hydroxyl moiety at C3' (the residue name in the PDB must be followed by "3", e.g., DC3 or C3 for cytosine in DNA and RNA, respectively). An additional bead type is available for proteins:
  • Cysteine residue involved in disulfide bridge (the residue in the PDB must be named CYX).

Experimental reference intensities can be added using the EXPINT keywords. All these values must be normalised to the SAXS intensity at q = 0. To facilitate this operation, the SCALE_EXPINT keyword can be used to provide the intensity at q = 0. Each EXPINT is divided by SCALE_EXPINT. The maximum QVALUE for ONEBEAD is set to 0.3 inverse angstroms. The solvent density, that by default is set to 0.334 electrons per cubic angstrom (bulk water), can be modified using the SOLVDENS keyword.

The ABSOLUTE flag can be used in order to calculate intensities in the absolute scale. It is only available for the ATOMISTIC scheme and cannot be used with SCALE_EXPINT.

By default SAXS is calculated using Debye on CPU, by adding the GPU flag it is possible to solve the equation on a GPU if the ARRAYFIRE libraries are installed and correctly linked. METAINFERENCE can be activated using DOSCORE and the other relevant keywords.

Examples
in the following example the SAXS intensities are calculated using single-bead per residue approximation, with a SASA threshold of 1 square nanometer and a solvation term of 0.04. Each experimental intensity is divided by 1.4002, which is the corresponding theoretical intensity value at q = 0. The form factors are selected according to the PDB file specified by TEMPLATE keyword.
Click on the labels of the actions for more information on what each action computes
tested on master
MOLINFO 
STRUCTURE
compulsory keyword a file in pdb format containing a reference structure.
=template_AA.pdb SAXS: SAXS ...
ATOMS
The atoms to be included in the calculation, e.g.
=1-355
ONEBEAD
( default=off ) calculate SAXS for a single bead model
TEMPLATE
compulsory keyword ( default=template.pdb ) A PDB file is required for ONEBEAD mapping
=template_AA.pdb
SOLVDENS
compulsory keyword ( default=0.334 ) Density of the solvent to be used for the correction of atomistic form factors
=0.334
SOLVATION_CORRECTION
compulsory keyword ( default=0.0 ) Solvation layer electron density correction (ONEBEAD only)
=0.04
SOLVATION_STRIDE
compulsory keyword ( default=10 ) Number of steps between every new residues solvation estimation via LCPO (ONEBEAD only)
=1
SASA_CUTOFF
compulsory keyword ( default=1.0 ) SASA value to consider a residue as exposed to the solvent (ONEBEAD only)
=1.0
SCALE_EXPINT
compulsory keyword ( default=1.0 ) Scaling value for experimental data normalization
=1.4002
QVALUE1
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.03
EXPINT1
Add an experimental value for each q value.
=1.0902
QVALUE2
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.06
EXPINT2
Add an experimental value for each q value.
=0.790632
QVALUE3
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.09
EXPINT3
Add an experimental value for each q value.
=0.453808
QVALUE4
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.12
EXPINT4
Add an experimental value for each q value.
=0.254737
QVALUE5
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.15
EXPINT5
Add an experimental value for each q value.
=0.154928
QVALUE6
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.18
EXPINT6
Add an experimental value for each q value.
=0.0921503
QVALUE7
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.21
EXPINT7
Add an experimental value for each q value.
=0.052633
QVALUE8
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.24
EXPINT8
Add an experimental value for each q value.
=0.0276557
QVALUE9
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.27
EXPINT9
Add an experimental value for each q value.
=0.0122775
QVALUE10
Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ....
=0.30
EXPINT10
Add an experimental value for each q value.
=0.00880634 ...
PRINT ARG=(SAXS\.q-.*),(SAXS\.exp-.*) FILE=saxsdata STRIDE=1
Glossary of keywords and components
Description of components

By default this Action calculates the following quantities. These quantities can be referenced elsewhere in the input by using this Action's label followed by a dot and the name of the quantity required from the list below.

Quantity Description
score the Metainference score
sigma uncertainty parameter
sigmaMean uncertainty in the mean estimate
neff effective number of replicas
acceptSigma MC acceptance for sigma values
q The # SAXS of q

In addition the following quantities can be calculated by employing the keywords listed below

Quantity Keyword Description
acceptScale SCALEDATA MC acceptance for scale value
acceptFT GENERIC MC acceptance for general metainference f tilde value
weight REWEIGHT weights of the weighted average
biasDer REWEIGHT derivatives with respect to the bias
scale SCALEDATA scale parameter
offset ADDOFFSET offset parameter
ftilde GENERIC ensemble average estimator
exp EXPINT The # experimental intensity
The atoms involved can be specified using
ATOMS The atoms to be included in the calculation, e.g. the whole protein. For more information on how to specify lists of atoms see Groups and Virtual Atoms
Compulsory keywords
NOISETYPE ( default=MGAUSS ) functional form of the noise (GAUSS,MGAUSS,OUTLIERS,MOUTLIERS,GENERIC)
LIKELIHOOD ( default=GAUSS ) the likelihood for the GENERIC metainference model, GAUSS or LOGN
DFTILDE ( default=0.1 ) fraction of sigma_mean used to evolve ftilde
SCALE0 ( default=1.0 ) initial value of the scaling factor
SCALE_PRIOR ( default=FLAT ) either FLAT or GAUSSIAN
OFFSET0 ( default=0.0 ) initial value of the offset
OFFSET_PRIOR ( default=FLAT ) either FLAT or GAUSSIAN
SIGMA0 ( default=1.0 ) initial value of the uncertainty parameter
SIGMA_MIN ( default=0.0 ) minimum value of the uncertainty parameter
SIGMA_MAX ( default=10. ) maximum value of the uncertainty parameter
OPTSIGMAMEAN ( default=NONE ) Set to NONE/SEM to manually set sigma mean, or to estimate it on the fly
WRITE_STRIDE ( default=10000 ) write the status to a file every N steps, this can be used for restart/continuation
DEVICEID ( default=-1 ) Identifier of the GPU to be used
TEMPLATE ( default=template.pdb ) A PDB file is required for ONEBEAD mapping
DEUTER_CONC ( default=0. ) Fraction of deuterated solvent
SOLVDENS ( default=0.334 ) Density of the solvent to be used for the correction of atomistic form factors
SOLVATION_CORRECTION ( default=0.0 ) Solvation layer electron density correction (ONEBEAD only)
SASA_CUTOFF ( default=1.0 ) SASA value to consider a residue as exposed to the solvent (ONEBEAD only)
N ( default=10 ) Number of points in the resolution function integral
SOLVATION_STRIDE ( default=10 ) Number of steps between every new residues solvation estimation via LCPO (ONEBEAD only)
SCALE_EXPINT ( default=1.0 ) Scaling value for experimental data normalization
Options
NUMERICAL_DERIVATIVES ( default=off ) calculate the derivatives for these quantities numerically
DOSCORE ( default=off ) activate metainference
NOENSEMBLE ( default=off ) don't perform any replica-averaging
REWEIGHT ( default=off ) simple REWEIGHT using the ARG as energy
SCALEDATA ( default=off ) Set to TRUE if you want to sample a scaling factor common to all values and replicas
ADDOFFSET ( default=off ) Set to TRUE if you want to sample an offset common to all values and replicas
NOPBC ( default=off ) Ignore the periodic boundary conditions when calculating distances
SERIAL ( default=off ) Perform the calculation in serial - for debug purpose
GPU ( default=off ) Calculate SAXS using ARRAYFIRE on an accelerator device
ABSOLUTE ( default=off ) Absolute intensity: the intensities for each q-value are not normalised for the intensity at q=0.
ATOMISTIC ( default=off ) Calculate SAXS for an atomistic model
MARTINI ( default=off ) Calculate SAXS for a Martini model
ONEBEAD

( default=off ) calculate SAXS for a single bead model

ARG the labels of the values from which the function is calculated
AVERAGING Stride for calculation of averaged weights and sigma_mean
SCALE_MIN minimum value of the scaling factor
SCALE_MAX maximum value of the scaling factor
DSCALE maximum MC move of the scaling factor
OFFSET_MIN minimum value of the offset
OFFSET_MAX maximum value of the offset
DOFFSET maximum MC move of the offset
REGRES_ZERO stride for regression with zero offset
DSIGMA maximum MC move of the uncertainty parameter
SIGMA_MEAN0 starting value for the uncertainty in the mean estimate
SIGMA_MAX_STEPS Number of steps used to optimise SIGMA_MAX, before that the SIGMA_MAX value is used
TEMP the system temperature - this is only needed if code doesn't pass the temperature to plumed
MC_STEPS number of MC steps
MC_CHUNKSIZE MC chunksize
STATUS_FILE write a file with all the data useful for restart/continuation of Metainference
SELECTOR name of selector
NSELECT range of values for selector [0, N-1]
RESTART allows per-action setting of restart (YES/NO/AUTO)
QVALUE Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, .... You can use multiple instances of this keyword i.e. QVALUE1, QVALUE2, QVALUE3...
PARAMETERS Used parameter Keywords like PARAMETERS1, PARAMETERS2. These are used to calculate the form factor for the \(i\)th atom/bead. You can use multiple instances of this keyword i.e. PARAMETERS1, PARAMETERS2, PARAMETERS3...
PARAMETERSFILE Read the PARAMETERS from a file
EXPINT Add an experimental value for each q value. You can use multiple instances of this keyword i.e. EXPINT1, EXPINT2, EXPINT3...
SIGMARES Variance of Gaussian distribution describing the deviation in the scattering angle for each q value. You can use multiple instances of this keyword i.e. SIGMARES1, SIGMARES2, SIGMARES3...