Force Field Assembly
The Yup.Models.Emmental.FFA
module contains a function to build an Emmental model object and a
function to modify the finished model.
The NewModel()
function takes between two to 20 arguments and it returns the Model object
corresponding to the
specified Emmental model.
| Argument |
Type |
Preset Value
|
Description |
| pmfile |
string |
|
the name of a partition map
file, containing the names of the PDB files that make up the model and
how the atoms are organized.
|
| swcfile |
string |
|
the name of a SCX-format
density map file.
|
| params |
string |
datasource( "Emmental" ) |
the pathname of the
parameter library, the default value is of the standard library for the
Emmental model and it is site-dependent.
|
| bubbleratio |
float |
0.0 |
if greater than 0: add an
NOE term to confine the molecule to a sphere centered at the density
center
and the outer boundary at bubbleratio
times the maximum extent of the density map.
|
| hcoords |
None or tuple of floats
|
None |
atomic coordinates to be
used in setting up the Gaussian Network model, if None: use the
coordinates present in the PDB files referenced by the Partition Map
file.
|
| inpower |
integer |
2 |
exponent for the function
representing the inner wall of the NOE function
|
| outpower |
integer |
2 |
exponent for the function representing the outer wall of the NOE
function
|
| outratio |
float |
1.3960259829 |
intial value of the ratio of
the outer to the inner radii of the holes, default value is the radius
of the smallest sphere that completely encloses a cube to the radius of
a sphere that has the same volume as the same cube.
|
| cutratio |
float |
1.5 |
ratio of the cutoff radius
to the outer radius of the holes, atom-hole pairs that are within the
cutoff distance are recruited for the SwissCheeseX term and the list is
periodically updated along with all the nonbond terms.
|
| mine |
float |
300kB
|
the magnitude of the deepest
hole. kB is the symbol KBOLTZMANN defined in the
Yup.Data.Constants module. Units of kcal/mol.
|
| option |
integer: 0, 1, 2 or 3 only
|
0 |
how the force constants for
the Hooke term are to be set, 0: use a single constant for all bonds,
1: use a different value for bonds along the backbone, 2: use different
constants depending on the length of the bond; 3: constants depend on
bond length and residue distance.
|
| cutoffs |
dictionary of dictionaries
|
values range from 4Å
for default pairs, 8Å for CA-CA pairs to 22.5Å for P-P
pairs.
|
pairs that are within the
cutoff distance (depending on the atom types) are added to the Hooke
term to form the Gaussian Network.
|
| hooke |
None or a dictionary
|
interaction types for all
the Hooke terms defined in the default parameter library.
|
identifies the interaction
types that index the force constants for the Hooke term, for all values
of option.
|
| bounds |
dictionary |
the three ranges are 4.0 to
8.0 to 16.0 and beyond.
|
dictionary of three distance
ranges for option = 2 or 3.
|
| hlabel |
string |
HOOKELABEL from the const
module
|
label for the Hooke term
|
| slabel |
string |
SWISSLABEL from the const
module
|
label for the SwissCheeseX
term
|
| nlabel |
string |
BUBBLELABEL from the const
module
|
label for the NOE term
|
| hquantum |
integer |
1000 |
how many additional slots to
allocate when memory runs out while the Hooke term is being constructed
|
| squantum |
integer |
1000 |
how many additional slots to
allocate when memory runs out while the SwissCheeseX term is being
constructed |
| nquantum |
integer |
1000 |
how many additional slots to
allocate when memory runs out while the NOE term is being constructed |
The
dictionaries are complicated beasts and are not adequately documented
here. For the moment, the source code is the best place to learn about
them. It is easy to specify a
single cutoff distance, say 5Å, set cutoffs = { '' : { '' : 5.0 } }. The
blank strings refers to any unidentified atom type, so this dictionary
says that the cutoff distance is 5Å for any and all atom pairs.
This
function returns a Model object, containing the atom hierarchy
(allowing atoms and contiguous blocks of atoms to be addressed),
coordinates and other information. The return object must be assigned
to a symbol so that it can be referenced for further processing. For
example, the fitting functions (following page) requires this object
among other things.
Note
that we could have used any stereochemically correct force field to
represent the molecule. This will have the advantage of fitting the
model into the density map without risking steric clashes. This might
be an option in the future. We welcome volunteers to implement the
AMBER or CHARMM force field into YUP.
The AddSoftCore() function adds a SoftSphereX
term to
an existing Emmental Model object. If the Model object already contains
a SoftSphereX term, it will be replaced.
| Argument |
Type |
Preset Value
|
Description |
| model |
Model |
|
The Emmental Model object
that is to be modified.
|
| redo |
boolean |
False |
Whether to re-establish the
Soft Core term
|
| cutoffratio |
float |
2.0 |
Set the cutoff ratio, the
margin beyond the contact distance.
|
The SoftSphereX term
assumes that all pairs of atoms take part in this
interaction, unless a pair is explicitly excluded. Hooke pairs in which
the equilbrium bond length is less than the cutoff distance of
the SoftSphereX term are
excluded from this interaction. The cut off ratio is increased from the
default value of 1.25 to 2.0 or whatever value is specified. In the
default case, when redo has
the value False, model must
not already contain a
SoftSphereX term. If redo is
True, model may contain a SoftSphereX
term which will be re-established; otherwise if model does not have a SoftSphereX term, then nothing
further is done.
The
Gaussian Network should be sufficient to prevent inter- and
intra-molecular penetration as long as it is stiff or dense enough.
However, in
practice we have to set a short cutoff distance (to reduce the total
number of Hooke terms) and
penetration can
occur. Adding the SoftSphereX
term prevents some penetration but we
have to make some compromises. Fitted models may have to be finished
with a short minimization using
a stereochemically correct force field, e.g., AMBER.
EXAMPLES
In the
following, all the commands are typed into a Python interpreter.
from Yup.Models.Emmental.FFA import NewModel,
AddSoftCore
M1 = NewModel( 'T0001', 'T0001.scx )
M2 = NewModel( 'T0002', 'T0002.scx', outratio = 5.0 )
AddSoftCore( M2 )
|
In the
above
example, an Emmental model is created from the Partition Map file
"T0001.py" and a SCX-format density map file "T0001.scx". A second
model is created from the Partition Map file "T0002.py" and a
SCX-format density map file "T0002.scx" with all the
other arguments left at their default values except for outratio which is set at 5.0. Note
that the returned results are assigned to variables M1 and M2. This serves the immediate
purpose of referencing the second model in the last line, where we add
a
soft
core to the atoms. However, we will also need to reference the models
in
order to refine them in the next section. From the examples in the
previous page, M1 would be
coarse-grained while M2 is an
all-atom model.
| The
NewModel() function makes use of a private class _Emmental and then
applying its methods AddAtoms(), AddSwissCheese() and AddBubble() to
build the model. This module depends on many other modules:
Yup.Energy.SoftSphereX, Yup.Models.Null.FFA, Yup.Models.Null.HookeFFA
and Yup.Models.Null.PDBPartMap are the most important ones. |
Calculate
Analyze
Utilities
|