Technical Documentation
A Simple Model for Density Map Fitting: Force Field Assembly


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.

NewModel

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.

AddSoftCore

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

Manual
Introduction
Simplified RNA
Simplified DNA
Emmental
Virus Packing
Yup.scx Yup.vlat

Home
Information
News
User
Technical
Programmer
iYup
Download
Showcase
ETC