| Objective and Overview The objective of this tutorial is to
      learn how to use the MMTSB Tool Set for carrying out and analyzing simulations with CHARMM. 
 
	
	  | In this tutorial the engrailed homeodomain from Drosophila melanogaster is used as an example. A crystal structure 
	      is available from the Protein Data Bank 
	      with the PDB code 
	      1ENH. A picture is shown on the right. |   |  1. Initial StructureBegin by downloading/copying the PDB file for the engrailed homeodomain (1ENH). Extract the protein
    atoms from the PDB file with:    convpdb.pl -nsel protein 1ENH.pdb > 1enh.protein.pdb
In this structure hydrogens are still missing. Because the all-atom force field we will
    be using needs all atoms including hydrogens we need to add them. This can
    be done with complete.pl:     complete.pl 1enh.protein.pdb > 1enh.protein.allh.pdb
Check the result and verify that the structure is indeed complete now. This
    tool will also help adding missing atoms, however, it cannot add missing 
    residues. 2. Energy MinimizationBefore we can run any simulation we have to minimize the protein conformation. 
    As a somewhat realistic but very fast method for representing aqueous solvent 
    we will use a distance dependent dielectric function with an epsilon value of 4. 
    We will also use restraints on the C-alpha coordinates in order to preserve the 
    overall shape of the initial structure: 
    minCHARMM.pl -par dielec=rdie,epsilon=4,minsteps=50 \
                 -cons ca self 3:56_1.0 -log min.log \
                  1enh.protein.allh.pdb > 1enh.min.pdb
This script will carry out steepest descent minimization first and then a more effective
    minimization method (Adopted-Basis Newton-Raphson) over 50 steps.  The result is normally
    written to standard output, so we need to redirect it into a file.
    Take a look at the CHARMM output in the file min.log and see how the
    energy decreases rapidly during the minimization run.
 The minimized structure can now be used to start a molecular dynamics simulation.
 3. Explicit Solvent SimulationNext, we will setup a simulation box for an explicit solvent simulation.
    First, we need to solvate our protein in a box of water:  convpdb.pl -solvate -cubic -cutoff 9 1enh.min.pdb > 1enh.solvated.pdb
    This command generates a cubic box of waters around the protein so that there are at least
    9 Angstroms (~3 water layers) between the protein and the edge of the box. If you use a
    smaller cutoff you risk periodic artifacts, with a larger cutoff the simulation will quickly
    become much more expensive. Write down the size of the box from the output and take a look   
    at the resulting file with VMD. Nice water box, isn't it?
 We are almost ready to start the simulation, but with explicit solvent we also need to
    think about ions. First, let's check what the charge of the protein is:
   enerCHARMM.pl -charge 1enh.min.pdb
    You should find that the engrailed homeodomain has a charge of +7. Therefore, we need to
    add 7 negatively charged counterions. We will use chlorine ions that can be added
    by replacing water molecules randomly with the following command:  convpdb.pl -ions CLA:7 1enh.solvated.pdb > 1enh.waterions.pdb
    Let's check the charge of the entire sytem again:  enerCHARMM.pl -charge 1enh.waterions.pdb
    If the result is not zero, something went wrong.
 We will now minimize the entire simulation box again (fill in the actual boxsize
    instead of xxx):
   minCHARMM.pl -par minsteps=50,boxsize=xxx 1enh.waterions.pdb > 1enh.wations.min.pdb
    We start the simulation by heating the system slowly. Three simulations
    at 100K, 250K, and then 300K are enough for this exercise, but in other cases a longer
    equilibration protocol may be needed. These steps while take a little while to complete:  mdCHARMM.pl -par dynsteps=250,boxsize=xxx,dyntemp=100 -final xplicit.md1.pdb 1enh.wations.min.pdb
  mdCHARMM.pl -par dynsteps=250,boxsize=xxx,dyntemp=250 -final xplicit.md2.pdb xplicit.md1.pdb
  mdCHARMM.pl -par dynsteps=250,boxsize=xxx,dyntemp=300 -final xplicit.md3.pdb xplicit.md2.pdb
    Now we are ready to run a longer simulation at 300K that we will analyze afterwards:
  mdCHARMM.pl -par dynsteps=2000,boxsize=xxx,dyntemp=300,dynoutfrq=10 \
              -cmd md.cmd -log xplicit.md4.log -trajout xplicit.md4.dcd \
              -final xplicit.md4.pdb xplicit.md3.pdb &
    The additional options are used to
