Skip to content

go_models

Chris Brasnett edited this page Jul 26, 2024 · 1 revision

Go models

GoMartini is a popular method for retaining the secondary and tertiary strucutres of proteins originating from the lab of Adolfo Poma. In contrast to an elastic network, the Go model enforces interactions between specific pairs of beads within a protein based on residue overlap and restricted chemical structural unit criteria.

The latest version of Martinize2 implements the newest version of the Go model. In this version of the Go model, interactions are mediated through the addition of extra virtual sites on top of backbone beads in the protein. Interactions are in the form of Lennard-Jones interactions, which are written as an extra file to be included in the protein topology.

The Go model is described in the help:

Virtual site based GoMartini:
  -go GO                Contact map to be used for the Martini Go model. Currently, only one format is supported. See docs. (default: None)
  -go-eps GO_EPS        The strength of the Go model structural bias in kJ/mol. (default: 9.414)
  -go-moltype GOVS_MOLTYPE
                        Set the name of the molecule when using Virtual Sites GoMartini. (default: molecule_0)
  -go-low GO_LOW        Minimum distance (nm) below which contacts are removed. (default: 0.3)
  -go-up GO_UP          Maximum distance (nm) above which contacts are removed. (default: 1.1)
  -go-res-dist GO_RES_DIST
                        Minimum graph distance (similar sequence distance) below which contacts are removed. (default: 3)

To add a Go model to your protein, the first step is to calculate the contact map of your protein by uploading it to the web server.

The contact map is then used in your martinize2 command:

martinize2 -f protein.pdb -o topol.top -x cg_protein.pdb -ff martini3001 -dssp -go contact_map.out

Without any further additions, this will:

  1. Generate virtual sites with the atomname CA directly on top of all the backbone beads in your protein
  2. Use the contact map to generate a set of non-bonded parameters between specific pairs of CA atoms in your molecule
  3. Eliminate any parameters which are shorter than 0.3 nm and longer than 1.1 nm, or are closer than 3 residues in the molecular graph.

As a result, along with the standard output of martinize2 (ie. itp files for your molecules, a generic .top file, a coarse grained structure file), you will get two extra files: go_atomtypes.itp and go_nbparams.itp. The atomtypes file defines the new virtual sites as atoms for your system, and the nbparams file defines specific non-bonded interactions between them.

For example, go_atomtypes.itp looks like any other [ atomtypes ] directive:

[ atomtypes ]
molecule_0_1 0.0 0 A 0.00000000 0.00000000
molecule_0_2 0.0 0 A 0.00000000 0.00000000
molecule_0_3 0.0 0 A 0.00000000 0.00000000
molecule_0_4 0.0 0 A 0.00000000 0.00000000
molecule_0_5 0.0 0 A 0.00000000 0.00000000
...

Similarly, go_nbparams.itp looks like any [ nonbond_params ] directive (obviously, the exact parameters here depend on your protein):

[ nonbond_params ]
molecule_0_17 molecule_0_13 1 0.59354169 9.41400000 ;go bond 0.666228018941817
molecule_0_18 molecule_0_14 1 0.53798937 9.41400000 ;go bond 0.6038726468003999
molecule_0_19 molecule_0_15 1 0.51270658 9.41400000 ;go bond 0.5754936778307316
molecule_0_22 molecule_0_15 1 0.73815666 9.41400000 ;go bond 0.8285528398039018
molecule_0_22 molecule_0_18 1 0.54218134 9.41400000 ;go bond 0.6085779754055839
molecule_0_23 molecule_0_19 1 0.53307395 9.41400000 ;go bond 0.5983552758317587
...

To activate your Go model, you can simply include these files in your master martini_v3.0.0.itp file with the following commands:

sed -i "s/\[ nonbond_params \]/\#ifdef GO_VIRT\n\#include \"go_atomtype.itp\"\n\#endif\n\n\[ nonbond_params \]/" martini_v3.0.0.itp

echo -e "\n#ifdef GO_VIRT \n#include \"go-table_VirtGoSites.itp\"\n#endif" >> martini_v3.0.0.itp
Clone this wiki locally