Toolkit for free-energy calculation setup/analysis and biomolecular structure handling
Clone or download
Vytautas Gapsys
Vytautas Gapsys peptide builder adjustment
Latest commit dc73921 Jul 23, 2018



pmx (formerly pymacs) has started as a small bunch of classes to read structure files such as pdb or gro and trajectory data in gromacs xtc format. Over the years it has been extended towards a versatile (bio-) molecular structure manipulation package with some additional functionalities, e.g. gromacs file parsers and scripts for setup and analysis of free energy calculations.


D. Seeliger and Bert L. de Groot, Biophys. J. 98(10):2309-2316 (2010)

V. Gapsys, S. Michielssens, D. Seeliger, B. L. de Groot. J. Comput. Chem. 2014, DOI: 10.1002/jcc.23804


I mostly use pmx to write short scripts which perform some changes in pdb files, e.g. changing atom or residue names, applying some geometric transformations or doing some kind of analysis. The critical issue for these things is usually not calculation time but straightforward selection of some atoms/residues of interest, quick file parsing and data visualization, which renders a well-organized data structure and easy programming style more important than computation performance. Hence, and ideal task for Python.


Checkout the source code and run the usual python installation

git clone pmx
cd pmx 
sudo python install

Software Requirements

Getting Started

pmx stores structure data in Python classes. The "Model" class is the uppermost class which contains severals lists of Atoms, Molecules and Chains. The following script reads a pdb file, prints some atom properties and writes the structure in gro format.

pmx data structure

The figure above shows the most important data structure. A "Model" instance contains list of chains, residues and atoms. A "Chain" instance of residues and atoms and a "Molecule" instance of a list of atoms only. Check the example scripts for how to navigate trough particular storage classes.

pmx Modules

pmx currently contains the following modules. Click on the links below for a (short) documentation

pmx Classes (the most important ones)

Using pmx