Amber is a suite of biomolecular simulation programs. The term "Amber" refers to two things. First, it is a set of molecular mechanical force fields for the simulation of biomolecules (these force fields are in the public domain, and are used in a variety of simulation programs). Second, it is a package of molecular simulation programs which includes source code and demos.
Sample Script:
#!/bin/sh
#SBATCH --job-name=p.1m
#SBATCH --nodes=1
#SBATCH --time=14-00:00:00
#SBATCH --gres=gpu:1
#SBATCH --error=job.%J.err
#SBATCH --output=job.%J.out
#SBATCH --partition=standard
#SBATCH --ntasks-per-node=1
module load apps/amber/parallel_studio_xe_2019.3.062/18
cd /scratch/aritra18/prot-urea1M
parm="prot-312urea-10000wat.prmtop"
input="prod.in"
common=pd-1M-
time=ns
out=.out
rst=.rst
crd=.nc
oldfile="final_eq2.rst"
pta="/apps/amber/18/amber18" ## pta = Path to Amber
# Steps following minimization are run using the CUDA implementation of PMEMD
# Heating the system from 0K to 300K using Langevin thermostat for a time duration of 400ps
$pta/bin/pmemd.cuda -O -i heat_0_40.in -o heat_0_40.out -p $parm -c min.ncrst -r heat_0_40.rst -x heat_0_40.nc
$pta/bin/pmemd.cuda -O -i heat_40_80.in -o heat_40_80.out -p $parm -c heat_0_40.rst -r heat_40_80.rst -x heat_40_80.nc
$pta/bin/pmemd.cuda -O -i heat_80_120.in -o heat_80_120.out -p $parm -c heat_40_80.rst -r heat_80_120.rst -x heat_80_120.nc
$pta/bin/pmemd.cuda -O -i heat_120_160.in -o heat_120_160.out -p $parm -c heat_80_120.rst -r heat_120_160.rst -x heat_120_160.nc
$pta/bin/pmemd.cuda -O -i heat_160_200.in -o heat_160_200.out -p $parm -c heat_120_160.rst -r heat_160_200.rst -x heat_160_200.nc
$pta/bin/pmemd.cuda -O -i heat_200_240.in -o heat_200_240.out -p $parm -c heat_160_200.rst -r heat_200_240.rst -x heat_200_240.nc
$pta/bin/pmemd.cuda -O -i heat_240_280.in -o heat_240_280.out -p $parm -c heat_200_240.rst -r heat_240_280.rst -x heat_240_280.nc
$pta/bin/pmemd.cuda -O -i heat_280_300.in -o heat_280_300.out -p $parm -c heat_240_280.rst -r heat_280_300.rst -x heat_280_300.nc
##Equilibration under NVT condition at 300K for 50ps
$pta/bin/pmemd.cuda -O -i nvt_eq_300K.in -o nvt_eq_300K.out -p $parm -c heat_280_300.rst -r nvt_eq_300K.rst -x nvt_eq_300K.nc
##Equilibration under NPT condition at 300K for 50ps
$pta/bin/pmemd.cuda -O -i npt_eq_300K.in -o npt_eq_300K.out -p $parm -c nvt_eq_300K.rst -r npt_eq_300K.rst -x npt_eq_300K.nc
##Cycle for simulated annealing starts here
# Cycle 1: Heating1
$pta/bin/pmemd.cuda -O -i heat_300_350.in -o heat_300_350.out -p $parm -c npt_eq_300K.rst -r heat_300_350.rst -x heat_300_350.nc
$pta/bin/pmemd.cuda -O -i nvt_eq_350K.in -o nvt_eq_350K.out -p $parm -c heat_300_350.rst -r nvt_eq_350K.rst -x nvt_eq_350K.nc
$pta/bin/pmemd.cuda -O -i npt_eq_350K.in -o npt_eq_350K.out -p $parm -c nvt_eq_350K.rst -r npt_eq_350K.rst -x npt_eq_350K.nc
# Cycle 2: Heating2
$pta/bin/pmemd.cuda -O -i heat_350_400.in -o heat_350_400.out -p $parm -c npt_eq_350K.rst -r heat_350_400.rst -x heat_350_400.nc
$pta/bin/pmemd.cuda -O -i nvt_eq_400K.in -o nvt_eq_400K.out -p $parm -c heat_350_400.rst -r nvt_eq_400K.rst -x nvt_eq_400K.nc
$pta/bin/pmemd.cuda -O -i npt_eq_400K.in -o npt_eq_400K.out -p $parm -c nvt_eq_400K.rst -r npt_eq_400K.rst -x npt_eq_400K.nc
# Cycle 3: Cooling1
$pta/bin/pmemd.cuda -O -i cool_400_350.in -o cool_400_350.out -p $parm -c npt_eq_400K.rst -r cool_400_350.rst -x cool_400_350.nc
$pta/bin/pmemd.cuda -O -i nvt_eq_350K.in -o nvt_eq_350K-1.out -p $parm -c cool_400_350.rst -r nvt_eq_350K-1.rst -x nvt_eq_350K-1.nc
$pta/bin/pmemd.cuda -O -i npt_eq_350K.in -o npt_eq_350K-1.out -p $parm -c nvt_eq_350K-1.rst -r npt_eq_350K-1.rst -x npt_eq_350K-1.nc
# Cycle 4: Cooling2
$pta/bin/pmemd.cuda -O -i cool_350_300.in -o cool_350_300.out -p $parm -c npt_eq_350K.rst -r cool_350_300.rst -x cool_350_300.nc
$pta/bin/pmemd.cuda -O -i nvt_eq_300K.in -o nvt_eq_300K-1.out -p $parm -c cool_350_300.rst -r nvt_eq_300K-1.rst -x nvt_eq_300K-1.nc
# Final Equilibration
$pta/bin/pmemd.cuda -O -i final_eq1.in -o final_eq1.out -p $parm -c nvt_eq_300K-1.rst -r final_eq1.rst -x final_eq1.nc -ref nvt_eq_300K-1.rst
$pta/bin/pmemd.cuda -O -i final_eq2.in -o final_eq2.out -p $parm -c final_eq1.rst -r final_eq2.rst -x final_eq2.nc
##Production
for index in $(seq 4 4 500)
do
newfile="$common$index$time"
timestep="$index$time"
output="$newfile$out"
coord="$newfile$rst"
traj="$newfile$crd"
$pta/bin/pmemd.cuda -O -i $input -o $output -p $parm -c $oldfile -r $coord -x $traj
echo " Completed time step $timestep" >> progress.txt
oldfile=$coord
done