CGTools-MP simulates interactions between lipid membranes and proteins with a systematic solvent-free coarse-grained model. The source code can be downloaded here.

Related Information: Please find other related code and software in our Source Code Library.

Basic Description Installation Quick Start Code Structure Tests & Examples References Contact

License Information: CGTools-MP is a free software; you can redistribute it and/or modify it under the terms of the Creative Commons Non-Commercial License 3.0.

System Requirements: (1) Script language: tcl 8.4 or higher; (2) OS: Linux, Unix, Mac OS X (tested); and (3) Additional software: ESPResSo and VMD.


Written in Tcl, thus nothing need to be compiled. Untar the archive in any directory. Set the CGTOOLS_DIR environment variable to your shell, setting it to its installation path. For example, under bash, if extracting the archive in the HOME directory, one should add to ‘~/.bashrc’:

export CGTOOLS_DIR=~/cgtools/"

where the executable cgtoolsmain.tcl is located inside $CGTOOLS_DIR. Don’t forget to add this folder to your $PATH as well, and source your bash.

  • In order for cgtools to be used whithin ESPResSo:
    Open your espresso configuration file ‘~/.espressorc’ (create a new one if necessary) and add the following two lines:
    lappend auto_path "$env(CGTOOLS_DIR)/srcmempep/"
    source $env(ESPRESSO_SCRIPTS)/parallel_tempering.tcl

Also, for the force field to work properly, you should copy the ‘myconfig.h’ file included in the home directory of cgtools to the home directory of ESPResSo. This will activate all (or almost all!) the necessary features of ESPResSo to run the simulations properly.

  • In order to use the ‘loadseries’ command in VMD, you must source a file to your ~/.vmdrc. To do so, copy the file ‘vmd_plg.tcl’ located in the ‘vmd_plugin/’ directory wherever you want. Then append (or create) the init file ~/.vmdrc by using
    source [VMD_PLUGIN_DIRECTORY]/vmd_plg.tcl

where you should replace […] by the directory you chose for the ‘vmd_plg.tcl’ file.

  • Set path for executable ESPResSo file and scripts: For example, if installing ESPResSo in the HOME directory, and the executable file “Espresso_bin” is in the folder of “$HOME/Espresso/obj-Core-pc-linux”, one should add to ‘~/.bashrc’:
    export PATH=$HOME/Espresso/obj-Core-pc-linux/:$PATH
    export ESPRESSO_SCRIPTS=~/Espresso/scripts"

Quick Start

cgtools will *not* run unless a configuration file is specified in argument. The main script should be parsed inside Espresso:

   > Espresso cgtoolsmain.tcl  
	      [-replica [-connect HOST]]

where the brackets represent optional choices.

   '-new' starts a new computation by deleting the existing folder if there is any, without this choice, the simulation will resume from the last checkpoint.

   '-replica' starts a parallel tempering simulation host. The different simulation temperatures are parameterized in the CONFIG_FILE. 

   '-connect HOST' argument is required for slaves to connect to the host.

   '-annealing' starts an annealing simulation.

   '-annealfast' starts a fast annealing process, afterwards equilibrium the system at the end temperature.

   Note that the optional arguments can be alternated, and they do not require brackets. 

At the end, the script will have created a new directory with stored configuration files inside.

The ‘configs/’ folder contains several configuration files that are ready to be run.


We refer the user to the ‘configs/examples’ folder which contains examples.


Parameters for bonded interacting functions: set in ‘overlapcoffs/’ folder.

Nonbonded tabulated force field: set in ‘forcetables/’ folder.

Parameters for protein-protein and membrane-protein interactions: set in ‘peptideb/’ folder

Configurations for build a membrane-protein system: set in ‘readfiles/’ folder

Code Structure

The main script ‘cgtoolsmain.tcl’ is at the root of the archive. It mainly reads the configuration file, and starts relevant routines for the output.

The ‘configs/examples’ folder contains example scripts that can be used to build a system with membrane and proteins.

The ‘srcmempep/’ folder contains all the source code for membrane-protein simulations.

  •  ‘espresso/’ – all routines that are related to the integration of the script in Espresso. From here will be ran the MD integrator to run a simulation.
  •  ‘generation/’ – will build a membrane with or without proteins, generate topology and configurations.
  • ‘mmsg/’ – a standard output wrapper. Easier to determine to which part of the code a given message belongs to. This was written by Ira Cooke.
  • ‘utils/’ – contains lots of useful routines. Mainly math-geometry functions that are used to build a membrane, read and write files.
  • ‘analysis/’ – contains analysis routines for bilayer membrane.

Tests & Examples

The package includes a simulation example:

  • Simulate a walp23 peptide folding in a POPC lipid membrane, in the folder of “cgtools”, run a command line:
     mpirun -np 4 Espresso_bin cgtoolsmain.tcl -n 4 configs/examples/walp/bilayer72_walp.tcl

    a output folder “bilayer72_walp” will be produced in the folder of cgtools.

More examples can be found in the foulder of “cgtools/examples”. The package can simulate POPC, DOPC, and DPPC lipid membranes interacting with all types of proteins. User can define the number of proteins, the amino acid sequence of any type of protein, and other simulation parameters in the Tcl script as shown in the example scripts.


If you use CGTools-MP and obtain scientific results that you publish, we would ask you to acknowledge the usage of CGTools-MP by referencing

  • Z.-J. Wang, M. Deserno. A systematically coarse-grained solvent-free model for quantitative phospholipid bilayer simulations. Journal of Physical Chemistry B, 2010, 114(34): 11207-11220.