TITLE: Protocol for the development of coarse-grained structures for macromolecular simulation using GROMACS
AUTHORS: M Purushotham Rao, Akshay Uttarkar, Vidya Niranjan

[DESCRIPTION]
This paper presents a protocol for the development of coarse-grained  (CG) structures for macromolecular simulation using the GROMACS  software. CG models are widely used in molecular simulations due to  their computational efficiency, which allows for the study of large and  complex systems. The protocol described here outlines the steps  necessary for the creation of CG structures, including the selection of  appropriate beads, mapping of the CG beads onto the atomistic structure,  and the parameterization of the CG model. The protocol also includes  guidelines for validating the accuracy of the CG model, as well as  recommendations for future improvements in CG model development. The  described protocol will be useful for researchers interested in the  development of CG models for macromolecular simulations using GROMACS. 

[BEFORE_START]
A basic understanding on gromacs and simulations.
For visual assistance refer to https://youtu.be/QMR4f4eRSbs

[GUIDELINES]
Commands are indicated in bold letters

[STEPS]
SECTION: DOWNLOAD NECESSARY PROTEIN
1. DOWNLOAD THE PDB FILE FROM https://www.rcsb.org/
Here, in this tutorial DUSP28 https://www.rcsb.org/structure/5Y15 is used.
Preprocess the pdb to remove all ions and B chain or can obtained from here https://drive.google.com/file/d/1YDJV2hKtZ5dJrl8S6A_4AFdTt_lVJFMv/view?usp=sharing
SECTION: SYSTEM SETUP
5. Setup Periodic box
gmx editconf -f 1UBQ-CG.pdb -o 1UBQ-CG.gro -d 1.0 -c -bt dodecahedron
  

SECTION: SYSTEM SETUP
6. To minimise the coarse_grained structure in vaccum
gmx grompp -f em_vac.mdp -c 1UBQ-CG.gro -p single-ubq.top -o em_vac.tpr
 
SECTION: SYSTEM SETUP
7. Solvate the protein
gmx solvate -cp em_vac.gro -cs water.gro -radius 0.21 -o solvated.gro
SECTION: SYSTEM SETUP
8. Add ions (optional to neutralise or addition ions)
gmx grompp -f ions.mdp -c solvated.gro -p system.top -o ions.tpr
gmx genion -s ions.tpr -o ions.gro -p protein.top -pname NA+ -nname CL- -conc 0.1 -neutral
 we have not added here but in the video its shown how to add.
SECTION: SIMULATION
9. Energy minimisation
 gmx grompp -f em.mdp -c solvated.gro -r solvated.gro -p system.top -o em.tpr -maxwarn 1
maxwarn is because there is an mismatch of atom names but all the atoms are present

SECTION: SIMULATION
10. NVT equilibration
gmx grompp -f nvt.mdp -c em.gro -r em.gro -p system.top -o nvt.tpr

SECTION: SIMULATION
11. NPT equilibration
gmx grompp -f npt.mdp -c nvt.gro -r nvt.gro  -p system.top -o npt.tpr

SECTION: SIMULATION
12. MD run
gmx grompp -f md.mdp -c npt.gro -p system.top -o md.tpr

SECTION: ANALYSIS
13. Analysis
Before analysis conect command should be used to show bonds in visualisation software and also pbc should be removed
echo 1 1 | gmx trjconv -f md.gro -s md.tpr -o recentered_traj.gro -pbc mol -center
echo 1 | gmx trjconv -f recentered_traj.gro -s md.tpr -conect -o connected_traj.pdb
echo 1 1 | gmx trjconv -f md.xtc -s md.tpr -o recentered_traj.xtc -pbc mol -center
sed -i ‘/ENDMDL/d’ connected_traj.pdb
to visualize
vmd recentered_traj.xtc connected_traj.pdb

 
Video shows protein over 20ns 
SECTION: ANALYSIS
14. Step 2- 12 can be automated using a shell script
sh commands.sh
SECTION: COARSE GRAINING OF PROTEIN
3. change dssp executable path and required force field and use python3 martinize.py -h for help 
python3 martinize.py -f 5y15_processed.pdb -o single-5y15.top -x 5y15-CG.pdb -dssp /usr/local/bin/mkdssp -p backbone -ff martini22
or use ssd file as input  
mkdssp -i 5y15.pdb -o 5y15.dssp
to conver dssp file to ssd file
python3 dssp2ssd.py -i 5y15.dssp -o 5y15.ssd
python3 martinize.py -f 5y15_processed.pdb -o single-5y15.top -x 5y15-CG.pdb -ss 5y15.ssd -p backbone -ff martini22
Here we have used second method.
 
SECTION: DOWNLOAD NECESSARY SOFTWARE AND FILES
2. Martinize python script http://cgmartini.nl/index.php/tools2/proteins-and-bilayers/204-martinize
Martini itp file required version http://cgmartini.nl/index.php/force-field-parameters/particle-definitions
Martinin ions itp file http://cgmartini.nl/index.php/force-field-parameters/ions
Dssp Executable https://github.com/cmbi/dssp - use source 2.3 version
dssp to ssd python script (Optional) https://github.com/MPurushothamRao/miscellaneous
Gromacs type this in terminal- sudo apt-get install gromacs 
mdp files https://drive.google.com/file/d/1if8nCmmOAXT-ZTEQGu2ctG3bcgaQayPi/view?usp=sharing
Non-polarised water or Polarised water gro files http://cgmartini.nl/index.php/downloads/example-applications/63-pure-water-solvent
VMD https://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD
XMGRACE type this in terminal- sudo apt-get install grace
Commands shell script https://github.com/MPurushothamRao/miscellaneous
SECTION: SYSTEM SETUP
6.1. gmx mdrun -deffnm em_vac -v
  
SECTION: SYSTEM SETUP
7.1. To add number of water molecules into toplogy file for polarised water divide count by 3
 cp single-ubq.top system.top
 count=$(grep -c “W” solvated.gro | tr -d ‘\n’)
 echo -e “\nW    $count” >> system.top
  
SECTION: SIMULATION
9.1.  gmx mdrun -deffnm em -v
  

SECTION: SIMULATION
10.1. gmx mdrun -deffnm nvt -v
  

SECTION: SIMULATION
11.1. gmx mdrun -deffnm npt -v
 
   
SECTION: SIMULATION
12.1. gmx mdrun -deffnm md -v
`   

SECTION: ANALYSIS
13.1. Calculation RMSD and radius of Gyration and plotting using XMGRACE
echo 1 1 | gmx rms -s md.tpr -f recentered_traj.xtc -o rmsd.xvg
xmgrace rmsd.xvg
echo 1 | gmx gyrate -s md.tpr -f recentered_traj.xtc -o gyrate.xvg
xmgrace gyrate.xvg
  

SECTION: COARSE GRAINING OF PROTEIN
4. to change name of martini itp file in toplogy, for what you have selected in above step
sed -i -e ‘s/martini.itp/martini_v2.2.itp/’ single-ubq.top
  

SECTION: ANALYSIS
15. Video of tutorial
https://youtu.be/QMR4f4eRSbs