SAXS
This is part of the isdb module

Calculates SAXS scattered intensity using either the Debye equation or the harmonic sphere approximation.

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 (). Alternatively we an implementation based on Bessel functions, BESSEL flag. This is very fast for small q values because a short expansion is enough. An automatic choice is made for which q Bessel are used and for which the calculation is done by Debye. If one wants to force all q values to be calculated using Bessel function this can be done using FORCE_BESSEL. Irrespective of the method employed, METAINFERENCE can be activated using DOSCORE and the other relevant keywords.

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
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
BESSEL ( default=off ) Perform the calculation using the adaptive spherical harmonic approximation
FORCE_BESSEL ( default=off ) Perform the calculation using the adaptive spherical harmonic approximation, without adaptive algorithm, useful for debug only
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
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...
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.
MOLINFO STRUCTURE=template.pdb

SAXS ...
LABEL=saxs
ATOMS=1-355
SCALEINT=3920000
MARTINI
QVALUE1=0.02 EXPINT1=1.0902
QVALUE2=0.05 EXPINT2=0.790632
QVALUE3=0.08 EXPINT3=0.453808
QVALUE4=0.11 EXPINT4=0.254737
QVALUE5=0.14 EXPINT5=0.154928
QVALUE6=0.17 EXPINT6=0.0921503
QVALUE7=0.2 EXPINT7=0.052633
QVALUE8=0.23 EXPINT8=0.0276557
QVALUE9=0.26 EXPINT9=0.0122775
QVALUE10=0.29 EXPINT10=0.00880634
QVALUE11=0.32 EXPINT11=0.0137301
QVALUE12=0.35 EXPINT12=0.0180036
QVALUE13=0.38 EXPINT13=0.0193374
QVALUE14=0.41 EXPINT14=0.0210131
QVALUE15=0.44 EXPINT15=0.0220506
... SAXS

PRINT ARG=(saxs\.q-.*),(saxs\.exp-.*) FILE=colvar STRIDE=1