generate a log file and a trajectory file with conformations saved
every 10 steps (dynoutfrq parameter).These commands seem very
simple, but the Tool Set is taking care of quite a few of the setup
tasks needed to run explicit solvent simulations with CHARMM. You may
take a look at the file 'md.cmd' to see what commands are actually sent
to CHARMM in order to run the simulation. The '&' at the end of the
command will run the command in the background so that we can continue
with the next step of this tutorial while the explicit solvent
simulation is running.
 4. Implicit Solvent SimulationIt is easier to run an implicit solvent simulation than with explicit solvent. 
    We do not need to generate a solvent box. Starting from the minimized protein structure
    we will follow the same equilibration protocol as for explicit solvent:
    mdCHARMM.pl -par gb,dynsteps=250,dyntemp=100 -final impl.md1.pdb 1enh.min.pdb
    mdCHARMM.pl -par gb,dynsteps=250,dyntemp=250 -final impl.md2.pdb impl.md1.pdb
    mdCHARMM.pl -par gb,dynsteps=250,dyntemp=300 -final impl.md3.pdb impl.md2.pdb
The flag 'gb' selects the GBMV
generalized Born implicit solvent method. After the initial
equilibration we are ready to also run a longer run with the GB method.
For the production run we will turn on Langevin dynamics with a
friction coefficient of 10/ps in order to obtain realistic interactions
with the solvent:
  mdCHARMM.pl -par gb,dynsteps=2000,dyntemp=300,dynoutfrq=10,lang,langfbeta=10 \
              -cmd md.cmd -log impl.md4.log -trajout impl.md4.dcd \
              -final impl.md4.pdb impl.md3.pdb &
    Wait until both the explicit and implicit solvent simulations are finished.5. AnalysisThere are many ways in which a molecular dynamics trajectory can be analyzed. 
    First, load the final PDB and the DCD files into VMD to animate the trajectories.
 Second, the MMTSB Tool Set offers
    the utility analyzeCHARMM.pl to carry out quantitative analysis functions through CHARMM.
    We will begin by calculating the root mean square deviation of the simulated engrailed homeodomain from 
    the initial minimized structure as a function of time in both the explicit and implicit solvent
    simulations:
 
  analyzeCHARMM.pl -rms -sel CA -comp 1enh.min.pdb \
                   -pdb xplicit.md4.pdb xplicit.md4.dcd > xplicit.rmsd
  analyzeCHARMM.pl -rms -sel CA -comp 1enh.min.pdb \
                   -pdb impl.md4.pdb impl.md4.dcd > implicit.rmsd
    The analysis command reads a DCD output file, but also requires a matching PDB to describe the system. 
    The reference structure for the RMSD calculation is given with the -comp option. Which 
    atoms are used for the RMSD calculation can be specified with -sel, in this example C-alpha
    atoms were chosen.
    Plot both curves and compare them. What do you find?
    Next, we will calculate the radial density profile of water oxygens with respect to the center of
    mass of the solute. Such profiles are useful to check whether the number density at the edge of the
    box approaches the correct bulk solvent density of 0.03337 waters/A^3.
  analyzeCHARMM.pl -rdist -ndens -cofm -dsel water.OH2 solute \
                   -par boxsize=xxx -pdb xplicit.md4.pdb xplicit.md4.dcd > radial.profile
    Last, phi/psi dihedral angles can be calculated with the following command:  analyzeCHARMM.pl -sel <resno> -phi -psi -pdb impl.md4.pdb impl.md4.dcd 
    Use that command to find a residue where the phi/psi angle varies significantly
    over the course of the (very short) simulations and plot the trajectory in a 
    phi/psi plot. |