[MMTK] self-contained trajectory file

Konrad Hinsen research at khinsen.fastmail.net
Mon Sep 15 14:03:58 UTC 2014

Eric Pettersen writes:

 > Is it possible to write a trajectory file for arbitrary chemical
 > systems that don't depend on custom database entries (i.e. all the
 > necessary information is in the trajectory file itself)?  I tried
 > using MoleculeFactory instead of subclassing Molecule, but that
 > also writes Molecules into the trajectory file to the same result.

Short answer: There is unfortunately no way to store molecule
definitions in trajectories, only references to the database are

Longer answer:

A more flexible handling of molecule definitions has been on my to-do
list for a long time. The MoleculeFactory class was a first step in
this direction. Obviously I looked into storing such definitions in
trajectories, but around the same time another limitation of the MMTK
trajectory format became clear, which I wanted to solve at the same
time. It's the fact that an MMTK trajectory cannot be decoded without
MMTK (and that implies using Python), at least not with reasonable
effort. Storing a universe as executable Python code seemed like a
good idea in the early days of MMTK, and indeed it is a very flexible
and at the same time simple to implement approach, but it's also too
closely tied to MMTK. While working on a better way to store
universes, we started discussing yet another important change to
trajectory handling: migrating from netCDF to HDF5, mainly in order to
profit from HDF5's support for parallel I/O, but also because of the
added flexibility resulting from the hierarchical dataset layout.

This is how an initially straightforward extension of the trajectory
format turned into a major redesign that took quite a bit of time. The
new trajectory format that MMTK will adopt is H5MD:


H5MD was developed with the goal of suitability for a wide range of
disciplines, which each add their own specific information. It has
therefore no specification for describing a simulation universe. MMTK
will use MOSAIC for this, the combination being described here:


The current status of the migration is "under development". I have
working code to convert MMTK trajectories to H5MD/MOSAIC, but nothing
yet to produce such trajectories directly from MMTK's trajectory
generators (MD, minimization, etc.).

Konrad Hinsen
Centre de Biophysique Moléculaire, CNRS Orléans
Synchrotron Soleil - Division Expériences
Saint Aubin - BP 48
91192 Gif sur Yvette Cedex, France
Tel. +33-1 69 35 97 15
E-Mail: research AT khinsen DOT fastmail DOT net
ORCID: http://orcid.org/0000-0003-0330-9428
Twitter: @khinsen

More information about the mmtk mailing list