source leaprc.ff14SB
source leaprc.gaff
loadAmberPrep gu1.in
addPath ../Leap
loadAmberPrep gu2.in
loadAmberParams gu.dat
x = loadpdb
prot.start
solvateOct x TIP3PBOX 10
saveamberparm x
prot.prm prot.rst
savepdb x prot.pdb
x = loadpdb
wat.start
solvateOct x TIP3PBOX 10
saveamberparm x
wat.prm wat.rst
savepdb x wat.pdb
quit
You can rotate the molecule before the solvation with
(before solvateOct):
transform x {
{1 0
0 }
{0 0.342020
-
0.939693
}
{0
0.939693
0.342020
}
}
This is a rotation of 70 degrees.
This worked well for the protein, but not for the free ligand;
use SIIT instead.
A general program has been developed as a cooperational project
in UK to set up TI and MM/PBSA calculations in Amber (among other
programs).
It is described in
http://ccpforge.cse.rl.ac.uk/gf/project/ccpbiosim/wiki/
Samuel Genheden, 2012; Modified by UR 8/5-13
l01.in
and
l02.in
.
It is important the ligand atoms have the same name in both
.in-files, apart from the atoms that will be perturbed. l01
)
bound. It should be named prot-l01.pdb
, where prot
is the protein name and l01
is the name of the
first ligand. Note!: The direction off the perturbation is important
in the setup, due to technical reasons. The first ligand (l01
)
should have more or equal number of atoms than the
second ligand (l02
)
Note 2!: The naming of the input files are important if the black-box script should be used
leap_lig.inp
that looks similar to this:
source leaprc.gaff
loadamberprep l01.in
loadamberprep l02.in
saveoff L01 a.off
saveoff L02 b.off
saveamberparm L01
a.prm a.rst
saveamberparm L02
b.prm b.rst
quit
Change l01
and l02
to the name of your ligands. You might have to load additional
parameters and insert an
addPath command.
Execute tleap
tleap -f leap_lig.inp
This execution will create off-files as alternatives to in-files that are easier to manipulate. It will also create prmtop-files for the two ligand that now will be used to extract perturbation information
Execute the following commands:
changeparm << EOF
a.prm
qfep
L01
q
EOF
and then for the other ligand
changeparm << EOF
b.prm
qfep
L02
q
EOF
The changeparm execution will create *.charges
and *.vdws files that will be used to set up perturbation
files. The perturbation files will be created with the following
command
xxx This
step can be improved
mv l01.charges
a.charges
mv l02.charges
b.charges
mv l01.vdws
a.vdws
mv l02.vdws
b.vdws
/temp4/bio/Dg_tools/make_pertoffs_all.py a b
Answer the questions about corresponding atoms. If an atom does not have a corresponding atom, just press enter.
The script will create an amb_masks
file that
contains soft-core masks for Amber and a bash-script rename.bash
that will be used in a moment. Most importantly, the script will
reorder the atoms in the *.off-files such that the unique
atoms are last in the ligand, an Amber requirement.
Edit the amb_masks file to change A and B to the correct name of
the two residues.
leap_templ.inp
that look something like this
source leaprc.ff99SB
source leaprc.gaff
loadoff a.off
x = loadpdb prot-l01.pdb
solvateOct x TIP3PBOX 10
saveamberparm x templ-prot.prm templ-prot.rst
savepdb x prot-a-solv.pdb
x = copy L01
solvateOct x TIP3PBOX 10
saveamberparm x templ-lig.prm templ-lig.rst
savepdb x a-solv.pdb
quit
Change protein and ligand name, add additional parameters, cys-cys bridges, addPath, and possibly protein *.in and *dat files.
Execute tleap
tleap -f leap_templ.inp
This execution will solvate the complex with the first ligand and the first ligand free in solution.
Next, we copy the solvated pdb-files to pdb-files for the second ligand.
cp prot-a-solv.pdb
prot-b-solv.pdb
cp
a-solv.pdb b-solv.pdb
Then we change the residue name of the ligand in the new pdb-files
sed -i "s/L01/L02/" prot-b-solv.pdb b-solv.pdb
Finally, we will remove atoms that are in the first ligand but
not in the second and rename corresponding atoms. This will be
done with the bash-script that was created above
bash rename.bash prot-b-solv.pdb
bash rename.bash b-solv.pdb
This script do not always work properly, especially no for
host-guest systems - check the results or better, do it by hand.
Then, you can also change the bond length of perturbed atoms.
Now, we can read in all the solvated pdb-files in tleap
and create the final prmtop and prmcrd-files that will be used
with sander. Create a file called leap_final.inp
that looks similar to this.
source leaprc.ff99SB
source leaprc.gaff
loadoff a.off
loadoff
b.off
x = loadpdb
prot-a-solv.pdb
setbox x vdw
saveamberparm
x prot-a-solv.prm prot-a-solv.rst
x = loadpdb
a-solv.pdb
setbox x vdw
saveamberparm
x a-solv.prm a-solv.rst
x = loadpdb
prot-b-solv.pdb
setbox x vdw
saveamberparm
x prot-b-solv.prm prot-b-solv.rst
x = loadpdb
b-solv.pdb
setbox x vdw
saveamberparm
x b-solv.prm b-solv.rst
quit
If needed, add additional parameters, Cys-Cys bridges, addPath, and possibly protein *.in and *dat files.
Execute tleap
tleap -f leap_final.inp
The lines setbox x vdw
will set the box of the
prmtop-files but it can only recognize rectangular geometry.
Therefore, we need to edit the box information.
/temp4/bio/Dg_tools/edit_boxinfo_ti.py templ-prot.prm prot-a-solv.prm
prot-a-solv.rst
/temp4/bio/Dg_tools/edit_boxinfo_ti
.py templ-prot.prm
prot-b-solv.prm prot-b-solv.rst
/temp4/bio/Dg_tools/edit_boxinfo_ti
.py templ-lig.prm
a-solv.prm a-solv.rst
/temp4/bio/Dg_tools/edit_boxinfo_ti
.py
templ-lig.prm b-solv.prm b-solv.rst
cp /temp4/bio/Dg_tools/cluster_amblib
.
contains information about how to execute
sander on different clusters.
This file
Check the file that is updated with the proper module information.
Execute
python /temp4/bio/Dg_tools/make_tiinp_rel.py prot a-solv
b-solv
and answer the questions about simulation length and
lambda-values.
Typical values are 500 ps, 1000 ps, and 0.05 0.1 0.2 0.3 0.4 0.5
0.6 0.7 0.8 0.9 0.95.
Copy the prmtop, prmcrd, the group-files, the input-files, the
queue-scripts, and sub.bash
to a cluster of choice.
Execute sub.bash
on the cluster.
If the system requires additional parameters, these should be
added to a file called leap_lines
, e.g.
cat << EOF > leap_lines
loadamberprep ca.in
loadamberparams ca.dat
EOF
Make sure that you have the prerequisite files and that they are named appropriately.
Make sure to change all HETATM
cards in the
pdb-file to ATOM
cards, as I have noticed that the ter-command
in changepdb works better then.
In an appropriate folder where all the perquisite files and
optionally additional parameters and leap_lines
are
located, execute the following command
/temp4/bio/Dg_tools/prep_tiamb.bash L01 L02 prot-l01.pdb
and substitute the ligand residue names and the complex pdb-file.
/temp4/bio/Dg_tools/prep_tiamb_indep.bash
that takes as an
extra argument a number of independent simulations and set up that
number of prmtop and prmcrd-files.
make_tiinp_rel.py
This file should be called buffer
and contains
Amber belly information. This means that all files starts with ATOM
will be assumed to contain two numbers specifying the first and
last atom to be restrained, as well as RES
that will
be assumed to be corresponding residue specifications. E.g.
cat << EOF > bufffer
ATOM 1 48
ATOM 147 200
EOF
or
cat << EOF > buffer
RES 1 2
RES 15 18
EOF
Information will be put in the input files for the two last complex simulations (unrestrained equilibration and production). Only heavy atoms will be restrained.
make_tiinp_rel.py
This file should be called decomp
and should have
two lines. The first line should contain two columns, specifying
the last residue to be decomposed on in the complex and
free-ligand simulation, respectively. The second line should
contain the same information. The difference between line 1 and
line 2, is that the first line is used for V0 and the second line
is used for V1. Use 0 to prevent decomposition. E.g.
cat << EOF > decomp
6567 0
6567 0
EOF
The script that generates the input scripts (make_tiinp_rel.py
)
also create queue-scripts. It uses a file called cluster_amblib
to know cluster-specific commands. One can edit this file
manually, to support additional clusters. An example is shown
below for the Alarik cluster at Lunarc.
!/bin/bash
#SBATCH -N 1
#SBATCH -n 8
#SBATCH -t WWW:00:00
module add gcc/4.6.2
module add openmpi/1.4.5/gcc/4.6.2
export AMBERHOME=/lunarc/nobackup/projects/bio/Amber/Amber11/
export PATH=$AMBERHOME/exe:$PATH
sbatch
mpirun -np NN sander.MPI
8
%end
The first line should start with a percentage sign (%) followed by the name of the cluster.
The cluster specification should end with the line %end
.
The last three lines of the specifications are special. First
the command used on the cluster to add jobs to the queue are
specified (e.g. sbatch
, second the command used to
execute the parallel version of sander, and third the
number of processors to use.
All other lines in the specification are appended to the start
of the queue script and should contains queue-specific lines (e.g.
starting with #SBATCH
), modules that need to be
loaded and paths that need to be set. The AMBERHOME
path must be set. The WWW
mask is special and
will be replaced by an estimated walltime (in hours).