Using LEaP With AMBER

This section focuses on concepts necessary to employ LEAP to produce input files for the AMBER molecular mechanics programs. First we discuss loading force field parameter files (PARMSETs) and residue libraries, and then the general strategy for using LEAP to create the coordinates and parameters necessary to run AMBER. The user should refer to the "Examples" section and the tutorials in under the "Web" part of the AMBER source tree for detailed analyses of utilizing LEAP for specific tasks.

There are two AMBER force fields, Weiner et al. 1984, 1986 and Cornell et al. 1995. The associated files happen to be named "91" and "94" respectively. Each force field consists of residue definitions in one or more files, and an accompanying parameter file, or PARMSET. The residue definitions and PARMSET must be compatible. The newer Cornell et al. force field is loaded by the default leaprc file. A $AMBERHOME/dat/leap/cmd/leaprc.ff91 file is provided for loading the Weiner et al. force field; to use it, one would copy this file to leaprc in the current directory. You never want to have both force fields (or parts of both) loaded at once, because they use incompatible and overlapping atom type definitions.

PARMSETs

The mechanism for loading PARMSETs is the loadAmberParams command. The Weiner et al. PARMSET file for LEAP is parm91X.dat; the Cornell et al. one is parm94.dat. The default leaprc loads Cornell et al. as UNIT "parm94," while leaprc.ff91 loads Weiner et al. as "parm91." The list command will show the PARMSET(s) that have been loaded along with all other objects currently existing in LEAP.

In addition to one of the standard PARMSETs, one may need to load extra parameters, either for residues not contained in these basic force fields, or in order to override standard parameters. This is done by making a frcmod file in a normal text editor and loading that as well (using loadAmberParams). The most recently-loaded parameters take precedence when there is a duplicate definition of e.g. an atom type, so a frcmod file can be used to alter standard parameters without the risk of modifying the standard file and losing track of what was changed.

NOTE that the nonbonded parameters in PARMSETs must be of the form r* and . LEAP will not read nonbonded parameters of the form "A & C". Also, for every atom type "mass" definition in the parameter set, there must also exist a nonbonded parameter for that atom type. LEAP ignores polarizability values from AMBER PARM parameter sets.

When LEAP needs force field parameters for commands like saveAmberParm or saveAmberParmPert, it searches through the list of PARMSETs that are currently loaded from the most recently loaded to the oldest. As soon as LEAP finds a parameter that matches the configuration of atom types for which it is looking, it stops searching the PARMSET list.

Parameters for torsional terms are found by searching each loaded PARMSET in turn. Specific torsional parameters take precedence over general ones (i.e. parameters having wild-card atoms). Only an exact match will prevent searching all the PARMSETs.

UNIT Libraries

A set of residue libraries is provided for each force field; the file names include "91" for Weiner et al. and "94" for Cornell et al.. The latter ones are loaded by the default leaprc file. One can see a list of all the loaded residues using the list command. In this section, we list the UNITs found in the libraries and their names and aliases. When a UNIT is distributed with LEAP, all of the force field parameters needed to define the UNIT within AMBER are also found in the PARMSETs.

Amino Acid Residues

The following amino acid UNITs and their aliases are defined in the LEAP libraries.

+-------------------------------------------------+
     |	   Group or residue	   Residue Name, Alias |
     +-------------------------------------------------+
     |Acetyl beginning group	   ACE		       |
     |Amine ending group	   NHE		       |
     |N-methylamine ending group   NME		       |
     |Alanine			   ALA		       |
     |Arginine			   ARG		       |
     |Asparagine		   ASN		       |
     |Aspartic acid		   ASP		       |
     |Cysteine			   CYS		       |
     |Cystine, S--S crosslink	   CYX		       |
     |Glutamic acid		   GLU		       |
     |Glutamine			   GLN		       |
     |Glycine			   GLY		       |
     |Histidine, delta H	   HID		       |
     |Histidine, epsilon H	   HIE		       |
     |Histidine, protonated	   HIP		       |
     |Isoleucine		   ILE		       |
     |Leucine			   LEU		       |
     |Lysine			   LYS		       |
     |Methionine		   MET		       |
     |Phenylalanine		   PHE		       |
     |Proline			   PRO		       |
     |Serine			   SER		       |
     |Threonine			   THR		       |
     |Tryptophan		   TRP		       |
     |Tyrosine			   TYR		       |
     |Valine			   VAL		       |
     +-------------------------------------------------+

