SAXS
This is part of the isdb module

Calculates SAXS scattered intensity using either the Debye equation.

Intensities are calculated for a set of scattering length set using QVALUE keywords that are numbered starting from 0. Structure factors can be either assigned using a polynomial expansion to any order using the PARAMETERS keywords; automatically assigned to atoms using the ATOMISTIC flag reading a PDB file, a correction for the water density is automatically added, with water density that by default is 0.334 but that can be set otherwise using WATERDENS; automatically assigned to Martini pseudo atoms using the MARTINI flag. The calculated intensities can be scaled using the SCALEINT keywords. This is applied by rescaling the structure factors. Experimental reference intensities can be added using the EXPINT keywords. 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 for a martini model are calculated. structure factors are obtained from the pdb file indicated in the MOLINFO.
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.pdb saxs: SAXS ...
ATOMS
The atoms to be included in the calculation, e.g.
=1-355
SCALEINT
compulsory keyword ( default=1.0 ) SCALING value of the calculated data.
=3920000
MARTINI
( default=off ) calculate SAXS for a Martini model
QVALUE1
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.02
EXPINT1
Add an experimental value for each q value.
=1.0902
QVALUE2
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.05
EXPINT2
Add an experimental value for each q value.
=0.790632
QVALUE3
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.08
EXPINT3
Add an experimental value for each q value.
=0.453808
QVALUE4
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.11
EXPINT4
Add an experimental value for each q value.
=0.254737
QVALUE5
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.14
EXPINT5
Add an experimental value for each q value.
=0.154928
QVALUE6
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.17
EXPINT6
Add an experimental value for each q value.
=0.0921503
QVALUE7
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.2
EXPINT7
Add an experimental value for each q value.
=0.052633
QVALUE8
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.23
EXPINT8
Add an experimental value for each q value.
=0.0276557
QVALUE9
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.26
EXPINT9
Add an experimental value for each q value.
=0.0122775
QVALUE10
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.29
EXPINT10
Add an experimental value for each q value.
=0.00880634
QVALUE11
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.32
EXPINT11
Add an experimental value for each q value.
=0.0137301
QVALUE12
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.35
EXPINT12
Add an experimental value for each q value.
=0.0180036
QVALUE13
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.38
EXPINT13
Add an experimental value for each q value.
=0.0193374
QVALUE14
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.41
EXPINT14
Add an experimental value for each q value.
=0.0210131
QVALUE15
Selected scattering lengths in Angstrom are given as QVALUE1, QVALUE2, ...
=0.44
EXPINT15
Add an experimental value for each q value.
=0.0220506 ...
PRINT ARG=(saxs\.q-.*),(saxs\.exp-.*) FILE=colvar 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=0 ) Identifier of the GPU to be used
WATERDENS ( default=0.334 ) Density of the water to be used for the correction of atomistic structure factors.
SCALEINT ( default=1.0 ) SCALING value of the calculated data. Useful to simplify the comparison.
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
ATOMISTIC ( default=off ) calculate SAXS for an atomistic model
MARTINI

( default=off ) calculate SAXS for a Martini model

ARG the input for this action is the scalar output from one or more other actions. The particular scalars that you will use are referenced using the label of the action. If the label appears on its own then it is assumed that the Action calculates a single scalar value. The value of this scalar is thus used as the input to this new action. If * or *.* appears the scalars calculated by all the proceeding actions in the input file are taken. Some actions have multi-component outputs and each component of the output has a specific label. For example a DISTANCE action labelled dist may have three components x, y and z. To take just the x component you should use dist.x, if you wish to take all three components then use dist.*.More information on the referencing of Actions can be found in the section of the manual on the PLUMED Getting Started. Scalar values can also be referenced using POSIX regular expressions as detailed in the section on Regular Expressions. To use this feature you you must compile PLUMED with the appropriate flag. You can use multiple instances of this keyword i.e. ARG1, ARG2, ARG3...
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 Angstrom 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 structure factor for the \(i\)th atom/bead. You can use multiple instances of this keyword i.e. PARAMETERS1, PARAMETERS2, PARAMETERS3...
EXPINT Add an experimental value for each q value. You can use multiple instances of this keyword i.e. EXPINT1, EXPINT2, EXPINT3...