Interface amber

Interface to the AMBER molecular dynamics package (, commercial software). It provides MM calculations using the AMBER family of forcefields.

Besides performing the MM calculations, the interface also handles the preparation of the calculation from a PDB file. The PDB file must be in a format recognized by AMBER and if it contains residues not included in the forcefield, additional parameter files have to be provided.


In latest versions of AMBER, the names of the leaprc files distributed as a part of the AMBERTOLLS package changes, and some of them were moved to a directort 'oldff'. Therefore, some of the examples provided here may need to be edited (as suggested in the comments) in order to run.

Native optimization support

The AMBER interface supports the native_opt protocol which allows offloading a geometry optimization to AMBER.

In addition to complete optimization, it is possible to optimize or anneal only hydrogens. This is controlled by the keyword amber_opt_mode. Convergence limit, number of steps and some setup for the annealing can be controlled directly from cuby – see the list of keywords below.

Solvent models

The interface supports a range of implicit solvent models implemented in AMBER. There are multiple versions of the Generalized Born model (GBM and IGBx), and the Poisson-Boltzmann model (PB). For each model, the corresponding radii are written to the prmtop file.

By default, only the electrostatic contribution (dielectric screening) is calculated, the non-polar terms can be added using the keywords amber_gbsa and amber_pbsa for GB and PB models, respectively.

Methods and capabilities

The interface implements following methods (specified by keyword 'method'):

All the methods support calculation of following properties:

The interface implements following solvent models (keyword 'solvent_model'):

The interface implements following atomic charge types (keyword 'atomic_charges'):

Keywords used

Keywords specific for this interface:

Other keywords used by this interface:


The following examples, along with all other files needed to run them, can be found in the directory cuby4/interfaces/amber/examples

# Amber example 1: simplest energy calculation

# Forcefield energy calculation of a small protein

job: energy

interface: amber
# Note: method does not have to be specified,
# the interface do not implement more methods

geometry: trpcage.pdb
# The tryptofan cage miniprotein.
# The geometry has to be in PDB format

# Interface configuration
# The path to amber has to be specified. This should be the base directory
# of the amber installation (when the amber environment is set up, this path
# can be found in $AMBERHOME).
# This configuration is usually done not in the input file, but in a config file
# ~/cuby4_config.yaml

amber_amberhome: /home/rezac/bin/amber/amber11/arch/amd64-intel_11.0.081/amber11
# Provide the actual path on your system here

# Defaults assumed
# The input is so simple because it uses default values for several keywords
# needed for the calculations. For this interface, these are:

# amber_leaprc: ["$AMBERHOME/dat/leap/cmd/leaprc.ff03.r1", "$AMBERHOME/dat/leap/cmd/leaprc.gaff"]
# a path(s) to one or more leaprc files, which are used to generate the
# forcefield parameters and molecule topology (the prmtop file) from the geometry
# in PDB format. By default, the ff03 and gaff forcefields are loaded
# from the amber innstallation dir specified by amber_amberhome.

# amber_top_file (not set)
# when this keyword is not set, cuby generates the prmtop file automatically

# amber_input_file (not set)
# when this keyword is not set, cuby generates the input for the calculation

# amber_sander_exe: "$AMBERHOME/bin/sander"
# by default, the sander executable (which runs the actual calculation) from
# the amber directory (specified by amber_amberhome) is used

# amber_ld_path: ""
# when the amber binaries depend on libraries that can not be found automatically,
# specify the path to them here and it is appended to the LD_LIBRARY_PATH
# environment variable before amber is run
# Amber example 2: Geometry optimization

# Geometry optimization of a peptide using an user-specified forcefield

# This example assumes that the interface is already configured, and uses some
# default values - see example 1 for reference. 

job: optimize
interface: amber
geometry: ace-ala-nme.pdb

amber_leaprc: $AMBERHOME/dat/leap/cmd/leaprc.ff99SB
# We use another forcefiled available in amber, defined in this file
# (This one is older than the ff03 forcefield used by default)
# For newer versions of amber, use the following:
# amber_leaprc: $AMBERHOME/dat/leap/cmd/oldff/leaprc.ff99SB

# The calculation creates two files:
# - contains all the geometries along the optimization
# - the optimized structure
# Amber example 3: Getting atomic charges

# The interface can be used to extract atomic charges from the forcefield
# for the calculated system. The input is the same as for a real calculation
# of the charges by other methods.

job: atomic_charges
interface: amber
geometry: ../02/ace-ala-nme.pdb

atomic_charges: forcefield
# The type of the charges must be provided, in this case "forcefield" is
# the only option.

# Amber example 4: Solvation

# In this example, solvation energy is calculated as a difference between
# a calculation using implicit solvent and another gas phase calculation.
# To get the result from a single cuby job, composite interface mixer is
# used to run both calculations in parallel and subtract the results.

job: energy
interface: mixer

geometry: ../02/ace-ala-nme.pdb

print: energy_decomposition
# print components of the final energy, in this case energies of the two
# separate calculation (optional)

cuby_threads: 2
# run the two separate calculation in parallel (optional)

mixer_weight_a:  1.0
mixer_weight_b: -1.0
# This defines the weights (wA, wB) of the calculations, the resulting energy
# is then E = wA * E(A) + wB * E(B)

# The two calculations are defined as separate blocks of the input (the block
# name comes first, the contents of the block are then indented).

calculation_a: # Calculation in implicit solvent (GBM)
  interface: amber
  solvent_model: gbm
  # here, the solvent model is defined, the possible options are gbm and igb7
  # dilelectric constant can be specified by keyword solvent_epsilon,
  # the value of 78.5 (water) is used by default

  interface: amber
  # amber calculation, everything set to default
# Amber example 5: Using a user-modified forcefield

# Geometry optimization of a peptide using an forcefield with a new
# residue defined by the user

# This example assumes that the interface is already configured, and uses some
# default values - see example 1 for reference. 

job: energy
interface: amber

geometry: peptide-fma.pdb
# The geometry contains a residue not defined in the forcefield - formic acid,
# residue name 'fma'

amber_leaprc: # use if you have newer version of amber
# We use a custom leaprc file that
# 1) loads the amber forcefield for the peptide part
# 2) loads the gaff forcefield for general organic molecules
# 3) adds parameters missing in the gaff forcefileld - the frcmod file
# 4) loads the template for the 'fma' residue - a mol2 file
#    this file also contains the atomic charges for this molecule

# AN IMPORTANT FEATURE is used here: every leaprc file is preprocessed
# by cuby and following patterns are replaced with actual paths:
# %amberhome (path to amber installation)
# %home (path to home directory)
# %cuby (path to cuby inctallation)
# %pwd (path curernt working directory)
# This allows easy construction of portable leaprc files combining
# data from different sources.

# The parameters for an unknown molecule can be generated by the
# antechamber program packaged with AMBER, see the documentation for more
# information.
# Amber example 6: Use of external point charges

# Geometry optimization of a water molecule in external electric field created
# by two point charges along the x axis. In the optimization, the molecule
# aligns with the field.

job: optimize
interface: amber

geometry: water.pdb

remove_translation: yes
remove_rotation: no
# Allow rotation, by default both translational and rotational components of
# the gradient are removed.

point_charges: |
  10.0  0.0 0.0   1.0
  -10.0 0.0 0.0  -1.0
# A list of point charges, four numbers (x, y, z, charge) per line.