The UNIT/RESIDUE names and aliases listed above correspond to the AMBER all atom force field. (The Weiner et al. united atom force field has not been adapted for LEAP.) For each of the amino acids found in the LEAP libraries, there has been created an n-terminal and a c-terminal analog. The n-terminal amino acid UNIT/RESIDUE names and aliases are prefaced by the letter N (e.g. NALA) and the c-terminal amino acids by the letter C (e.g. CALA}. If the user models a peptide or protein within LEAP, they may choose one of three ways to represent the terminal amino acids. The user may use 1) standard amino acids, 2) protecting groups (ACE/NME), or 3) the charged c- and n-terminal amino acid UNITs/RESIDUEs. If the standard amino acids are used for the terminal residues, then these residues will have incomplete valences. These three options are illustrated below:

{ ALA VAL SER PHE }
{ ACE ALA VAL SER PHE NME }
{ NALA VAL SER CPHE }

The default for loading from PDB files is to use n- and c-terminal residues; this is established by the addPdbResMap command in the default leaprc files. To force incomplete valences with the standard residues, one would have to define a sequence (" x = { ALA VAL SER PHE }") and use loadPdbUsingSeq, or use clearPdbResMap to completely remove the mapping feature.

It should be noted that by convention amino acid sequences are written starting with the n-terminus. This same convention is used in LEAP, dictated by the atom order in the residue libraries.

Histidine can exist either as the protonated species or as a neutral species with a hydrogen at the delta or epsilon position. For this reason, the histidine UNIT/RESIDUE name is either HIP, HID, or HIE (but not HIS). The default "leaprc" file assigns the name HIS to HID. Thus, if a PDB file is read that contains the residue HIS, the residue will be assigned to the HID UNIT object. This feature can be changed within one's own "leaprc" file.

The AMBER force fields also differentiate between the residue cysteine (CYS) and the similar residue which participates in disulfide bridges, cystine (CYX). The user will have to explicitly define, using the crossLink command, the disulfide bond for a pair of cystines, as this information is not read from the PDB file. In addition, the user will need to load the PDB file using the loadPdbUsingSeq command, substituting CYX for CYS in the sequence wherever a disulfide bond will be created.

Nucleic Acid Residues

The following are defined for the 1994 force field.

+---------------------------------------+
	  |Group or residue   Residue Name, Alias |
	  +---------------------------------------+
	  |Adenine	      DA,RA		  |
	  |Thymine	      DT		  |
	  |Uracil	      RU		  |
	  |Cytosine	      DC,RC		  |
	  |Guanine	      DG,RG		  |
	  +---------------------------------------+

The "D" or "R" prefix can be used to distinguish between deoxyribose and ribose units; with the default leaprc file, ambiguous residues are assumed to be deoxy. Residue names like "DA" can be followed by a "5" or "3" ("DA5", "DA3") for residues at the ends of chains; this is also the default established by addPdbResMap, even if the "5" or "3" are not added in the PDB file. The "5" and "3" residues are "capped" by a hydrogen; the plain and "3" residues include a "leading" phosphate group. Neutral residues capped by hydrogens are end in "N," such as "DAN."

Miscellaneous Residues

Miscellaneous Residue      unit/residue name
 _
TIP3P water molecule	      WAT, HOH, IP3
Periodic box of TIP3P water   WATBOX216
Cesium cation		      Cs+
Potassium cation	      K+
Rubidium cation		      Rb+
Lithium cation		      Li+
Sodium cation		      Na+ or IP
Chlorine		      Cl- or IM
Large cation		      IB
"IB" represents a solvated monovalent cation (say, sodium) for use in vacuum simulations. The cation UNITs are found in the files "ions91.lib" and "ions94.lib", while the water UNITs are in the file "water.lib". The default leaprc file assigns the variables HOH and IP3 to the WAT UNIT found in the OFF library file. Thus, if a PDB file is read and that file contains either the residue name HOH or IP3, the WAT UNIT will be substituted. (Note that PDB residue names are restricted to 3 characters.)

A periodic box of 216 waters (WATBOX216) is provided in the file "water.lib". The box measures 18.774 angstroms on a side. This box of waters has been equilibrated by a Monte Carlo simulation. It is the UNIT that should be used to solvate systems with TIP3P water molecules within LEaP. It has been provided by W. L. Jorgensen.

Building a Molecule For Molecular Mechanics

In order to prepare a molecule within LEAP for AMBER, three basic tasks need to be completed.

Loading Objects

Before start-up, LEAP contains no objects. In the default configuration, standard PARMSET and UNIT residue libraries for the Cornell et al. force field are loaded by the default leaprc file in $AMBERHOME/dat/leap/cmd/. This file can be consulted or copied as a template for constructing a useful work environment.

