CHARMM c24 intcor.doc



File: INTCOR ]-[ Node: Top
Up: (commands.doc) -=- Next: Syntax


                The Internal Coordinate Manipulation Commands

        The commands in this section can be used to construct cartesian
coordinates from internal coordinate values. The internal coordinate
data structure can also be used for analysis purposes.
There are flexible editing commands for manipulating the data structure.
When these commands are used in conjunction with the Coordinate
Manipulation commands (see *note Corman:(corman.doc).)  and the
I/O commands (see *note IO:(io.doc).), a rather complete model
building facility exists.

* Menu:

* Syntax::              Syntax of the internal coordinate commands
* Function::            Purpose of each of the commands
* Structure::           Description of the structure of internal coordinates


File: INTCOR ]-[ Node: Syntax
Up: Top -=- Next: Function -=- Previous: Top


                Syntax of Internal Coordinates commands

[SYNTAX IC - internal coordinate tables]

        IC  { PARAmeters [ALL]                        }
            { FILL         [COMP] [APPEnd] [PREServe] }
            { DIFFerences  [COMP] [APPEnd]            }
            { DERIvatives  [COMP] [APPEnd]            }
            { DYNAmics  dynamics-spec                 }
            { EDIT                                    }
            { BUILd   [COMP]                          }
            { SEED atom atom atom  [COMP]             }
            { PURGe                                   }
            { SCALe scale-spec                        }
            { RANDom  [ISEEd int]                     }
            { GAUSsian UNIT int  atom atom atom       }
            { PUCKer 5x(atom) ANGLe real AMPL real    }
            {                                         }
            { { DELete }  { BYNUM int [int]  }        }
            { { KEEP   }  { ic-selection     }        }
            {                                         }
            { SAVE     [PREServe]                     }
            { RESTore  [PREServe]                     }
            {                                         }
            {  READ  [FILE] [APPEnd] UNIT int         }
            {  WRITe [FILE] [RESId]  UNIT int         }
            {  PRINt                                  }

atom::= {residue-number atom-name}
        { segid  resid atom-name }
        { BYNUm  atom-number     }

dynamics-spec::= { [AVERages]   }    [FIRStunit int] [NUNIts int]
                 { FLUCtuations }      [BEGIn int] [STOP int] [NSKIp int]

ic-selection::= {                                          } atom-selection
                { [FIRSt] [SECOnd] [THIRd] [FOURth] [IMPR] }
                {                                   [DIHE] }

scale-spec ::= [ BOND real ] [ ANGLe real ] [ DIHEdral real ]
atom-selection ::= see *note select:(select.doc).

        The syntax for the EDIT subcommands are:

{ DISTance   atom   atom   real                       }
{ ANGLe      atom   atom   atom   real                }
{ DIHEdral   atom   atom  [*]atom  atom   real        }
{ END                                                 }



File: INTCOR ]-[ Node: Function
Up: Top -=- Next: Structure -=- Previous: Syntax


            Purpose of the various Internal Coordinate commands

Description :
        These commands are used to setup, modify and process the
internal coordinates of the molecule. This operation is very useful
in setting up atom coordinates whenever they are not known. This
occurs when a protein structure is built from scratch or when an
existing structure is modified. The modification can be simply a
conformational change, or a change in the residue sequence through
replacement, insertion, or deletion. Many of these modifications can
be processed within the program as it currently stands. Other more
difficult modifications can be facilitated by editing the internal
coordinate card file by using external programs.
        This facility is also useful as an analysis tool. Several support
program use the output from IC tables for conformational analysis
(phi-psi maps, ring pucker, pseudorotational angles, solvent structure,...).


Command ordering :

        The Internal Coordinate commands (except EDIT and READ) can only be
used if internal coordinates exist (i.e. if the IC common is filled).
This can only be filled by reading an IC file, or by using the SETUp
keyword in the GENErate or PATCh commands. The information used to setup
is obtained from the residue topology file used in the generation process.

Subcommand interpretation :

1) PARAmeter - Fill table with parameter values

        Fill the internal coordinates using standard values from
the parameter file, unless otherwise specified in the residue topology
file (see RTF:(IO)Rtf File Formats.). A value of zero for any bond or
angle (not dihedral) indicates that this value should be obtained
from the parameters. If the ALL keyword is specified, then all angle
and bond values will be filled from the parameter set regardless of the
existing values. Setting bond and angles values to zero with the IC edit
command makes it possible to selectively use this command.

2) FILL - Convert from cartesian to internal coordinates

        Fill the internal coordinate values wherever possible from the
known atomic coordinates. IC's for atoms that are not placed are zeroed
unless the PREServe keyword is specified, in which case the entries are not
modified. If the COMP keyword is used, then The alternate coordinate set
will be used to fill the IC data structure. The APPE option will add
the current values to the existing values of the table.

