MDLab is a user-friendly environment for prototyping molecular dynamics simulation protocols and numerical methods, built with the scripting language Python. Our goal is to provide developers of propagator scheme and force computation algorithms with (1) mathematical syntax which enables them to develop these methods using array and matrix operations, and (2) a set of domain-specific libraries which enable testing and debugging of these methods using real biological systems. MDLab allows users to perform the following tasks:
  • Construct single-timestepping propagation schemes which update phase space (positions and momenta) using a specific timescale.
  • Construct multiple-timestepping propagator chains which compute different forces at various frequencies.
  • Construct equations for new potential energy (and corresponding force) terms.
  • Construct and test these methods on physical systems using several included example phase space configurations for a wide range of solvated and unsolvated systems.
  • Plot observables or store values in Matlab-plottable files.
  • Observe a system interactively through a graphical interface.
  • Execute a simulation on graphics processing units (GPUs) through an interface to OpenMM, providing as high as a 550-fold speedup for long simulations of large biomolecules.


    We provide a user guide which outlines the key features of the Molecular Dynamics Lab, along with example numerical methods and simulation protocols implemented in Python using MDL libraries. The API description, generated by Epydoc, contains documentation of all top-level Python classes in the MDL API, including descriptions for methods and instance variables. The interface description provides a similar description for wrapped ProtoMol libraries.
  • Userguide (PDF)
  • API description (generated by Epydoc)
  • Interface description (generated by Epydoc)
  • Example numerical methods and protocols
  • Code Source
  • Wiki Page
  • Installation

    On Linux/Mac:

  • First make sure you have the following tools installed. They may come standard on your system:
  • Python 2.5
  • Scons 0.98
  • Swig 1.3.31
  • Then install the following tools which are built with Python. Use the standard installation, don't supply any flags::
  • Numpy
  • Gnuplot-py 1.7
  • Matplotlib 0.9.1 (Optional)
  • Run 'svn co https://protomol.svn.sourceforge.net/svnroot/protomol protomol'. cd to protomol/mdl.
  • Run 'scons gui=1' if you would like to use the Java GUI, otherwise omit the gui flag.
  •     Assuming you have an NVIDIA graphics card and have installed OpenMM and Cuda, pass "openmm=cuda" for GPU compatibility.
  • Now MDL is ready to go. Type './RunMDL' followed by a script name to run it, or just './RunMDL' for interactive execution of MDL commands.
  • On Windows:

  • Make sure you have Python 2.5 installed, and that it is in your system PATH.
  • Download the self-installing executable here. Or if you prefer, you can work with a ZIP file.
  • Go to Start Menu, click "Run Program" and type 'cmd'.
  • Change to the directory where you installed MDL.
  • Now MDL is ready to go. Type 'RunMDL.bat' followed by a script name to run it, or just 'RunMDL.bat' for interactive execution of MDL commands.
  • Testing

    The MDL TestSuite is designed to ensure software quality upon changes to either ProtoMol or MDL source code. Click here for documentation.


  • T. Cickovski, S. Chatterjee, A. Wenger, C. Sweet and J. A. Izaguirre. MDLab: A Molecular Dynamics Simulation Prototyping Environment. To appear in Journal of Computational Chemistry, 2010.
  • Contact

  • Questions? Contact the LCLS or lead developer Trevor Cickovski.