| eefxPot |
index |
An implicit solvent energy for solution and membrane
environments.
Author: Ye Tian
References:
Y. Tian, C.D. Schwieters, S.J. Opella, and F.M. Marassi,
``A Practical Implicit Solvent Potential for NMR Structure
Calculation ,'' J. Magn. Res. 243, 54-64 (2014) PMID: 24747742.
Ye Tian, C.D. Schwieters, S.J. Opella and F.M. Marassi, ``A
Practical Implicit Membrane Potential for NMR Structure
Calculations of Membrane Proteins,'' Biophys J. 109, 574-585
(2015) PMID: 26244739.
Ye Tian, C.D. Schwieters, S.J. Opella, and F.M. Marassi,
``High quality NMR structures: a new force field with
implicit water and membrane solvation for Xplor-NIH,''
J. Biomol. NMR 67, 35-49 (2017) PMID: 28035651.
Based on:
Lazaridis & Karplus Proteins 35, 133 (1999).
Lazaridis Proteins 52, 176 (2003).
Constructor:
EEFxPot(instanceName,
groupAssignment,
slvParams,
groupIndices,
vdwParams,
resExclusions,
nbfixParams,
defaultSelection)
instanceName is a user-specified identifier, groupAssignment is an
array which specifies which group index each atom belongs to,
slvParams is a dictionary containing EEFx parameters for each atom
type, vdwParams is a map of atom chemical types to a list of a tuple
of (eps, sigma, eps14, sigma14), where epsilon is a vdw well depth
(unused in this term) and sigma is the equilibrium interatomic
distance. The 14 versions are special values to use for atoms which
are separated by three covalent bonds. resExclusions is a dictionary
which contains pairs of atom names whose interactions are not to be
computed. Normally, the interatomic distance at which the energy
becomes nonzero is computed using the types of the two atoms
involved, but exceptions to this rule can be specified by
nbfixParams which is a dictionary with keys consisting of chemical
types separated by the '*' character. The values in the dictionary
is the tuple of VDW parameters (A,B, A14, B14). From these values
sigma and sigma14 are computed. defaultSelection is an optional
argument specifying an atomSel.AtomSel. The effective selection for
each selection specified in a selectionPair is the intersection of that
which is explicitly specified and defaultSelection.
this term should
compute interactions for.
Methods: FIX: to be completed
typedef Pair<String,String> StringPair;
const int numAtoms; // number of atoms when term created
float_type elecEnergy;
float_type solvEnergy;
float_type vdwEnergy;
EEFx_ElecPot elecPot;
EEFx_SolvPot solvPot;
EEFx_VDWPot vdwPot;
bool staleGradient;
float_type calcEnergy();
float_type calcEnergyAndDerivs(DerivList*);
void setTemperature(const float_type& temperature);
testGroupCutoffDist() - helper function to test that cutoffDist is larger
than the maximum current distance between group
centroid and its furthest atom.
String showParam() const;
Simulation* simulation() const { return sim; };
MODACCESSOR(profileN,ProfileN,int);
MODACCESSOR(a,A,float_type);
MODACCESSOR(thickness,Thickness,float_type);
MODACCESSOR(e14Factor,E14Factor,float_type);
Accessors
The following parameters can be set [defaults in square brackets]
scale - scale factor for energy.
cutoffDist - distance at which the energy is switched to zero.
The cutoff is smooth over 2 Angstroms, such that at
cutoffDist-2 the energy takes its full value. [9]
moveTol - size of atomic displacement above which
recalculation of the nonbond list is
recalculated.
collectAtomEnergies - if set to True, atom per-atom energies will be
computed. Is False by default because of extra
computational cost.
verbose - a boolean describing whether or not to print
detailed information on the neighbor lists [False].
the above quantities may be retrieved using the member function form
quantity(), while they are set using the form setQuantity(value).
bool E14FullScale;
void setE14FullScale(bool v);
MODACCESSOR(poreR,PoreR,float_type);
MODACCESSOR(bicelleR,bicelleR,float_type);
float_type rms(){return -1;};
violations() - returns vdwPot().violations()
int numRestraints() const {return -1;};
void setIMMx(bool v);
bool IMMx() const { return IMMx_; }
void useCDIE(bool v);
bool IMMx_pore_,IMMx_bicelle_,IMMx_micelle_;
void setIMMx_pore(bool v);
void setIMMx_bicelle(bool v);
void setIMMx_micelle(bool v);
bool IMMx_pore() const { return IMMx_pore_; }
bool IMMx_bicelle() const { return IMMx_bicelle_; }
bool IMMx_micelle() const { return IMMx_micelle_; }
void useGROUp(bool inpV);
void setMicelleX(const float_type& x){sqmicX=x*x;};
void setMicelleY(const float_type& y){sqmicY=y*y;};
void setMicelleZ(const float_type& z){sqmicZ=z*z;};
//Gouy-Chapmen energy;
float_type gcEnergy;
float_type voltEnergy;
void setGCvalence(const float_type& valence);
void setGCconc(const float_type& concentration);
void setGCfraction(const float_type& fraction);
void setGCoffset(const float_type& offset);
void setGCvoltage(const float_type& voltage);
void setIMMx_GC(bool v);
bool IMMx_GC() const { return IMMx_GC_; }
void setIMMx_volt(bool v);
bool IMMx_volt() const { return IMMx_volt_; }
void printTotalE();
atomInfo(atomIndex) - return string giving info abour atom specified
by index.
atomEnergies - return a per-atom array with each element a
structure containing the following members:
Evdw, Eelec, Eslv, Egc, Evolt
public:
typedef Pair<AtomSel,AtomSel> SelectionPair;
CDSList<SelectionPair> selPairs;
CDSList<float_type> selPairWeights;
CDSList<float_type> selPairEnergies;
CDSList<CDSVector<bool> > selPairIncludeA;
CDSList<CDSVector<bool> > selPairIncludeB;
const CDSList<SelectionPair>& selectionPairs() const { return selPairs; }
int numSelectionPairs() const { return selPairs.size(); }
void addSelectionPair(const AtomSel&,
const AtomSel&);
void setSelectionPairWeight(const int index,
const float_type& val);
float_type selectionPairWeight(const int index) const;
float_type selectionPairEnergy(const int index);
void deleteSelectionPair(const int& index);
void resetSelectionPairs();
struct EEFxAtomEnergies {
float_type Evdw;
float_type Eelec;
float_type Eslv;
float_type Egc;
float_type Evolt;
void clear() {
Evdw = Eelec = Eslv = Egc = Evolt = 0.;
}
};
class EEFxPot;
class EEFx_ElecPot: public Pot {
EEFxPot& eefxPot;
EEFx_ElecPot& operator=(const EEFx_ElecPot&);
public:
EEFx_ElecPot(EEFxPot& pot);
float_type calcEnergy();
float_type calcEnergyAndDerivs(DerivList*);
float_type rms() { return -1; }
float_type violations() { return -1; }
int numRestraints() const { return -1; }
};
class EEFx_SolvPot: public Pot {
EEFxPot& eefxPot;
EEFx_SolvPot& operator=(const EEFx_SolvPot&);
public:
EEFx_SolvPot(EEFxPot& pot);
float_type calcEnergy();
float_type calcEnergyAndDerivs(DerivList*);
float_type rms() { return -1; }
float_type violations() { return -1; }
int numRestraints() const { return -1; }
};
class EEFx_VDWPot: public Pot {
EEFxPot& eefxPot;
EEFx_VDWPot& operator=(const EEFx_VDWPot&);
public:
EEFx_VDWPot(EEFxPot& pot);
float_type calcEnergy();
float_type calcEnergyAndDerivs(DerivList*);
float_type rms() { return -1; }
violations() - number of atomic clashes within threshold
bumps(idx=-1)- returns a list of VDWBump records containing the
identity of clashing atoms, with members:
atomi, atomj, - clashing atom.Atoms
dist - the distance between them
dist0 - 1/2 ( sigma_i + sigma_j )
The idx argument specifies which selection pair to report on
(an index into the pot.selPairs member). A value of -1
specifies reporting on all selection pairs.
threshold() - threshold for clash determination
setThreshold(val)
int numRestraints() const { return -1; }
};
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
| Classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | ||
| ||