3) DIFFerence - Fill table with the difference of two structures

        The DIFF command will cause the IC table entries to be filled
with differences of internal coordinate values. Normally the
values are filled (MAIN-COMP), but this is reversed if the COMP
keyword is used. The APPEnd keyword will cause the differences
to be added to the existing IC table values.

4) DERIvative - Fill table with internal derivatives

        The DERIvative command will fill the IC table entries with the
analytical internal derivatives associated with a particular vector
(velocity, forces, or normal mode are typical examples). Normally, it is
assumed that the vector is stored in the main coordinate set and the
coordinates are stored in the comparison set. If the COMP keyword is
specified, then their roles are reversed. The APPE keyword will cause
the new values to be added to the existing table values.

5) DYNAmics - Fill table with dynamic averages or fluctuations.

        The IC DYNAmics command generates averages or fluctuations for
the IC table from a dynamics trajectory. The syntax is;

IC DYNAmics  { [AVERages]   }     [FIRStunit int] [NUNIts int]
             { FLUCtuations }        [BEGIn int] [STOP int] [NSKIp int]

Either the averages, or the fluctuations about the current table values
can be computed. The sequence;

        IC FILL
        IC DYNAmics AVERage ...
        PRINT IC
        IC DYNAMics FLUCtuations ...
        PRINT IC

will print out the averages and fluctuations about the averages. For
dihedrals, whether computing fluctuations or averages, a reference value
is subtracted before summing (i.e. values are always within 180 degrees
of the reference value), thus explaining the need for the IC FILL command
preceeding the first IC DYNAmics command.

6) EDIT - Add to or modify the IC table elements

        Edit the internal coordinate file. This command causes the
input stream to transfer to the IC edit mode. The edit mode
commands are:
                DIST atom atom real
                ANGLE atom atom atom real
                DIHE atom atom [*]atom atom real
                END

         atom::= {residue-number atom-name}
                 { segid  resid atom-name }
                 { BYNUm  atom-number     }

These commands will specify a particular internal coordinate value.
All occurences of the specified item will be modified.
If the specified atoms have no corresponding IC table entry,
then a new IC entry will be added for these specified atoms.
For the ANGLe option when a new IC entry is added, the corresponding
1-2 and 2-3 distances will be filled from other existing values
(or left as zeros). For the DIHEdral option, an optional '*' on the third
atom denotes that this is the central atom of an improper dihedral type.
When adding a new IC entry for dihedrals, the associated bond and angle
terms are filled from existing table values is possible, otherwise,
they are added with zeros.
The END command is used to exit from the edit IC mode.

7) BUILd - Convert from internal to cartesian coordinates

        This command determines the cartesian coordinates for all
unspecified atoms from the data in the IC file (wherever possible).
The user is responsible to make sure that the designation for all atoms
is unique. In the case that the system is over specified, An atom is
placed on the first opportunity (no checking is done for currently placed
atoms). If it is desired to modify the position of atoms with known
coordinates, the coordinates for those atoms must be reinitialized using
the COOR INIT command. If an IC element contains a zero bond length or
angle (not dihedral), then it will not be used to place the terminal atom.
This option is useful in cases where the system is overspecified and
building is not desired for some IC's. For example;
IC:  2 O4' 2 C2' 2 C1' 2 H1' 0.0 0.0 120.0 109.5 1.0
can be used to place H1' but will not place atom O4'. Again, if the COMP
keyword is used, then the alternate coordinate set will be used and modified.

8) SEED - Place first three atoms for building reference

        When the cartesian coordinates are not specified for any atoms,
the BUILd command cannot be used to generate positions since all positions
are determined relative to known positions. The SEED command specifies the
positions of the three atoms . It puts the first at the origin, the second
on the x-axis, and the third in the xy-plane. The three atoms must have
entries in the IC file corresponding to: dist 1-2, angle 1-2-3, dist 2-3.
The COMP keyword causes the alternate coordinate set to be used.


9) DELEte - Delete selected elements from the table

        This commands deletes a specified set of IC's from the data file.
The delete can be by number (using the BYNUM keyword and a range), or by
atoms selection. Any IC that contains a selected atom will be removed.
By default, the atom can match in any position. However, a specific match
may be requested by specifying one or more of (FIRSt,SECOnd,THIRd,FOURth).
Specifying all of them is equivalent to the default.  Also, the keywords
DIHE or IMPR may be used to select to delete only those which represent
normal dihedrals (DIHE), or those of type improper (IMPR).

10) KEEP - Delete all non-selected elements from the table

        The keep command is the logical opposite of the DELEte
command. Its options are identical, except that the selected set of IC's
is kept, and the remaining ones are deleted. As in the IC DELEte command,
a positional match may be selected.  Also, the keywords DIHE or IMPR may
be used to additionally keep all entries which represent normal
dihedrals (DIHE), or those of type improper (IMPR).

