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 namesRaises: 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 interactionParameters: residue ( ResidueHandle) – Residue from which atoms are extractedReturns: AtomHandleListRaises: 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 replaces - new_name (
str) – Its new name - new_type (
str) – Its new type
Returns: boolwhether replacement was successful or not- name (
-
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 matchedReturns: 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 matchedReturns: bool
-
HasName(name)¶ Checks, whether the given name is present in the internal names
Parameters: name ( str) – Name to be checkedReturns: bool
-
HasType(type)¶ Checks, whether the given type is present in the internal types
Parameters: type ( str) – Type to be checkedReturns: 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
-