Proteins and bilayers


Martinize is a python script to generate Martini protein topology and structure files based on an atomistic structure file. It replaces the old seq2itpatom2cg and ElNeDyn scripts. The produced topology and structure files are in a format suitable for Gromacs.

The current version (2.x) has been used rather extensively, however it might still contain errors or bugs. Any feedback is more than welcome! The script is "concatenated": all the different classes, modules and forcefields are in one file. If you want to make changes yourself or add a forcefield we have a modular version available. If you would like to use this, send us an e-mail.

You can now also download the latest martinize from GitHub. The major updates are always added also here below: and python 3 version (version 2.6, May 12 2016)
- The option for the elastic bond lower cutoff (-el) is now correctly recognized.
- Cys bonds in gro-files and pdb-files without chain identifier are now correctly identified.
- Many, many code clean-ups and restructuring. (version 2.5, August 11 2015)
-Removed warnings about beta status of Martini 2.2.
-Bug fix: Fixed cases where Cys-Cys constraints were not recognized as such (version 2.4, August 18 2013)
-Inverted "define NO_RUBBER_BANDS" behavior.
-Changed protein backbone constraints to bonds
-Changed HIS BB-SC constraint to bonds
-Bug fix: Cys-bond length and force constant
-Bug fix: Position restraints are correctly written out when multiple chains are merged. (version 2.3, February 13 2013)
-Bug fix: Correctly call dssp.
-Bug fix: Correct error message when atoms are missing.
-Bug fix: Correctly merge topologies of multiple change in case of Martini 2.2P (version 2.2, November 27 2012)
-Added charged His to all forcefields and options to choose the His-charge state.
-Bug fix: correctly handle .gro files
-Bug fix: Correctly handle .pdb files containing hydrogens.
-Bug fix: bead types correctly set in helix starting at first residue.
-Fixed small inconsistencies in elnedyn forcefields.
-Cleaned up and added help text and warning messages. (version 2.1, August 23 2012)
-Bug fix: bond length in Martini 2.2 & 2.2p
-Bug fix: assignment of secondary structure (version 2.0, July 25 2012)
-Major clean-up and restructuring of the code
-Changed forcefield selection. Forcefield now available: Martini 2.1, Martini 2.1P, Martini 2.2, Martini 2.2P, Elnedyn, Elnedyn 2.2 and Elnedyn 2.2P
-Added function to handle new polar and charged residues in Martini 2.2P
-Several small bug fixes. (version 1.2, May 22th 2012)
-Fixed bug with counter in multi chain topologies.
-Corrected wrong collagen parameters.
-Fixed bug involving BBBB dihedrals in extended regions.
-Fixed bug when giving secondary structure as string.
-A test set is now available. (version 1.1)
-Fixed bug in pdb read-in.
-Clean up of code. (version 1.0)


Read more: martinize

insane is a python script to setup Martini bilayer systems. It handles a broad range of different lipid types, is very flexible with respect to box types and can insert a (CG) protein structure in the bilayer if one is given. Help text and options are obtained by typing: -h

Read much more about insane from the insane paper: DOI: 10.1021/acs.jctc.5b00209

2015.06.25 – insane was updated adding a few features, fixing a few bug and the lipid templates now use the new lipid-naming schema, the old templates are still available with a .o after the name e.g. “DHPC.o”.


ElNeDyn stands for Elastic Network in Dynamics. In this approach an elastic network (EN; a set of springs or harmonic bonds between interacting sites) is used as a structural scaffold to describe and control the overall shape of a molecule. The EN is then combined with a coarse-grained molecular force field to describe the intra- and inter-molecular interactions.


The current version of ElNeDyn focusses on modeling proteins and has been developed in conjunction with the Martini CG force field (2.0, 2.1) but can in principle be mixed with any CG model for any type of molecule. The Martini FF presents the great advantage to include a large body of biomolecules and solvents making simulations of biomolecular systems actually possible.

The rationale for the use of EN is to control the conformation of the protein while keeping its internal dynamics. This has been possible by parametrizing the EN against atomistic model simulations. By tuning the force constant of the springs and the extend of the network, backbone deformations, fluctuations and large amplitude domain motions observed in atomistic simulations of proteins have been matched. For more detail refer to X. Periole et al. 2009 JCTC 5:2531-43.

One notable detail is that the description of the bonded terms defined in original Martini for proteins has been slightly modified to accommodate for the placement of the backbone bead on the Calpha instead on the center-of-mass of the backbone atoms. The non-bonded terms were used as in the original force field.

In the following you'll find a tar.gz file containing the scripts and programs (listed below) that will allow you to build the topology of protein from a pdb file. The file HowTo-ElNeDyn.pdf describes the steps to follow and a tutorial ia available here.

Download: ElNeDyn-2.1.tar.gz

Files and short description:

  • AA.dat : contains the definition of the amino acids.
  • cg-2.1.dat : contains the definition of the bonded terms.
  • cg-2.1.dat.comments : description of the content of cg-2.1.dat.
  • pdb2CGpdb-2.1.f : fortran code reading a pdb file of a protein and giving a CG version of it.
  • topol-CG-2.1.f : fortran code reading the CG coordinates and building the ElNeDyn topology.
  • HowTo-ElNeDyn.pdf : a step-by-step description of the procedure to get from the pdb file to an MD run.
  • a set of mdp files to minimize, relax and simulate your ElNeDyn model.

For more information contact Xavier Periole (This email address is being protected from spambots. You need JavaScript enabled to view it.).

The development of ElNeDyn is done in close collaboration with Prof. M. A. Ceruso at the CCNY-CUNY in New York City, USA.



DAFT - Docking Assay For Transmembrane Components


DAFT is a method for investigating protein-protein and protein-lipid interactions by running many association simulations. These allow identifying the binding hotspots and alternative binding sites.

DAFT is a bundle of programs and supporting files, and comprises martinize, martinate, insane, and several MARTINI interaction table generating Python scripts, toghether with the standard lipid, ion and solvent topologies. The user interface is formed by the bash script (see -h for more information).

More background on this DAFT approach can be read in the DAFT paper: DOI: 10.1021/ct5010092


Flux calculator

This tool calculates fluxes across either a whole bilayer or through a defined channel. The trajectory must have been treated with -pbc nojump and, if analyzing the flux through a channel, care must be taken to ensure the channel is kept whole in the trajectory (use -pbc cluster).

Check the script's -h flag for more information. Send praise(=bugs) to This email address is being protected from spambots. You need JavaScript enabled to view it..


A perl script to build your own peptide/protein topology (.itp). Use the -h option to see what it can do. As input it requires the amino acid sequence (.seq) and the secondary structure information (.ssd). Check out also the toy peptide example on the application page. (version 1.1.5)



A simple awk script that converts an atomistic PDB file to a coarse grained PDB file.

atom2cg_v2.1.awk Create molecule coordinates from their .itps

This tool creates a .gro from an .itp file. It works by randomly scattering coordinates along a linear stretch and then performing an evil minimization as VdW and charges are faded in (using the free energy code). As you already guess, it's totally useless for proteins unless you want a linear segment (in which case it works pretty well!).

Additionally, will likely not preserve your chiral centers unless you protect them in your topology using some sort of dihedral potential/restraint. Alternatively you might want to hand-correct each center using other tools and then energy-minimizing.

Check the -h flag for more details. Please report bugs in the GitHub project.