11) PURGe - Clean up the IC table

        The PURGe command will cause all IC's that contain undefined atoms
to be deleted. This is not automatic because sometimes it is desirable
to keep partial IC table entries (where less than 4 atoms are defined).

12) SCALe - Scale all table elements by a factor.

        The SCALe command will multiply all elements of a table by a
constant factor. This is primarily used when the table contains IC
differences or derivatives, and new structures are to be generated after
following the scale command be an IC FILL APPEnd command.

13) RANDom - Randomize all dihedral values

      The RANDom command will randomize all dihedral values in the
table.  It will use and modify the specified ISEED value.  To randomize
a subset of dihedral values, the following procedure may be optimal:

      [read in RTF, PARAM, and sequence]
      GENErate MAIN   SETUp ! generate segment with IC table
      IC PARAM   ! fill zeroes in IC table with optimal parameter values
      IC SAVE    ! save the entire IC table
      IC DELEte IMPRoper ! get rid of improper IC terms
      IC DELEte .... ! get rid of dihedrals that will not be randomized
      IC KEEP   .... !  "
      IC PRINT    ! print to check if correct dihedrals are randomized
      IC RANDOM ISEED 12345678 ! Randomize all remaining IC dihedral values
      IC RESTore PREServe ! add all IC entries that are not randomized
      IC SEED ... ! start the build process
      IC BUILD    ! complete the build process
      COOR ORIENT MASS ! align the center of mass with the origin



14) SAVE - Save the current IC table

      The SAVE command will copy the current IC table to a second
IC table for later retrieval.  If the PREServe keyword is specified,
then any IC elements already in the second table will be unmodified.

15) RESTore - Restore a previously saved IC table

      The RESTore command will copy the saved IC table (See IC SAVE
command) to the current IC table.  If the PREServe keyword is specified,
then any IC elements already in the IC table will be unmodified.

16) GAUSsian - Make a GAUSSIAN86 input file from CHARMM coordinates

      The GAUSsian command will make a GAUSSIAN86 coordinate in Z-matrix
form for use with the popular ab initio program.  The MAIN coordinates
will be used unless the COMP keyword is specified.  The first three atoms
must be specified (in the IC SEED format) and an output unit number must
be specified for a write access file.

17) PUCKer - Set the ring pucker to a specified value.
              ....



File: INTCOR ]-[ Node: Structure
Up: Top -=- Previous: Function -=- Next: Top


Internal Coordinate concepts:

        Given the positions of any three atoms, the position of a fourth
atom can be defined in relative terms (internal coordinates) with three
values: a distance, an angle, and a dihedral specification. Where many
atoms are connected in a long sequence (as in proteins) it is easiest
to consider four atoms in a chain. If the positions of one end of the chain
is known, it is possible to find the positions of all of the remaining atoms
with a series of internal coordinate values. But in the more general case,
where some central portion of a molecule is known it is necessary to be able
work in both directions. This lead to the present form of the internal
coordinate data structure (five values for four atoms) where if either
endpoint is unknown and the other three atoms are determined, the position
of the end atom can be found.
        The improper type of internal coordinate data structure was created
for branching structures (as opposed to simple chains). Since there are
roughly five values in the data structure for every atom it is clear that
the positions are overspecified. Keep this in mind when externally editing
IC files. The program will use the first acceptable value when building
a structure and ignore any redundancies. The EDIT commands will always
modify all occurences of each edited parameter.

Normal IC table entry:
                I
                 \
                  \
                   J----K
                         \
                          \
                           L
        values (Rij),(Tijk),(Pijkl),(Tjkl),(Rkl)

Improper type of IC table entry
                I        L
                 \     /
                  \   /
                   *K
                   |
                   |
                   J
        values (Rik),(Tikj),(Pijkl),T(jkl),(Rkl)


Internal Coordinate file structure:

        The internal coordinate file can be stored in either card or binary
form. for most purposes the card form will be used (since it can be edited).
There are two types of elements in the internal coordinate file, those that
correspond to normal dihedral angles and those that correspond to improper
dihedrals. They can be distinguished by the presence of a '*' just before
the iupac name of the third (K) atom (its presence denotes an improper
dihedral type).
        For each element there are four atoms (referred to as I,J,K,L) and
five values. Elements of the IC file are symmetric with respect to
inverting the order of the atoms except that for improper types only atoms
I and L can be interchanged (also the sign of phi must be changed since
phi(IJKL)=-phi(LJKI)  ).

CHARMM .doc Homepage


Information and HTML Formatting Courtesy of:

NIH/DCRT/Laboratory for Structural Biology
FDA/CBER/OVRR Biophysics Laboratory