Notes on "Parameterization of a new small molecule" (This link)
LigPar Server
ChemInfo Open Babel Server
CG Builder Tool
1. Generate atomistic reference data
On OS X machines, any "mdrun" command needs to add for example "-ntmpi 1"
The force tolerance 'emtol' in the supplied "em.mdp" file will not allow the minimization to complete sufficiently, and thus all other steps will fail. Using the default (which is 10) or 50 works well enough.
Once these two items are fixed, the supplied script will execute without problems. It will take a while!
2. Atom-to-bead mapping
Make sure and use an all-atom PDB file such as a PDB created in Gaussian, or another source such as ChemInfo.
3. Generate the CG mapped trajectory from the atomistic simulation
Please note that the '2_atom-to-bead-mapping' directory is empty; This is in the 'ENAP-in-water' directory. The supplied example files mentioned are in the 'ENAP-worked/…' directory.
Note that on my system, 'python' does not exist; 'python3' used in the '3_map_trajectory_COG.sh' script.
CG Builder Tool
4. Create the initial CG itp and tpr files
Some changes here… make sure the 'system_CG.top' reflects your new molecule/ion.
It's important to know the definitions of bonds and impropers! Look on the internet for a picture/definition of an improper dihedral.
Example: in benzoate, the bead representing the carboxylate is designated as the fourth in the .itp file. The only bonds in the molecule are between this bead and two beads representing the benzene ring (the benzene beads are constrained). Thus the bond pairs (i,j) begin with "4". In addition, the improper definition meant to keep the whole system flat uses 1, 2, 3 (the benzene ring) as the reference, and the carboxylate (4) as the bead making the angle. Hence the improper (i, j, k, l) must start with "4":
[ moleculetype ]
; molname nrexclus
BzO 1
[ atoms ]
; this is Luo's topology
; nr type resnr residue atom cgnr charge mass
1 TC5 0 BzO R1 1 0
2 TC5 0 BzO R2 2 0
3 TC5 0 BzO R3 3 0
4 SQ5n 0 BzO O4 4 -1
[ bonds ]
; i j funct length kb
4 1 1 0.482 20000
4 2 1 0.369 20000
#ifndef FLEXIBLE
[constraints]
#endif
; i j funct length
2 3 1 0.258 1000000 ; cog
1 3 1 0.295 1000000 ; cog
1 2 1 0.300 1000000 ; cog
[ dihedrals ]
; improper
; MAKE SURE YOU UNDERSTAND DEF. of IMPROPER!
;
; A
; C --X
; B
; i j k l
; X A B C
;
; i j k l funct ref.angle force_k
4 1 2 3 2 0 200
[ exclusions ]
1 2 3 4
2 3 4
3 4
3_mapped: See note in Step 3 to ensure 'mapped.xtc' is properly created.
The .mdp file provided (and what the script looks for) is 'martini_v2.x_new_run.mdp' not 'martini.mdp'