Since fmd is derived from namd, Version 1.4, the following holds:
The FMD code is being developed under the CCM-4 CHSSI effort of the DOD High Performance Computing Program. This effort supports the Computational Chemistry and Materials Science (CCM) computational technology area. A partial list of Participants in the effort include: Dr. Ruth Pachter, Dr. James A. Lupo, Dr. Alan M. Mckenney, Dr. Soumya Patnaik and Dr. Zhiqiang Wang (AFRL/MLPJ); Dr. Mark Gordon (Iowa State University); Dr. Lennart Johnsson (University of Houston); Dr. Sarm Krimm (University of Michigan); Dr. Betsy Rice and William Mattson (ARL); and Dr. Greg Voth (University of Utah).
FMD is derived, in part, from the source code of the NAMD program, and is redistributed under the modification and redistribution terms of the NAMD license agreement. The NAMD license agreement states:
Copyright (C) 1995-96 The Board of Trustees of the University of Illinois. All rights reserved.
NOTICE: The program NAMD is *not* in the public domain. However, it is freely available without fee for education, research, and non-profit purposes. By obtaining copies of this and other files that comprise the NAMD program, you, the Licensee, agree to abide by the following conditions and understandings with respect to the copyrighted software:
M. Nelson, W. Humphrey, A. Gursoy, A. Dalke, L. Kale, R. Skeel and K. Schulten, Intl. J. Supercomput. Applics. High Performance Computing, Vol 10, #4, pp.251-268, 1996.
The fast fourier transform routines, comprising the source code contained in the FFT subdirectory, are from the double precision version of FFTPack as distributed via Netlib. It is apparently Version 4, dated 1985, as authored by Paul N. Swarztrauber of the National Center for Atmospheric Research, Boulder, Colorado. NCAR is sponsored by the National Science Foundation. No restrictions were found in the the Netlib distributions of either the single or double precision versions.
This should be considered a working document, and as such should be associated with the specific version of FMD it is released with. It need not describe depricated features in previous versions, nor correctly describe those in future versions. The information contained within represents only part of the overall FMD effort. It has been adapted, in part, from the documentation released with NAMD 1.4.
fmd is a parallel molecular dynamics program designed for high-performance simulations in chemistry and materials science. This user guide describes how to use fmd and its features. Chapter 2 gives a brief overview of fmd and molecular dynamics in general. Chapter 3 covers the actual running of fmd. It describes the input and output file formats. The available control parameters are also presented here. Chapter 4 provides an example of running fmd on an IBM SP2 massively parallel processor system. Installation of fmd is described in Chapter 5. References and Additional Readings contain a list of primary reference materials that may be of interest.
Molecular dynamics (MD) simulations compute atomic trajectories by solving the equations of motion numerically using an empirical force field. The force field, currently CHARMm (see section References), defines the interactions between atoms in terms of bonds, bond angles, dihedral angles, improper dihedral angles, van der Waals, and electrostatic interactions. These interactions approximate the actual interactions between two atoms. In addition to running on scalable machines, some of the other features of the current version of fmd include:
fmd was developed to be compatible with several existing molecular dynamics packages, especially the X-PLOR and CHARMM programs. To achieve this compatibility, the set of data files which fmd uses to define a molecular structure are identical to those used by xplor. These data files are very similar to, but not quite fully compatible with, those used by the charmm program. Moving between the xplor and charmm formats is fairly straight forward, and several tools exist to aid in that process. One particular data file is read before any other and will be referred to the input file. This file contains the user specifiable execution settings for various parameters particular to a given fmd run. A detailed description of the fmd data file formats follows below.
In addition, the output file formats used by fmd were chosen to be compatible with namd, xplor and charmm. In this way, output from fmd can be analyzed by namd, xplor, charmm, or any of a variety of other tools designed to used these formats. Details of the output file formats also follow below.
Atomic coordinates and velocities are stored in Brookhaven Protein Data Bank (PDB) format. This is the standard format used by many other programs for coordinate data, including xplor and charmm. PDB files use a well defined fixed line format, a full description of which can be obtained via anonymous ftp from host ftp.pdb.bnl.gov as a compressed file, /pub/format.desc.ps.Z, or as a plain text file, /pub/format.desc.txt. A "velocity" PDB file simply replaces each atom's spatial coordinate components with it's velocity components.
Since the formal PDB file format allows only 5 digits to represent the atom sequence numbers, a custom variation is supported by fmd which allows it to handle more atoms. FMD will read PDB (and PSF) files using base-64 notation for the atom sequence numbers and residue sequence numbers. The character set used is: "0-9A-Za-z@#". This allows over 1 billion atoms to be specified in five characters, and over 16 million residue sequences in 4 characters.
PDB files using the base-64 notation indicate the fact with a special KEYWRD record:
KEYWRD....BASE64
where the "...." are replaced by four spaces. Similarily, the PSF file uses a special title line containing BASE64 anywhere on the line. PDB files generated by fmd will use this base-64 format if the atom count is over 99,999.
Atomic coordinates and velocities can be stored in NCSA HDF formatted files. This format has the advantage of being architecture independent, so fmd can read and write such files on any machine which supports the HDF library. Details of the file format and its supporting libraries can be found at NCSA.
All HDF files generated by fmd have the same structure. There contain nine file (global) attributes which serve as a file "header". Each data set written to the file has a name and one attribute. The data sets are written in HDF "float64" format, which is double precision on most machines. The file attributes are:
title
title2
program
revision_id
revision_date
creator
date
type
class
The data set names take the form "timestep nnn", and the attribute associated with each is named "elapsed_time". The attribute contains the simulation time of the data in "float64" (double precision) format. The source code for the hdfdump utility provides a good example of how the data is read from the HDF files.
The protein structure files (PSF) used by fmd follow the same format as used by xplor. They can be created by hand, in a tedious process, or can be created by other chemical design tools. A simple translator, for instance, can convert PSF files generated by the MSI Quanta commercial program's charmm into fmd format. The file is a text file separated by keywords into several sections. The following describes the sections in the order the must appear. For compatibility with CHARMM and XPLOR, the file should be fixed-format. Formats are shown using C format specifiers. A sample PSF file can be found in section Sample PSF File.
PSF
NTITLE
NATOM
Cols
1-8
10-13
15-18
20-23
25-28
30-33
36-48
50-62
64-70
NBONDS
NTHETA
NPHI
NIMPHI
NDON
NACC
NNB
|> 3 !NNB: |> 3 4 5 |> 0 1 3 3 3Then atom 1 has no exclusions (its 0). Atom 2 indexes the first atom in the list and ends at the second, so it has atoms 3 and 4 in its exclusion list. Atom 3 indexes the third atom in the list, and ends with the third, so has only atom 4 in its list. Lastly, the indexes specified for atoms 4 and 5 equal NNB, and since 4 and 5 are both > NNB, they have no exclusions. Thus, of the five atoms, two have exclusions, three do not.
NGRP, NST
fmd supports the CHARMM19 and CHARMM22 parameter files in the same format as used by X-PLOR. Every interaction and atom type which appears in the PSF file must be described in one or more of the entries in the parameter file. The details of the force field are found in the FMD Programmer's Guide. (Click here ...). Each line in a parameter must be blank or begin with a recognized keyword. Only the first four letters of these keywords are significant. They may be in upper or lower case, but are shown below in capital letters for emphasis. The format of each entry is expresses as a C format statement. A sample parameter file can be found in section Sample Parameter File.
!
REMARK
BOND
ANGLe
DIHEdral
IMPRoper
NONBonded
NBFIx
fmd produces binary trajectory (DCD) files in the same format as xplor. The exact format of these files is quite ugly, as it reproduces the binary record format of unformatted FORTRAN files. Each such "record" begins with 4 bytes containing the integer value of the number of bytes in the following record. It ends with a record containing the same 4 bytes. The file can be broken into two parts, the header information at the beginning of the file, and the coordinate sets themselves. Here is the header:
BYTES | TYPE | CONTENT | COMMENT |
======= | ======= | ========= | ============================= |
4 | Int | 84 | Start of 84 byte record. |
4 | Char | "CORD" | Flag a coordinate record DCD file. |
4 | Int | nnnn | Number of coordinate sets in file. |
4 | Int | nnnn | Starting time step number. |
4 | Int | nnnn | Time steps between coordinate steps. |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
8 | Double | t.ssss | Size of a time step. |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 0 | (Unused field). |
4 | Int | 84 | End of 84 byte record. |
4 | Int | 164 | Start of 164 byte record. |
4 | Int | 2 | Number of 80 byte records to follow. |
80 | Char | "string" | 80 byte comment string. |
80 | Char | "string" | 80 byte comment string. |
4 | Int | 164 | End of 164 byte record. |
4 | Int | 4 | Beginning of 4 byte record. |
4 | Int | nnnn | Number of atoms. |
4 | Int | 4 | End of 4 byte record. |
Here is the format of the coordinate sets:
BYTES | TYPE | CONTENT | COMMENT |
======= | ======= | ========= | ============================= |
4 | Int | 4*n | Beginning of record, 4*Natom bytes long. |
4*n | Real | x.xxx | List of Natom X coordinate values. |
4 | Int | 4*n | End of record, 4*Natom bytes long. |
4 | Int | 4*n | Beginning of record, 4*Natom bytes long. |
4*n | Real | x.xxx | List of Natom Y coordinate values. |
4 | Int | 4*n | End of record, 4*Natom bytes long. |
4 | Int | 4*n | Beginning of record, 4*Natom bytes long. |
4*n | Real | x.xxx | List of Natom Z coordinate values. |
4 | Int | 4*n | End of record, 4*Natom bytes long. |
Note: careful reading of the FMD Programmer's Guide, (Click here ...), and source code, will convince you that the velocities seen by the majority of the code are actually 1 timestep behind that of the coordinates. This is important when a sequence of runs is planned, since the velocities are treated differently at the beginning of the first run of the sequence. If an initial temperature is specified, the code assumes the first time step is an initialization step. If initial velocities are specified, the code assumes the initial time step is a restart step. All other time steps are considered to be continuations of a run.
fmd has a wide variety of parameters that the user can set at startup to control fmd's behavior. These options and variable settings determine the exact behavior of fmd, which features will be active or inactive, how long the simulation will run, etc. This section describes syntax expected, and what settings are available.
Each line in the user input file consists of a keyword
identifying
the option being specified, and a value
which is to be assigned to
the option. The line can take one of two forms. The keyword
and
value
can be separated by only white-space (ie. spaces and/or tabs),
such as:
keyword value
or they can be separated by an equal sign and white-space, such as:
keyword = value
Blank lines in the file are ignored. Comments are prefaced with a pound sign (#), and may appear at the end of a line with a keyword- value pair:
foo = value1 bar = value2 # Here is a comment fie = value3 # Skip comment lines like this one or blank lines
It is important to note that keywords
are case insensitive.
Hence, entries such as coorTrjFile
and coortrjfile
are
recognized as the same keyword
. However, values
ARE case
sensitive. This is particularly important when you specify file names,
as they must be written exactly as you expect to find them. There is
one exception. The toggle values of off
and on
may be
written with any capitalization desired.
This sections describes those options which a user is required to set. They define the most basic properties of the simulation to be performed.
NumSteps
numsteps x timestep
.
Coordinates
Structure
Parameters
parameters
keywords may be
used to specify several different parameter files, if required.
parameters params1 parameters params2 parameters params3The files will be read in the order they appear, and warning messages will be printed if duplicated values are found. The last value read is the the value used, so the order in which the files are specified could be important.
Cutoff
Exclude
none
, 1-2
, 1-3
, 1-4
, or
scaled1-4
none
, no
bonded pairs of atoms will be excluded. With the value 1-2
, all
atoms pairs that are directly connected via a linear bond will be
excluded. With a value of 1-3
, all 1-2
pairs will be
excluded, along with all pairs of atoms that are bonded to a common
third atom (ie. if atom A is bonded to atom B, and atom B is bonded to
atom C, then the atom pair A-C would be excluded). With a value of
1-4
, all 1-3
pairs will be excluded along with all pairs
connected by a set of two bonds (ie. if atom A is bonded to atom B, and
atom B is bonded to atom C, and atom C is bonded to atom D, then the
atom pair A-D would be excluded). With a value of scaled1-4
, all
1-3
pairs are excluded and all pairs that match the 1-4
criteria are modified. The electrostatic interactions for such pairs
are scaled by the factor 1-4scaling
. The van der Waals
interactions are modified by using the special 1-4
parameters
defined in the parameter files.
OutputName
.coor
will be appended to the prefix to create the name
of the coordinate file, and .vel
will be append to create the name
of the velocity file. Thus, if one has:
OutputName = /tmp/my_outputthen the coordinate file will be named /tmp/my_output.coor and the velocity file will be named /tmp/my_output.vel. The format of the files may be set by
outputformat
, as described below.
These are parameters and options that are not required, but will almost always be specified. These, along with the required options of the previous section, form the fundamental options for a simulation.
InitCoordsFile
initCoordsFile
is specified,
coordinates
must also be specified.
InitCoordsFormat
pdb
, bin
or hdf
bin
InitCoordsDataset
initCoordsFile
. It defaults to 0. The data is checked
to make sure coordinate data is being read. The setting is ignored if
binary format is being used.
Title
Title2
TimeStep
Temperature
temperature
or velocities
must be defined to set initial
velocities for the model. The options can not be used together. NOTE:
if this file represents a continuation of a previous run, FirstTimestep
must be set to something other than 0!
OutputFormat
pdb
, bin
or hdf
pdb
.coor
and .vel
files
written for output (see the outputname
keyword) are in PDB
format. This keyword allows them to be written in binary or HDF format.
Both save space and preserve accuracy. The HDF format is machine independent.
Velocities
temperature
or velocities
must be defined to set initial
velocities for the model. The options can not be used together.
VelocitiesFormat
pdb
, bin
or hdf
pdb
bin
and hdf
formats both save space and preserve
accuracy. The hdf
format has the advantage of being machine
independent.
VelocitiesDataset
velocitiesFile
. It defaults to 0. The data is checked
to make sure velocity data is being read. The setting is ignored if
binary format is being used.
COMmotion
yes
or no
no
yes
, center-of-mass motions
will be allowed (ie. ignored). If set to no
, center-of-mass motions
will not be allowed. Once initial velocities are assigned, they will be
adjusted so as to remove any center-of-mass rotational and translational
motions.
RestartName
outputname
. That is, .vel
is appended to
the prefix to create the velocity file name, and .coord
is
appended to create the coordinate file name. These files specified here
differ from outputname
files only in the number of times they are
written during a simulation. outputname
are written at the end
of a simulation, restartname
are written every restartfreq
time step during the simulation. The final restartname
files may
or may not equal the outputname
files. The files may be written
in binary or HDF format if restartformat
is set, as described
below. If restartname
is specified, then restartfreq
must
also be specified.
RestartFreq
restartfreq
time steps. If restartfreq
is
specified, then restartname
must also be specified.
RestartFormat
pdb
, bin
or hdf
pdb
bin
and hdf
formats preserve accuracy and conserve space. In addition, the HDF format
is machine independent.
Dielectric
dielectric
.
1-4Scaling
exclude
keyword is set to scaled1-4
.
In that case, this factor is used to modify the electrostatic interactions
of 1-4 atom pairs. If the exclude
parameter is set to anything but
scaled1-4
, this parameter is ignored.
CoorTrjFile
coorTrjFile
is
specified, the coorTrjFreq
must also be defined.
CoorTrjFreq
coorTrjFreq
time step, the data is written. If
coorTrjFreq
is specified, then coorTrjFile
must also be
defined.
CoorTrjFormat
EnergyTrjFile
energyTrjFile
is specified, then energyTrjFreq
must also be
defined.
EnergyTrjFreq
energyTrjFreq
time step, the data is written. If
energyTrjFreq
is specified, then energyTrjFile
must also be
defined.
VelTrjFile
velTrjFile
is
specified, then velTrjFreq
must also be defined.
VelTrjFreq
velTrjFreq
time step, the data is written. If velTrjFreq
is specified, then velTrjFile
must also be defined.
VelTrjFormat
CWD
OutputName = job1/run3 RestartName = /tmp/run3 CWD = /scrthen the coordinate files would become
/scr/job1/run3.coord /tmp/run3.coordIf no
CWD
is specified, then the file paths
are not modified.
Seed
OutputEnergies
outputenergies
time steps.
The default setting of every time step may produce huge amounts of output
during very long simulations.
FirstTimestep
do_integration
are set at the
half timestep boundary.
Switching
on
or off
off
switching
is set to off
, then a truncated cutoff is
performed. If switching
is set to on
, then smoothing functions
are applied to both the electrostatic and van der Waals forces. For a
complete description of the non-bonded force parameters, see below. If
switching
is on
, then switchdist
must also be defined.
SwitchDist
cutoff
switching
is on
. The value of switchdist
must be
less than or equal to the value of cutoff
, since the switching function
is only applied on the range from switchdist
to cutoff
.
PairListDist
cutoff
cutoff
switching
is set
to on
to specify the allowable distance between atoms for
inclusion in the list. This is equivalent to the xplor cutnb
parameter. If no atom moves more than pairlistdist
-cutoff
during one cycle, then there will be no jump in electrostatic or van der
Waals energies when the next pair list is built. Since such a jump is
unavoidable when truncation is used, this parameter may only be
specified when switching
is on
.
StepsPerCycle
Margin
SnapshotFile
SnapshotFormat
SnapshotStart
SnapshotStop
AllForceTrjFile
allForceTrjName
is specified, the
allForceTrjFreq
must also be defined.
AllForceTrjFreq
allForceTrjFreq
time step, the data is written. If
allForceTrjFreq
is specified, then allForceTrjFile
must also be
defined.
AllForceTrjFormat
ElectTrjName
electTrjName
is specified, the
electTrjFreq
must also be defined.
ElectTrjFreq
electTrjFreq
time step, the data is written. If
electTrjFreq
is specified, then electTrjFile
must also be
defined.
ElectTrjFormat
DiceFreq
The FMM3D parameters control use of the three-dimensional fast multipole method for calculation of the long-range electrostatic interactions.
FMA
on
or off
off
on
, not used if set to
off
.
FMALevels
fma
is on
.
FMAMp
fma
is on
.
FMADegSep
FMASuperNode
The harmonic constraint feature of fmd is controlled by its own set of input options. The implementation might be more correctly called harmonic restraints. It follows the implementation seen in xplor. Through the use of these options, harmonic restraints may be applied to any atom or set of atoms in a model.
Constraints
on
or off
off
on
or off
based on the obvious value specified.
If on
is chosen, the parameters consref
, conskfile
,
conskcol
, and consexp
will be recognized.
ConsExp
constraints
is off
.
ConsRef
coordinates
constraints
is on
, the same file used for coordinates
will be read, indicating
the atoms are to be constrained about their initial positions.
ConsKol
X, Y, Z, O,
or B
O
ConsKfile
coordinates
coordinates
PDB file is assumed to contain the constants.
fmd does have the ability to perform energy minimization using a steepest descent method. While this algorithm is not the fastest to converge, it is sufficient for most applications. There are only two parameters for minimization to set, one to specify that minimization is active, and the other to specify the maximum movement of any one atom.
Minimization
on
or off
off
on
or off
in
the obvious fashion.
MaximumMove
cutoff
/stepspercycle
fmd is capable of performing Langevin dynamics, where additional damping and random forces are introduced into the model. This follows the same implementation as found in xplor.
Langevin
on
or off
off
on
, then the parameter langevintemp
must also be set.
LangevinTemp
langevin
is set to on
.
LangevinFile
coordinates
coordinates
PDB file is assumed to contain the parameters.
LangevinCol
X
, Y
, Z
, O
, or B
O
fmd allows equilibration of a system by means of temperature rescaling. Using this method, all of the velocities in the system are periodically rescaled so that the entire system is set to the desired temperature. The following parameters specify how often rescaling is to be performed, and the temperature to be used.
RescaleFreq
rescaletemp
is required.
RescaleTemp
rescalefreq
is set.
The periodic boundary conditions (PBC) in fmd support periodicity in any combination of directions (ie. line, slab, or volume), and arbitrary triclinic unit cells. To use PBC's, the user must enable PBC support, specify four vectors which define the unit cell, and optionally, specify the periodicity type if something other than volume is desired. The current implementation does not support use of fast multipole methods, and uses the nearest neighbor approximation when computing non-bonded forces. The fast multipole method will eventually support infinite images.
UnitCell
on
or off
. off
. UnitOrigin
UnitX
UnitY
UnitZ
Periodicity
x
, y
, z
,
xy
, xz
, yz
, or xyz
The only boundary conditions currently supported by fmd are spherical harmonic boundary conditions. These boundary conditions can consist of a single potential, or a combination of two potentials active at the outer edge of the model.
SphericalBC
on
or off
off
sphericalbcr1
and sphericalbck1
must
also be set.
SphericalBCr1
SphericalBCk1
SpericalBCexp1
SphericalBCr2
SphericalBCk2
SphericalBCexp2
SphericalBCCenter
fmd supports the application of an external electric field. This,
along with setting a dielectric
constant for the model, allows
for a wide variety of electrostatic conditions.
EFieldOn
on
or off
off
EField
must also be set.
EField
EFieldOn
is not set "on", else
it defaults to 0.
fmd was designed to provide many of the same molecular dynamics functions as found in xplor. Thus, there are many similarities between the types of parameters passed to both fmd and xplor. This table lists the fmd parameter and the equivalent xplor parameter.
Cutoff
SwitchDist
PairListDist
1-4Scaling
Dielectric
Exclude
NBXMod
have fmd equivalents. These equivalents are:
NBXMod exclude Description ==================================================== 1 none no atom pairs excluded 2 1-2 only 1-2 atom pairs excluded 3 1-3 1-2 and 1-3 pairs excluded 4 1-4 1-2, 1-3, and 1-4 pairs excluded 5 scaled1-4 1-2, 1-3, 1-4 pairs excluded, 1-4 pair interactions modified
Switching
switching
on
is equivalent to xplor
SHIFt and VSWItch on. Setting to off
is equivalent to xplor
option TRUNcation.
Temperature
RescaleFreq
RescaleTemp
RestartName
RestartFreq
CoorTrjFile
CoorTrjFreq
VelTrjFile
VelTrjFreq
NumSteps
This is a collection of parameters that serve primarily as aids in code development, are experimental, or are of questionable usefulness. Use at your own risk if you find a need.
GlobalTest
true
or false
. false
LdbStrategy
none
, random
, nolocality
, bisection
, or other
. bisection
LdbStepsPerCycle
ldbstrategy
is specified.
LdbSendStep
ldbstepspercycle
> Integer > 0 ldbstrategy
is specified.
LongSplitting
sharp
, xplor
, or c1
sharp
MTSAlgorithm
naive
, verleti
, or verletx
naive
Description:
Selects among several methods for time step splitting.
PLMmarginCheck
on
or off
. off
. TCouple
true
or false
. false
. TCoupleTemp
tcouple
specified as true
.
TCoupleFile
tcouple
is true
.
TCoupleCol
X
, Y
, Z
, O
, or B
O
tcouple
is
true
. (Data format is \%6.2f. Occupancy data in columns 55-60,
beta-coupling data in columns 61-66.)
Dihedral
true
or false
false
Cold
true
or false
false
dihedral
is true
.
ColdTemp
cold
and dihedral
are true
.
ColdRate
dihedral
and cold
are
true
.
ElectForceTrjName
electForceTrjName
is specified, then electForceTrjFreq
must also be defined.
ElectForceTrjFreq
electForceTrjFreq
time step, the data is written. If
electForceTrjFreq
is specified, then electForceTrjName
must also be defined.
AllForceTrjFile
allForceTrjFile
is specified, then allForceTrjFreq
must also be defined.
AllForceTrjFreq
allForceTrjFreq
time step, the data is written. If
allForceTrjFreq
is specified, then
allForceTrjFile
must also be defined.
fmd has a number of options that control the way non-bonded interactions are calculated. These options are interrelated and can be confusing. This section attempts to explain their behavior and provide a better understanding of their usage.
The simplest non-bonded interaction behavior is that of the van der
Waals forces. With fmd, van der Waals interactions are always
truncated at the cutoff
distance. switching
is the main
option that effects the van der Waals forces. With this option set to
on
, a smooth switching function will be used to accelerate the
decrease of the van der Waals force so that it is 0 at cutoff
.
If switching
is set to off
, the van der Waals forces are
simply truncated to 0 beyond cutoff
.
This is seen most clearly in the following figure.
This is seen most clearly in the following figure.
The details of the switching function are given in the
FMD Programmer's Guide.
(Click here ...).
The switching function used is based on the xplor implementation.
The parameter switchdist
specifies the distance at which the
switching function begins to take effect, and cutoff
defines the
distance at which the switching function takes the van der Waals forces
to 0. Thus, the value of switchdist
must always be less than
cutoff
.
The handling of electrostatics is slightly more complicated due to the possibility of doing a full treatment via the fast multipole method in three dimensions, FMM3D. There are two cases to consider, one where FMM3D is used to provide full electrostatics and the other where electrostatics are truncated at a given distance.
Let us begin by considering the second case, where electrostatics are
truncated at cutoff
. Using this scheme, all electrostatic
interactions between pairs separated by a distance greater than cutoff
are ignored by setting to 0. If switching
is on
, than instead
of having a discontinuity at cutoff
, a shifting function is applied
to the electrostatic potential so the the entire potential is lowered in a
manner that causes it to go to 0 at cutoff
instead of at infinity.
The implementation follows that used by xplor.
The following figure illustrates the behavior of the shifting function.
The following figure illustrates the behavior of the shifting function.
Next, consider the case were full electrostatics are calculated. In this
case, the electrostatic interactions are not truncated at any distance.
In this scheme, the cutoff
parameter has a slightly different
meaning for the electrostatic interactions. It represents the point at
which the decision is made to use a direct calculation at every time
step during a cycle, or use the FMM3D algorithm. Atom pairs closer than
cutoff
will use the direct method, while atoms pairs farther apart
than cutoff
will use the FMM3D algorithm.
At the end of each cycle, the pair lists are rebuilt and a new set of
FMM3D coefficients calculated.
The last critical parameter for non-bonded interaction calculations is
the pairlistdist
parameter. To reduce the cost of performing the
non-bonded interactions, fmd uses a non-bonded pair list. This
list contains all pairs of atoms that non-bonded interactions should be
calculated for. Performing the search for pairs of atoms that should
have their interactions calculated is an expensive operation. Thus, the
pair list is only calculated periodically, once per cycle.
Unfortunately, pairs of atoms move relative to each other during the
steps between preparation of the pair list. Because of this, if the
pair list was built to only include those pairs of atoms that are within
the cutoff distance, it is possible for atoms to drift closer together
than the cutoff distance and yet not have their non-bonded interactions
calculated.
Let us consider a concrete example to better understand this. Assume
that the pairlist is only built once every 10 time steps, and consider a
pair of atoms A and B. Assume that at the time the pair list is built,
A and B are 0.1@AA{} further apart than the cutoff
distance.
Since the pair list includes only those atoms with a separation of
cutoff
, this pair would not be included in the pair list. Now
assume that after 5 time steps, atoms A and B have moved 0.2@AA{} closer
together. This pair is now within cutoff
of each other, and
should have their non-bonded interactions calculated. However, because
the non-bonded interactions are based solely on the pair list, and the
pair list will not be rebuilt for another 5 time steps, this pair will
be ignored for 5 time steps, causing non-conservation of energy in the
model.
To avoid this problem, the parameter pairlistdist
allows the user
to specify a distance greater than cutoff
for pairs to be
included in the pair list. Pairs that are included in the pair list,
but with a separation greater than cutoff
are ignored. So in the
above example, if pairlistdist
were set to a value 1@AA{} greater
than cutoff
, the atom pair A and B would be included in the pair
list, but their non-bonded interactions would not be calculated until
their separation decreased to less than cutoff
.
The value of pairlistdist
should be chosen such that no atom pair
moves more than pairlistdist
-cutoff
in one cycle.
In the above scheme, the van der Waals forces are still truncated at
cutoff
. Thus the van der Waals truncation distance forms a lower
limit to the local interaction distance. This is believed to be
sufficient, but further studies need to be done to provide full
van der Waals calculations in O(n) time as well.
There are several sample problems contained in the Data directory of the
FMD distribution. One example is that of bpti (or bovine pancreatic
trypsin inhibitor). The example covers the execution and output from fmd
on an IBM SP2 massively parallel processor. On the SP2, one must first
set up several environment variables, whether running interactive or under
LoadLeveler, the IBM batch queue manager. One possible set is (note that
everything from the "|" character to the end of line is NOT included in
the setenv
commands):
setenv MP_PROCS 4 | Requests 4 processors setenv MP_HOSTFILE "NULL" | No explicit processor list setenv MP_EUILIB us | Use the high speed switch library setenv MP_EUIDEVICE css0 | Use the high speed switch device setenv MP_RMPOOL 1 | Use Resource Manager Pool 1 setenv MP_RESD YES | Partition Manager uses Resource Manager setenv MP_INFOLEVEL 2 | Informational, warning & error messages setenv MP_PGMMODEL spmd | SPMD or MPMD programming model setenv MP_LABELIO YES | Label I/O with node numbers
These setenv
could be placed in a .cshrc file, or could be placed in
a text file and read manually with a source
command.
Once the execution environment (or poe
in IBM parlance) has been set,
the next step is to create a user input file. The bpti model already has a
sample file that could be modified, called bpti.in. This particular
model simply gets a set of energy readings, and is configured to allow
comparison with charmm output. This file contains:
# FMD user input file for bpti Structure ./Data/bpti.psf | PSF in subdirectory Data Coordinates ./Data/bpti.pdb | PDB in subdirectory Data Parameters ./Data/parameters | parameters in subdirectory Data Minimization off | Not minimization run. OutputName bpti | Use bpti as output file prefix OutputFormat pdb | Output in PDB format RestartName bpti.rst | Use bpti.rst as restart file prefix RestartFormat hdf | Must use binary or HDF format RestartFreq 10 | Frequence of restart writes Seed 834716765 | Handy dandy random number seed margin 1 | Patch margin (default actually) Numsteps 20 | Only 20 time steps StepsPerCycle 10 | Results in 2 cycles Timestep 0.01 | Very short time step Cutoff 14.0 | 14 Angstrom cutoff OutputEnergies 1 | Energy audits every time step Temperature 0 | No temperature COMmotion no | Do not allow COM motion Dielectric 1.0 | No effective dielectric Exclude scaled1-4 | Use scaled 1-4 interactions 1-4Scaling 0.5 | 1-4 scaling factor switching on | Enable switching SwitchDist 11.0 | Switch distance is 11 Angstroms Constraints off | No constraints Langevin off | Langevin dynamics off FMA on | FMM3D is on FMALevels 4 | 4 FMM3D levels, ignored FMAMp 6 | 6 expansion terms, ignored
Note that the file uses white-space separation only, and that the keywords use a mix of upper and lower case. Also note that this file expects the molecular data files to reside in a subdirectory called Data below the current working directory.
Assuming fmd is in your execution search path, the simulation is run with the following command:
fmd bpti.in >& bpti.out &
This runs fmd in the background, and directs standard output (STDOUT), and standard error (STDERR) to the file called bpti.out.
The first few lines of bpti.out look like:
INFO: 0031-690 Connected to Resource Manager INFO: 0031-119 Host hpc020302-e.wpafb.af.mil allocated for task 0 INFO: 0031-119 Host hpc020304-e.wpafb.af.mil allocated for task 1 INFO: 0031-119 Host hpc020306-e.wpafb.af.mil allocated for task 2 INFO: 0031-119 Host hpc020308-e.wpafb.af.mil allocated for task 3 0:INFO: 0031-724 Executing program: <./fmd> 3:INFO: 0031-724 Executing program: <./fmd> 1:INFO: 0031-724 Executing program: <./fmd> 2:INFO: 0031-724 Executing program: <./fmd> 0:Node 0:Info> Fast Molecular Dynamics (FMD) . . .
The first five lines are informational messages from the Resource Manager. The next five lines are from fmd. The numbers at the beginning of the line are the node numbers automatically attached by the Resource Manager to the output.
The last few lines of the output file look like:
. . . 0:Node 3:Info> TOTAL RUN TIME 50.5044 0:Node 3:Info> TOTAL CPU TIME 49.34 0:Node 0:Info> ENERGY: 1 562.7293 179.5891 136.0189 ... 0:Node 0:Info> TIME IN MID-CYCLE STEPS 1.02405 AVERAGE TIME PER ... 0:Node 0:Info> TIME ACTUALLY DOING ALL TIMESTEPS 2.0048 AVERAGE ... 0:Node 0:Info> TOTAL RUN TIME 51.2912 0:Node 0:Info> TOTAL CPU TIME 48.57 0:Node 0:Info> fmd exiting 0:INFO: 0031-306 pm_atexit: pm_exit_value is 0. INFO: 0031-656 I/O file STDOUT closed by task 0 . . .
The ENERGY line has been wrapped to show its full contents. Note that node 0 does most of the routine output for fmd. Routine termination messages follow at the end of this file.
Of course, the other output files, bpti.coord and bpti.vel were also created. The first few lines of each are shown here. First, bpti.coor:
REMARK FINAL COORDINATES WRITTEN BY FMD AT TIMESTEP 1 ATOM 1 N ARG 1 26.465 27.452 -2.490 1.00 25.18 APTI ATOM 2 CA ARG 1 25.497 26.862 -1.573 1.00 17.63 APTI ATOM 3 C ARG 1 26.193 26.179 -0.437 1.00 17.26 APTI ATOM 4 O ARG 1 27.270 25.549 -0.624 1.00 21.07 APTI ATOM 5 CB ARG 1 24.583 25.804 -2.239 1.00 23.27 APTI ATOM 6 CG ARG 1 25.091 24.375 -2.409 1.00 13.42 APTI ATOM 7 CD ARG 1 24.019 23.428 -2.996 1.00 17.32 APTI ATOM 8 NE ARG 1 23.591 24.028 -4.287 1.00 17.90 APTI ATOM 9 CZ ARG 1 24.299 23.972 -5.389 1.00 19.71 APTI . . .
REMARK FINAL VELOCITIES WRITTEN BY FMD AT TIMESTEP 1 ATOM 1 N ARG 1 0.009 0.007 -0.011 1.00 25.18 APTI ATOM 2 CA ARG 1 -0.004 -0.007 -0.005 1.00 17.63 APTI ATOM 3 C ARG 1 0.026 -0.006 -0.011 1.00 17.26 APTI ATOM 4 O ARG 1 -0.012 0.008 -0.001 1.00 21.07 APTI ATOM 5 CB ARG 1 -0.002 0.005 -0.002 1.00 23.27 APTI ATOM 6 CG ARG 1 0.000 -0.002 -0.000 1.00 13.42 APTI ATOM 7 CD ARG 1 0.006 0.008 -0.004 1.00 17.32 APTI ATOM 8 NE ARG 1 -0.020 0.012 0.010 1.00 17.90 APTI ATOM 9 CZ ARG 1 -0.011 -0.024 0.009 1.00 19.71 APTI . . .
The fmd system has been packaged to distribute all the necessary source code in one directory tree. There is a master configuration file in the top level (or project root) directory which controls compilation for various architectures. The directory tree looks like:
./FMD Project root. `-----ARCH Binaries. | `-----xx-yy-zz Architecture specific binaries. `-----Data Sample input and data files. `-----Docs Formatted documentation. `-----Misc Version histories. `-----Src All source files. | `-----Docs Documentation sources. | `-----FFT FFTPACK source. | `-----FMD FMD source. | `-----FMM3D FMM3D source. | `-----Include Header files. | `-----Misc Scripts and other helper files. `-----Validation The validation suite. | `-----Canonical Accepted results. | | `-----P Parallel jobs. | | | `-----vr_mm Directory for job mm. | | `-----S Sequential jobs. | | | `-----vr_nn Directory for job nn. | `-----Data Data used by validation models. | `-----Jobs FMD input files. | | `-----P Parallel job input files. | | `-----S Sequential job input files. | `-----Runjobs Sample runjob scripts | | `-----LAM Scripts for LAM-MPI
The system is designed to install as automatically as possible using the GNU Autoconf system. One should simply execute the shell script configure to set the system for a particular architecture. Should you be working on a system which it can't identify, there is a manual method for customizing the required files. The UNIX make utility is used to control package compilation. A make that supports the "include" statement for reading in other makefile fragments is required. The package was developed with GNU make-3.75, a utility freely available in source format.
The documents are not designed to be rebuilt automatically, since they require a TeX installation which does not exist on many of the target architectures. If you have one, setting the environment variable FMD_DOCS to YES will activate the make file. The Docs/Makefile will have to be reviewed to insure all TeX related utilities are pointed to correctly.
Installation begins by changing to a directory which will hold the package. Let's assume that we are in one's home directory. The next step is uncompressing the tar file, then untaring it. Once done, once changes to the FMD root directory, configures and makes the programs. Here is what the command sequence looks like:
hpc02% gunzip fmd-1.1.3.tgz hpc02% tar xvf fmd-1.1.3.tar hpc02% cd FMD hpc02% configure hpc02% make all
Once this sequence is completed, there should be two new directories created in the project root directory. One is the ARCH directory containing a subdirectory for your architecture. It will have a name like: alpha-dec-osf4.1. This indicates the CPU type, the manufacturer, and the operating system. In this directory you will find four files:
fmd ------------ the FMD executable libfmd.a ------- ar library of all the Src/FMD modules. libfmm3d.a ----- ar library of all the Src/FMM3D modules. libdfftpack.a -- a double precision FFT library.
In the best of all worlds, the user in ready to run FMD. However, on some machines, the IBM SP2 in particular, the user must make a choice of MPI libraries - either an MPI implementation or a portable implementation. This is done by specifying an option to configure:
configure --with-ibmmpi=ARG
where ARG is one of IBM or PORT.
The user also has the option of specifying the type of algorithm to use for the long range forces. Currently two are implemented, NONE - implying some truncation technique is used, or FMM3D - which selects the Fast Multipole Method in 3D method. The configure command would look like:
configure --with-lrfm=ARG
where ARG is NONE or FMM3D.
Finally, the use has the ability of specifying which "make" utility to use. This is done as:
configure --with-make=PATH
where PATH is the fully specified path to the "make" utility.
If you have access to a system with Autoconf installed, there is only one file that need be modified to configure FMD for a new system. That file is configure.in. If Autoconf is not installed, then all of the settings can be handed from the command line using "configure --with-OPTION" flags. A listing of all the available options can be generated by running "configure --help".
It is a file which contains Autoconf macros and shell programming stanzas. There are two stanza's to consider modifying for a new system. The first section cleans up the architecture identifier. For instance, the IBM SP system is identified as "rs6000-ibm-aix4.1.0.5". This is probably too specific for our needs, so it is pared down to just "rs6000-ibm-aix4.1". The stanza which does this looks like:
case "$host" in # IBM RS6000 - Prune version numbers as needed. Guessing that # AIX 4.1.0.5 can be cut down to AIX 4.1, as "uname -a" reports # only 4.1 rs6000-ibm-aix4.1*) host_os=aix4.1 host=$host_cpu-$host_vendor-$host_os host_alias=$host echo setting host system type to: $host ... ;;
The second stanza handles the main group architecture settings, and it occurs near the end of the file. Here is an excerpt, showing how the C++ compiler is specified for a DEC AlphaStation running OSF 4.0:
# # Architecture Specific Section # # Here we handle architecture specific stuff that can't be set up # any other way. If a variable is set to NONE, then set it to the # default value for the machine: case "$host" in # DEC AlphaStation running OSF 4.0 alpha-dec-osf4.0) AC_DEFINE(OSF) TESTED=yes # # Here are the C++ compiler settings. # if test "${CCPP}" = NONE ; then TMP=g++ else TMP=$CCPP fi AC_PATH_PROG(CCPP,${TMP}) if test "${CCOPT}" = NONE ; then CCOPT="-O3" fi if test "${CCNOPT}" = NONE ; then CCNOPT="-g" fi ... ;;
Adding configuration data for a new architecture would entail filling in a host block such as this. The shell variables identify the compilers to use, set specific flags, and identify the location of the communication package specific files.
TESTED
AC_DEFINE(OS)
ARCHLIBS
CCPP
CC
SCC
CCOPT
COPT
SCOPT
CCNOPT
CNOPT
SCNOPT
CCOPTARCH
COPTARCH
SCOPTARCH
FC
FOPT
FNOPT
FOPTARCH
COMMARCH
COMMDEVICE
COMMROOT
COMMINC
COMMLIB
HDF
HDFROOT
DICE
DICEROOT
HPF
HPFOPT
HPFNOPT
DCFLAGS
In some ways, manual configuration of a new system without benefit of Autoconf or --with-OPTION's may be easier. Only two files must be edited: make.cfg and Src/Include/config.h. configure helps you out by setting all of the unknown variables to CHANGE_ME. Hopefully, searching them out and setting them, following the above descriptions, are all you have to do to get a working system. An excerpt from make.cfg shows you what you can expect to see:
# Compiler symbols, normally set to -DHAVE_CONFIG_H. Anything else # should really go in Src/Include/config.h DEFS=-DHAVE_CONFIG_H # C++ compiler. CCPP=CHANGE_ME # C++ compiler optimization flags CCOPT=CHANGE_ME # C++ compiler no optimization flags. CCNOPT=CHANGE_ME
If you find you must make adjustments, either for a new system, or for an existing one, please let us know. Please e-mail the resulting demo.cfg and make.cfg files to: Ruth.Pachter@ml.afrl.af.mil
The complete sources for all documentation is included in the distribution. However, because regeneration requires many special utilities, a TeX installation among them, the make files are set up for null action unless an environment variable, FMD_DOCS is set to YES. Before this is done, however, the user needs to look over the Makefile in ./FMD/Src/Docs to make sure all of the necessary utilitites are present. Doing (from csh):
setenv FMD_DOCS YES make all
will regenerate the PostScript, info, and html documents from the included source files.
There are several utilities, consisting of GAWK scripts and C programs, which help make usage of FMD a bit easier. These utilities include:
Usage: fmd.ui.tcl [ input_file ] \&
Description: This utility is a tool to help with the generation of user input files. It allows the user to view all available keywords, their usage, and the allow values. It performs some sanity checks to make sure that all required keywords have been specified, and checks on the legality of many of the entries. It currently does not check that entries have the proper Float or Integer format, nor does it check on numerical range. That is simply a matter for future programming efforts.
Usage: gawk -f energies.awk output_file > energy.dat
Description: The energy audit lines written by fmd to the output file can be extracted with the aid of the energies.awk script. Each line of the script's output contains the data for a single energy audit. The fields on each line always include the elapsed time, bond energy, bond angle energy, dihedral energy, improper dihedral energy, electrostatic energy, van der Waals energy, kinetic energy, and temperature. The constraint and electric-field energies may also be present, depending on how the program was run.
Usage: stripmine.pl t=stride [option=x ...] output_file > energy.dat
Description: The energy audit lines written by fmd to the output file can be processed with the aid of the stripmine.pl script. The "t = stride" option sets the stride in time units, allowing energies to be picked out after specific time intervals. The time units output default to pico-seconds, and may be set using the optional "units = fs | ps | ns" keyword to either femto-, pico-, or nano-seconds. The energies can be averaged over the stride interval if the optional keyword "ave=y" is specified. The optional keywords "start=stime" and "end=etime" may be used to specify a sub-interval for extraction or averaging. The fields on each output line include the elapsed time, and the instantaneous or averaged bond energy, bond angle energy, dihedral energy, improper dihedral energy, electrostatic energy, van der Waals energy, kinetic energy, and temperature. The constraint and electric-field energies may also be present, depending on how the program was run.
Usage: engdump energy.hdf > energy.txt
Description: engdump
writes out the data from a HDF energy
trajectory file in the same layout as the energy audits in fmd
output, but using a %20.15g numerical format field to display many more
significant digits. This would allow the use of stripmine.pl
for
averaging and striding just as with normal fmd
output. It can
also provide the basis for more sophisticated energy comparison tools.
Output is written to STDOUT (here directed into a file), while
diagnostics and error messages are written to STDERR. The global file
attributes and number of data sets in the file are included in the
diagnostics.
Usage: fmdarch
Description: fmdarch
is a shell script with determines the
architecture name in the same fashion as the FMD configuration script.
If multiple architectures are available, this script will determine which
subdirectory under FMD/ARCH to use for binaries. For example, if
FMDROOT is the full path to the FMD directory, then something like
% set path=($path $FMDROOT/ARCH/`$FMDROOT/ARCH/fmdarch`) |
would add the proper subdirectory to a CSH user's path.
Usage: hdf2pdb [-dn] data.hdf data.pdb > new.pdb
where "n" is an optional dataset ID specifier which runs from 0 to one less than the number of datasets in the HDF file; data.hdf is the name of the file containing the HDF dataset; data.pdb is the corresponding PDB file; and output is written to STDOUT (here directed into a file).
Description: The coordinate and velocity data stored in fmd HDF formatted output, restart, trajectory and/or snapshot files can be used to replace the data in an existing PDB formatted file. This allows use of analysis tools which may not support HDF files. Data is read from an HDF file using dataset 0 unless the -d options is used to specify some other dataset. HDF header and dataset information is written out as PDB REMARK records, then the PDB file is scanned. If ATOM or HETATM records are encountered, the coordinate or velocity data is replace with that from the HDF file and written out. Any other PDB record type is echoed unchanged. This assumes, of course, that the atom order in the PDB and HDF files are the same. They will be the case if the PDB file is the same as that used to initialize the model.
Usage: hdfdump data.hdf
Description: The contents of an FMD HDF file can be dumped in text form for human inspection. All HDF labels, attributes, and data encountered int the file are displayed in tabular form, giving their characteristics and values. It can be used to verify the contents of a file before use, or extract data for use in programs which do not support HDF. An alternative utility, hdflist is also provided. hdfdump is specific to the FMD Version 2 HDF format, while hdflist can handle both old and new format.
Usage: quanta2fmd quanta.psf fmd.psf
Description: The Molecular Simulations Inc. (MSI) program Quanta4.0 can be used to create protein structure files for use by fmd. quanta2fmd provides the necessary data translation between the MSI CHARMm format and the Harvard CHARMM/Yale X-PLOR format used by FMD.
Usage: psselect `gawk -f swap.awk foo.ps` foo.ps > bar.ps
Description: The table of content pages appear at the end of a Postscript file produced by dvips from TeX or Texi processing. swap.awk is a GAWK script which generates page selection specifications for the psselect utility that reorders the Postscript file into more common book order with the table of contents at the beginning of the file. It should be noted that the input file really does appear twice: once as the argument to gawk, and the as the input argument to psselect.
Usage: send-pr
Description: send-pr is a shell script which automates the process of submitting a bug or trouble report to the FMD development team. It will activate the editor you have specified in your EDITOR or VISUAL environment variable, defaulting to vi if you've specified none. A report template is loaded into the editor, with some fields prefilled, and other marked for you to add information. Upon completion of the report, send-pr automatically mails it to the FMD development team. You will receive an automated response back, which will include the assignment of a report number. For additional details, including how to inquire about report status via e-mail, see the FMD Problem (Bug) Reporting Manual. (Click here ...).
The FMD/Validation subdirectory tree contains a set of standard test jobs which can be used to validate the operation of FMD. The suite has not been fully automated because of the many different ways in which FMD, depending on the architecture and MPI libraries. The suite expects to use a fully configured version of FMD, with all features, except DICE support, active. The shell script RUNJOBS controls the execution of FMD and comparison of results against the canonical results. The comparisons performed attempt to ignore anything related to dates, timings, and expected error messages, but will flag anything other differences. If changes are reported, they should be reviewed for significance. In particular, any differences in the reported energy values should be investigated/reported as a potential serious problem.
B. R. Brooks, R. E. Bruccoleri, B. D. Olafson, D. J. States, S. Swaminathan and M. Karplus, "CHARMm: A Program for Macromolecular Energy, Minimization, and Dynamics Calculations.", J. Comput. Chem., 4(2), pages 187-217, 1983.
Axel T. Br@"unger, "X-PLOR, Version 3.1: A System for X-ray Crystallography and NMR", The Howard Hughes Medical Institute and Department of Molecular Biophysics and Biochemistry, Yale University, 260 Whitney Avenue, P.O. Box 6666, New Haven, CT 06511, 1992.
L. Greengard and V. Rokhlin, "A Fast Algorithm for Particle Simulations", J. Comp. Phys., 73, pages 325-348, 1987.
M.T. Nelson, W.F. Humphrey, A. Gursoy, A. Dalke, L.V. Kal'e, R.D. Skeel, K. Schulten and R. Kufrin, "NAMD: A Parallel, Object-Oriented Molecular Dynamics Program", International Journal of Supercomputer Applications and High Performance Computing, 10, #4, pages 251-268, 1996.
M. Nelson, W. Humphrey, A. Gursoy, A. Dalke, L. Kale, R. Skeel, K. Schulten and R. Kufrin, "MDScope: A Visual Computing Environment for Structural Biology", Comp. Phys. Comm., 1995 (in press).
This is a sample PSF file. The sections are complete, but it does not describe a complete molecule.
PSF 2 !NTITLE REMARK QUANTA-generated PSF for ala4 REMARK Produced on Wed Sep 25 10:30:43 1996 43 !NATOM 1 SEG1 1 ALA N NT -3.000000E-01 14.0067 0 2 SEG1 1 ALA HT1 HC 3.500000E-01 1.0080 0 3 SEG1 1 ALA HT2 HC 3.500000E-01 1.0080 0 4 SEG1 1 ALA HT3 HC 3.500000E-01 1.0080 0 5 SEG1 1 ALA CA CT 1.500000E-01 12.0110 0 6 SEG1 1 ALA HA HA 5.000000E-02 1.0080 0 ... 40 SEG1 4 ALA C C 1.400000E-01 12.0110 0 41 SEG1 4 ALA OCT1 OC -5.700000E-01 15.9994 0 42 SEG1 4 ALA OCT2 OC -5.700000E-01 15.9994 0 43 SEG1 4 ALA CA CT 1.000000E-01 12.0110 0 42 !NBONDS: bonds 1 2 1 3 1 4 1 5 5 7 5 11 5 6 7 8 7 9 7 10 11 12 11 13 13 14 13 15 15 17 15 21 15 16 17 18 17 19 17 20 21 22 21 23 23 24 23 25 25 27 25 31 25 26 27 28 27 29 27 30 31 32 31 33 33 34 33 43 35 43 36 43 36 37 36 38 36 39 40 43 40 41 40 42 75 !NTHETA: angles 2 1 3 2 1 4 2 1 5 3 1 4 3 1 5 4 1 5 1 5 7 1 5 11 1 5 6 7 5 11 7 5 6 11 5 6 ... 37 36 38 37 36 39 38 36 39 43 40 41 43 40 42 41 40 42 33 43 35 33 43 36 33 43 40 35 43 36 35 43 40 36 43 40 99 !NPHI: dihedrals 2 1 5 7 2 1 5 11 2 1 5 6 3 1 5 7 3 1 5 11 3 1 5 6 4 1 5 7 4 1 5 11 ... 39 36 43 40 41 40 43 33 41 40 43 35 41 40 43 36 42 40 43 33 42 40 43 35 42 40 43 36 7 !NIMPHI: impropers 11 5 13 12 13 11 15 14 21 15 23 22 23 21 25 24 31 25 33 32 33 31 43 34 40 41 42 43
The following is an example of a parameter file.
remark ======================================================== remark Pairwise bonds. ======================================== remark ======================================================== bonds B CT 200.0 1.58 bonds B N 200.0 1.42 bonds B OE 200.0 1.36 bonds B OT 200.0 1.325 ... bonds SO3 O 660.0 1.44 bonds SO3 OC 260.0 1.57 bonds SO3 OE 260.0 1.57 bonds SO3 OS 237.0 1.54 bonds SO3 OT 260.0 1.57 bonds SO4 O 660.0 1.425 bonds SO4 OC 528.0 1.50 bonds SO4 OE 260.0 1.57 bonds SO4 OS 237.0 1.54 bonds SO4 OT 260.0 1.585 bonds ST ST 172.0 2.04 bonds ST XF 190.0 1.560 remark ==================================== remark Bond angles. ======================= remark ==================================== angle CT B OE 45.0 110.0 angle H B CT 35.0 109.47 angle H B OE 35.0 109.47 angle H B H 35.0 115.0 angle H B HMU 35.0 105.0 angle HMU B HMU 35.0 120.0 angle OE B OE 35.0 112.0 ... angle H ST CT4 50.0 109.47 angle H ST H 55.0 92.1 angle OC ST OC 85.0 109.47 angle PT ST PT 50.0 98.0 angle ST ST PT 50.0 99.5 remark ======================================== remark Dihedral angles ======================== remark ======================================== dihedral H B HMU B 0.5 4 180.0 dihedral HMU B HMU B 0.5 2 0.0 dihedral X B CT X 0.5 3 0.0 dihedral X B OE X 0.5 3 0.0 dihedral X B OT X 0.5 3 0.0 dihedral X B SE X 2.0 2 0.0 dihedral C C CT HA 0.12 2 180.0 dihedral C C NP CT4 2.6 2 180.0 dihedral C C NP H 2.6 2 180.0 ... dihedral C6R C NP C 2.6 2 180.0 dihedral C6R C NP C6R 2.6 2 180.0 dihedral C6R C NP CT 2.6 2 180.0 dihedral C6R C NP H 2.6 2 180.0 dihedral CT C OS CT MULTIPLE= 2 0.49 1 0.0 2.65 2 180.0 dihedral HA C CT CT 0.00 1 180.0 dihedral OA C CT CT MULTIPLE= 2 0.26 1 0.0 1.70 3 180.0 dihedral OA C CT HA 0.30 3 180.0 dihedral OA C CUA1 CUA1 2.2 1 0.0 dihedral OA C CUA2 CUA2 1.8 1 0.0 dihedral OAC C CT CT 0.40 3 180.0 dihedral OAC C OS CT MULTIPLE= 2 0.27 1 0.0 2.65 2 180.0 dihedral OAC C OT H 0.03 1 180.0 dihedral OK C CT CT MULTIPLE= 2 0.55 1 180.0 0.25 4 180.0 remark ====================================================== remark Improper dihedrals =================================== remark ====================================================== improper C C OT O 65.0 0 0.0 improper C C OT OAC 65.0 0 0.0 improper C C5R OS OAC 147.0 0 0.0 improper C C6R OS OAC 147.0 0 0.0 improper C CH1E OS OAC 147.0 0 0.0 improper C CH1E OT OAC 147.0 0 0.0 improper C CH2E OS OAC 147.0 0 0.0 improper C CH2E OT OAC 147.0 0 0.0 improper C CH3E OS OAC 147.0 0 0.0 improper C CH3E OT OAC 147.0 0 0.0 improper C OT CT OAC 147.0 0 0.0 improper C OT CUA1 OAC 147.0 0 0.0 improper C X X C 100.0 0 0.0 improper C X X C5R 90.0 0 0.0 improper C X X C5RP 100.0 0 0.0 improper C X X C5RQ 100.0 0 0.0 improper C X X C6R 100.0 0 0.0 remark ========================================= remark Nonbonded interactions. ================= remark ========================================= remark remark 1-4 interactions remark Atom epsilon sigma epsilon sigma remark kcal/mol kcal/mol nonb AR 2.8591415e-01 3.3497792e+00 2.8591415e-01 3.3497792e+00 nonb B 1.0000000e-02 2.0847030e+00 1.0000000e-02 2.0847030e+00 nonb C 1.4100000e-01 3.3319612e+00 1.4100000e-01 3.3319612e+00 nonb C3 1.4100000e-01 3.3319612e+00 1.4100000e-01 3.3319612e+00 nonb C4 1.4100000e-01 3.3319612e+00 1.4100000e-01 3.3319612e+00 nonb C5R 5.0000000e-02 3.6348668e+00 1.0000000e-01 3.1359635e+00 nonb C5RE 9.0300000e-02 3.7417746e+00 1.0000000e-01 3.3854151e+00 nonb C5RP 5.0000000e-02 3.6348668e+00 5.0000000e-02 3.6348668e+00 nonb C5RQ 5.0000000e-02 3.6348668e+00 5.0000000e-02 3.6348668e+00 nonb C6R 5.0000000e-02 3.6348668e+00 1.0000000e-01 3.1359635e+00 ... nonb RN 1.2343876e+00 4.0090442e+00 1.2343876e+00 4.0090442e+00 nonb SE 4.3000000e-02 3.5101409e+00 4.3000000e-02 3.5101409e+00 nonb XAT 3.2000000e-01 3.8843184e+00 3.2000000e-01 3.8843184e+00 nonb XBR 3.2000000e-01 3.8843184e+00 3.2000000e-01 3.8843184e+00 nonb XCL 2.6000000e-01 3.6705027e+00 2.6000000e-01 3.6705027e+00 nonb XE 8.3286521e-01 3.8486825e+00 8.3286521e-01 3.8486825e+00 nonb XF 1.0000000e-01 3.0290556e+00 1.5000000e-01 2.7617860e+00 nonb XI 8.0000000e-01 3.6348668e+00 8.0000000e-01 3.6348668e+00 remark =============================================================== remark Nonbonded generics. =========================================== remark =============================================================== nonb N* 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb P* 1.0000000e-01 3.3854151e+00 1.0000000e-01 3.3854151e+00 nonb M* 1.0000000e-03 1.1581683e+00 1.0000000e-03 1.1581683e+00 nonb S* 4.3000000e-02 3.3675972e+00 4.3000000e-02 3.3675972e+00 nonb O* 1.5910000e-01 2.8508759e+00 2.0000000e-01 2.4232445e+00 nonb OH1 1.5910000e-01 2.8508759e+00 2.0000000e-01 2.4232445e+00 nonb N 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NC 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NP 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NR 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NX 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NC2 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NH1 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NH2 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 nonb NH3 9.0000000e-02 3.2606893e+00 1.0000000e-01 2.9043298e+00 remark =========================================================== remark Explicit VdW pairs ======================================== remark =========================================================== remark remark Explicit 6-12 A-B terms when the above are not good enough: remark remark E(r) = A(i,j)/r^12 - B(i,j)/r^6 remark remark 1-4 Interactions remark A B A B nbfi CT HO 7.971615e+04 2.187000e+02 7.971615e+04 2.187000e+02 nbfi HA HO 3.938313e+04 8.875036e+01 3.938313e+04 8.875036e+01 nbfi HT HT 3.086917e-06 7.534891e-04 3.086917e-06 7.534891e-04 nbfi HT OW 3.278424e+02 1.047233e+01 3.278424e+02 1.047233e+01 nbfi OSH O2M 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 nbfi OSH OSH 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 nbfi OW OW 5.820175e+05 5.950097e+02 5.820175e+05 5.950097e+02
Note that many of the variable entries have two page numbers. In nearly every case, the first number indicates the page on which the table, in which the variable appears, begins, while the second number indicates the page on which the variable actually appears. Jump to: ! - - - 1 - a - b - c - d - e - f - g - h - i - l - m - n - o - p - r - s - t - u - v
Jump to: ! - 1 - a - b - c - d - e - f - g - h - i - l - m - n - o - p - q - r - s - t - u - v - w - x
This document was generated on 20 March 2000 using the texi2html translator version 1.52.