The saveOff command is used to save constructed UNITs to libraries, and frcmod-style PARMSETs are constructed using a normal text editor. Both may be loaded to prepare for a session using loadOff and \loadAmberParams respectively.

Objects are loaded into LEAP either by the user typing in load commands interactively, or by placing appropriate load commands within a "leaprc" start-up file in the working directory.

Constructing the Molecule

There are several different methods of constructing molecules or UNITs within LEAP. If the user has an AMBER PREP file, the structure may be read in using the loadAmberPrep command. PDB files are read into LEAP using the loadPdb or loadPdbUsingSeq commands. It is also possible to construct a molecule structure manually using the zMatrix command or (most commonly) the xleap edit command. The user may use any combination of these methods to make molecules. Once a UNIT is created, it can be stored in an OFF library for subsequent use. Thus, if a user is building a polypeptide which includes one novel amino acid, they would load the OFF library of standard amino acids and create the novel amino acid residue through one of the abovementioned methods. This nonstandard amino acid residue UNIT could then be stored and reloaded at the beginning of future sessions.

Z-matrix Input

Let us examine several methods of constructing a water molecule within LEAP. One such method would be to build a water UNIT, which we will call WAT, by utilizing a Z-matrix input for structure. Note that this method is probably only convenient if one already has such a matrix; normally it is easier to draw the new residue usinthe Unit Editor.

In the following example, presented as if it were a special leaprc, the user constructs WAT by creating ATOMs, then a RESIDUE, and finally the WAT UNIT. A structure is applied to the UNIT by using internal coordinates given by a Z-matrix. In this illustration, the user does not define any head or tail atoms for the RESIDUE or any connect atoms for the UNIT. This is because WAT is not a residue in the chemical sense; the WAT UNIT will never be used as a substituent or monomer. Once the WAT UNIT is created, a topology file and a coordinate file are generated for molecular mechanics calculations. In this and subsequent illustrations, all input command lines are prefaced by the characters "". The program output found in these listings is not prefaced by the characters.

> #
> # Constructing the water molecule will be done through
> # a build-up procedure. First, ATOMs are created. The
> # names, types, and charges of the ATOMs are also set.
> # We then define the elements that are associated with
> # each ATOM variable:
> #
> o = createAtom O OW -0.834
> h1 = createAtom H1 HW 0.417
> h2 = createAtom H2 HW 0.417
> set o element O
> set h1 element H
> set h2 element H
> #
> # A new residue ("WAT") is created and the
> # variable "waterResidue" represents
> # this object. Each of the ATOMs are then
> # added to the RESIDUE and bonds are next placed
> # between the ATOMs. The bond orders are, by
> # default, single:
> #
> waterResidue = createResidue WAT
> add waterResidue o
> add waterResidue h1
> add waterResidue h2
> bond h1 o
> bond h2 o
> #
> # A new UNIT ("WAT") is created and "waterResidue" is placed
> # within the UNIT. At this point, the RESIDUE topology
> # is known. A Z-matrix is read in so that the structure
> # of the RESIDUE can be determined:
> #
> WAT = createUnit WAT
> add WAT waterResidue
> zMatrix WAT {
> { H1 O 0.9572 }
> { H2 O H1 0.9572 104.52 }
> }
> #
> # The "WAT" UNIT is saved in an OFF library:
> #
> saveOff WAT examples.lib
Saving WAT.
Building topology.
Building atom parameters.

PDB File Input

Another method of constructing a molecule is to use a PDB file. This time, rather than first building the molecule atom-by-atom and adding bonds to create a template, we just load the PDB file and begin work on that.

> #
> # Load the file; since it's an unknown residue,
> # there are lots of messages..
> #
> WAT = loadpdb Wat.pdb
Loading PDB file: ./Wat.pdb
Unknown residue: WAT number: 0 type: Terminal/last
-no luck
Creating new UNIT for residue: WAT sequence: 1
Created a new atom named: O within residue: .R
Created a new atom named: H1 within residue: .R
Created a new atom named: H2 within residue: .R
total atoms in file: 3
The file contained 3 atoms not in residue templates
> #
> # Add bonds
> #
> bondbydistance WAT
> #
> # Make it solvent
> #
> set WAT.1 restype solvent
> #
> # Set atom attributes (easier to do in the
> # Atom Properties Editor)
> #
> set WAT.1.O type OW
> set WAT.1.H1 type HW
> set WAT.1.H2 type HW
> set WAT.1.O charge -0.834
> set WAT.1.H1 charge 0.417
> set WAT.1.H1 charge 0.417
> #
> # The "WAT" UNIT is saved in an OFF library:
> #
> saveOff WAT examples.lib
Saving WAT.
Building topology.
Building atom parameters.

