SEAM with Amber

Getting transition-state geometries and energies from force field calculations.

The SEAM method is described in the following references:
This page describes a new implementation for Amber (rather than Macromodel) by Patrik Rydberg, , Jan. 2007

All  files and scripts needed are in /home/bio/SEAM/
The source code is in /home/bio/SEAM/Source. Reading this might be necessary to understand all available options (most are not needed though).
The source code is compiled with the comp.csh script in the same directory.
The program involves library routines from both Blas, Lapack, and Atlas.

The nmode program of Amber need to be slightly modified to write out the Hessian to a file, see below.

To run an optimisation with SEAM some input is needed. Here follows first a list of preparations needed before you start and then an explanation of how to run the SEAM program.

Preparing the input

  1. Create a force field for the start and end structures of the reaction.
    Q2MM (PON parametrisation) is a very useful method if you have non-standard structures.

  2. Create two input files for tleap, one for the start and for the end force fields, both with the same pdb coordinates. Name these X.leap and Y.leap (X and Y can be anything as long as they are the same at all occasions in this document). See the sample file below.
    The two files should generate prmtop and prmcrd files, called X.prmtop and X.prmcrd, and similar for Y.
    The numbering of the atoms in both leap outputs (i.e. the prmtop and prmcrd files) have to be exactly the same. Otherwise SEAM will not work.
    The following two commands gives you output pdb-files to check.
    tleap -f X.leap
    ambpdb -p X.prmtop <X.mdrest >test.pdb

  3. Copy the nmode input files from /home/bio/SEAM to your working directory. These are named nmode.in and nmode_seam.in.
    cp /home/bio/SEAM/nmode*in .

  4. Copy the seam input file (seam.dat) from /home/bio/SEAM to your working directory.
    cp /home/bio/SEAM/seam.dat .

  5. Edit the seam.dat file for your needs.
    ! at the beginning of a line indicates a comment that will be ignored.
    All available options are in the file but only those needed are un-commented in the default file.

    The most important options are described here (those that you should consider to modify). Some more are described in the default seam.dat  file, whereas the other ones are only described in the source code, rddata.f

  6. If you want to fix the coordinates of some atoms, create the file "fixatoms" and list the atom numbers, one on each row.

  7. To get better energies, you can replace the bond dissociation energies of the Morse bond function (used when STRMOD is ON) by creating the file "morsepar" in the following way:
    It should be in four column format with variables
    atomtype1 atomtype2 bond_order energy
    where atom types are Macromodel atom type ids (see extern.f in the source code for transfer from amber types)
    bond_order is 1, 2, or 3
    energy is bond-dissociation energy in kJ/mole.

  8. Using non-standard atom types:
    Atom types in the program are handled using Macromodel types and all the standard atom types from the amber FF99 and gaff force fields have been implemented. To include new atom types, you have to edit the source code in extern.f
    You find the functions atmnamechange (atom type change) and ambbondtype (bond type determination) at the bottom of the file.
    Preferably, an external file could be created from which one could import this data, but this has not been implemented yet.

Running the program

Run the command:
/home/bio/SEAM/seamamber X Y

It will run the calculation until converged (or fail) and give a message when it finishes telling if it has converged or not.
Final energy is available in seam.out together with more data
Final geometry is in X.mdrest and Y.mdrest, both should be the same.
The history of the calculation showing energy convergence, etc. is in the file fort.30



Sample leap input file for X

source leaprc.ff03
loadAmberPrep prep.in
loadAmberParams frcmod.file
x=loadpdb startstructure.pdb
check x
saveamberparm x X.prmtop X.prmcrd
quit


Modifications of Amber nmode

Three files are modified: inpdat.h, rdinp.f, and nmode.f.
Note that PON parametrisation uses the massweighted hessian (iulf=1) whereas SEAM uses the unweighted Hessian (iulf1=1

diff inpdat.h~ inpdat.h
10c10
<       ipol,i3bod,ismem
---
>   ipol,i3bod,ismem,iulf,iulf1



diff rdinp.f~ rdinp.f
38c38
<          ipol,i3bod,ismem
---
>          ipol,i3bod,ismem,iulf,iulf1
91a92
>    iulf=0



diff nmode.f~   nmode.f
181a182
>          if ((iulf.eq.0).and.(iulf1.eq.0)) then
182a184
>          endif
184a187,206
>       !       ----- Dump coordinates force and Hessian
>       !       ----- Added by Ulf Ryde, 20/9-06
>       if (iulf1.gt.0) then
>          write(6,*)' '
>          write(6,*)mx,mf,mh
>          open(73,file='hessian',status='unknown',form='formatted')
>          write(73,'(i9)')natom
>          write(73,'(a)')'Coordinates'
>          write(73,'(3f16.8)')(x(mx+i),i=0,3*natom-1)
>          write(73,'(a)')'Forces (not mass weighted)'
>          write(73,'(3e16.8)')(x(mf+i),i=0,3*natom-1)
>          write(73,'(a)')'Hessian (not mass weighted)'
>          k=0
>          do i=1,natom*3
>             write(73,'(6e16.8)')(x(mh+k+j),j=0,i-1)
>             k=k+i
>          enddo
>          close(73)
>       endif
>
189a212,230
>       !       ----- Dump coordinates force and Hessian
>       !       ----- Added by Ulf Ryde, 28/11-05
>       if (iulf.gt.0) then
>          write(6,*)mx,mf,mh
>          open(73,file='hessian',status='unknown',form='formatted')
>          write(73,'(i9)')natom
>          write(73,'(a)')'Coordinates'
>          write(73,'(3f16.8)')(x(mx+i),i=0,3*natom-1)
>          write(73,'(a)')'Forces (mass weighted)'
>          write(73,'(3e16.8)')(x(mf+i),i=0,3*natom-1)
>          write(73,'(a)')'Hessian (mass weighted)'
>          k=0
>          do i=1,natom*3
>             write(73,'(6e16.8)')(x(mh+k+j),j=0,i-1)
>             k=k+i
>          enddo
>          close(73)
>       endif
>