Interactions¶
The Interaction object is intended to build a basic container that can
be used
in various scenarios. At the initialization a FuncType has to be defined.
Whenever names, types or parameters are set, the number of parameters
gets checked according to the FuncType. A name or type can also consist of
a wildcard expressed as X.
The FuncType enum¶
Every Interaction is linked to one particular FuncType describing the types of interactions supported by OpenStructure. There are 15 possible values with Invalid defining an unknown interaction:
HarmonicBond, HarmonicAngle, UreyBradleyAngle, PeriodicDihedral, PeriodicImproper, HarmonicImproper, CMap, LJ, LJPair, GBSA, DistanceConstraint, Exclusion, HarmonicPositionRestraint, HarmonicDistanceRestraint, Invalid
The implementation guarantees that the parameter related to atom types, names, parameters are checked regarding their dimension (e.g. 3 atoms and 2 parameters for a harmonic angle)
Interaction Parametrization¶
HarmonicBond, Interacting Particles: 2, Num Parameters: 2
floatbond length in nmfloatforce constant in kJ/mol/nm^2
HarmonicAngle, Interacting Particles: 3, Num Parameters: 2
floatangle in radiansfloatforce constant in kJ/mol/radian^2
UreyBradleyAngle, Interacting Particles: 3, Num Parameters: 4
floatangle in radiansfloatangle force constant in kJ/mol/radian^2floatbond length in nmfloatbond force constant in kJ/mol/nm^2
PeriodicDihedral, Interacting Particles: 4, Num Parameters: 3
intmultiplicityfloatphase in radiansfloatforce constant in kJ/mol/radian^2
PeriodicImproper, Interacting Particles: 4, Num Parameters: 3
intmultiplicityfloatphase in radiansfloatforce constant in kJ/mol/radian^2
HarmonicImproper, Interacting Particles: 4, Num Parameters: 2
floatangle in radiansfloatforce constant in kJ/mol/radian^2
CMap, Interacting Particles: 5, Num Parameters: n*n+1
listoffloatof size n*n+1, first value describes the dimension n of the cmap, the other n*n values describe the correction map in kJ/mol in the ordering (phi1,psi1),(phi1,psi2)… and torsion angles in [-pi,pi] (will be converted to the format OpenMM prefers)
LJ, Interacting Particles: 1, Num Parameters: 2
floatsigma in nmfloatepsilon in kJ/mol
LJPair, Interacting Particles: 2, Num Parameters: 2
floatsigma in nmfloatepsilon in kJ/mol
GBSA, Interacting Particles: 1, Num Parameters: 2
floatGBSA radius in nmfloatOBC scaling factor
DistanceConstraint, Interacting Particles: 2, Num Parameters: 1
floatconstraint distance
Exclusion, Interacting Particles: 2, Num Parameters: 0
HarmonicPositionRestraint, Interacting Particles: 1, Num Parameters: 7
floatref pos xfloatref pos yfloatref pos zfloatforce constantfloatx_scalefloaty_scalefloatz_scale
HarmonicDistanceRestraint, Interacting Particles: 2, Num Parameters: 2
floatrestraint lengthfloatforce constant
The Interaction Class¶
- class Interaction(func_type)¶
- Parameters:
func_type –
FuncTypedefining a particular interaction
- SetTypes(types)¶
Sets the forcefield specific atom types.
- Parameters:
types (
list) – Strings describing the force field specific atom types.- Raises:
RuntimeErrorwhen size of input is not consistent with the interactions functype
- SetNames(names)¶
Sets atom names
- Parameters:
names (
list) – Strings describing the atom names- Raises:
RuntimeErrorwhen size of input is not consistent with the interactions functype
- SetParam(param)¶
Sets interaction specific parameters.
- Parameters:
param (
list) – Float values .- Raises:
RuntimeErrorwhen size of input is not consistent with the interactions functype
- GetTypes()¶
Get previously set types
- Returns:
list
- GetNames()¶
Get previously set names
- Returns:
list
- GetParam()¶
Get previously set parameters
- Returns:
list
- GetAtoms(residue)¶
Returns an
AtomHandleListcontaining the atoms in residue matching the atom names of the interaction- Parameters:
residue (
ResidueHandle) – Residue from which atoms are extracted- Returns:
AtomHandleList- Raises:
RuntimeErrorwhen an atom cannot be found in residue
- GetFuncType()¶
Returns the functype enum of the interaction
- Returns:
FuncType
- ReplaceAtom(name, new_name, new_type)¶
Searches for given atom name. If found, this particular atom name gets changed to new_name. If the atom types are set as well, the associated atom type gets also reset to new_type.
- Parameters:
name (
str) – Name of atom to be replacesnew_name (
str) – Its new namenew_type (
str) – Its new type
- Returns:
boolwhether replacement was successful or not
- MatchTypes(atom_types)¶
Checks, whether the given types match the internal types. The match can be “as is” or in reversed order
- Parameters:
atom_types (
list) – Atom types to be matched- Returns:
bool
- MatchNames(atom_names)¶
Checks, whether the given names match the internal names. The match can be “as is” or in reversed order
- Parameters:
atom_names (
list) – Atom names to be matched- Returns:
bool
- HasName(name)¶
Checks, whether the given name is present in the internal names
- Parameters:
name (
str) – Name to be checked- Returns:
bool
- HasType(type)¶
Checks, whether the given type is present in the internal types
- Parameters:
type (
str) – Type to be checked- Returns:
bool
- IsParametrized()¶
Checks, whether the parameters have been set
- Returns:
bool
- HasTypeWildcard()¶
Checks, whether one of the types is a wildcard (‘X’)
- Returns:
bool
- HasNameWildcard()¶
Checks, whether one of the names is a wildcard (‘X’)
- Returns:
bool