The user may want to model a molecule for which a PDB file exists and a LEAP UNIT has already been created and stored in an OFF library. In this case, it is only necessary to load a PARMSET, the UNIT, and PDB file into LEAP. It is important to replace the coordinates of the UNIT with those of the PDB file in order to ensure that the molecular structure assumes the conformation of interest to the user. To understand this last point, consider the construction of a protein. When the UNITs in LEAP are joined together to form the protein sequence, the resulting structure is linear. Replacing the Cartesian coordinates of the UNITs will allow the proper tertiary protein structure to be modeled. The following example illustrates this procedure:

> #
> # Load a LEaP OFF library that contains the
> # water UNIT:
> #
> loadOff examples.lib
> #
> # Load a PDB file to obtain correct Cartesian
> # coordinates:
> #
> wat = loadPdb Wat.pdb
Loading PDB file: ./Wat.pdb
total atoms in file: 3

AMBER PREP Input

If an AMBER PREP file exists for the water molecule it can be used to create the water UNIT within LEAP. When the PREP file is loaded into LEAP, a new UNIT is constructed that contains a single RESIDUE and a variable is created with the same name as the name of the residue within the PREP file.

> #
> # Load AMBER PREP file for water:
> #
> loadAmberPrep Wat.in
Loaded UNIT: WAT
> #
> # If necessary, load a PDB file to obtain correct
> # Cartesian coordinates:
> #
> wat = loadPdb Wat.pdb
Loading PDB file: ./Wat.pdb
total atoms in file: 3

UNIT Editor Input

We have illustrated several methods of constructing a water molecule within LEAP. By far, the most convenient method is the one which we will now discuss. If the user runs the xleap program, the molecule can be created quite easily graphically within the Unit Editor.

After the xleap program is started and a PARMSET is loaded, the user can enter the Unit Editor with the edit command. If the command argument (WAT) is not an existing UNIT, a new RESIDUE and UNIT will be created and the program will display a Unit Editor for WAT.

The first objective is to draw and build the molecule. In the Control Window is a button named draw. The user should select this button with the left mouse button. The Viewing Window will now be set to the Draw mode. The user should then select the O (oxygen) element button in the Control Window. This will set the drawing element type to oxygen. The Draw mode mouse button (left button) is depressed and clicked anywhere on the screen. The user can then release the mouse button. Now the user can select the Unit pulldown command: Add H & Build. Two hydrogen ATOMs will be added to the oxygen and the molecular structure will be generated using the geometry builder rules. The user may want to rotate the molecule, using the middle mouse button, to confirm that the geometry is correct.

Next, the user needs to edit the ATOMs. The entire molecule should be selected by pressing the Manipulation Select option and then pressing the Select mode mouse button (left button) anywhere in the Viewing Window background and dragging the mouse until the select box encompasses the molecule. The mouse button can then be released. The user should then choose the Edit selected items command from the Edit pulldown. An Atom Properties Editor will appear.

The Unit Editor has already assigned names to the ATOMs and if desired, the user can change the names. In order for correct AMBER force field parameters to be assigned, the user must define the oxygen and hydrogen ATOM types as "OW" and "HW", respectively. The user should also assign electrostatic point charges to each ATOM. The Atom Properties Editor can then be closed by choosing the "Save and quit" command in the Table pulldown. The UNIT has been created and the user can return to the xleap Universe Editor. Note that this WAT residue does not correspond to the TIP3P WAT residue that is loaded from water.lib since it lacks an H-H bond (used for keeping the molecule rigid with SHAKE).

> #
> # Load the main parameter set:
> #
> parm94 = loadAmberParams parm94.dat
Loading parameters: parm94.dat
> #
> # Graphically create a water molecule within
> # the Unit Editor:
> #
> edit WAT
> #
> # If necessary, load a PDB file to obtain correct
> # Cartesian coordinates:
> #
> wat = loadPdb Wat.pdb
Loading PDB file: ./Wat.pdb
total atoms in file: 3

Generating Molecular Mechanics Input Files

Once the UNIT is constructed, it should be examined using the check command. The UNIT may also be augmented in many ways, including adding counterions, restraints, or solvents.

Finally, the user needs to obtain topology and coordinate files. These files are used as input for AMBER. These two files are created by the saveAmberParm command. If the user constructed a UNIT to be used in a Free Energy Perturbation calculation, then the saveAmberParmPert command should be used instead.

 


[Contents] [Previous] [Next]
Updated on January 5, 2000. Comments to case@scripps.edu