mdconvert

mdconvert is a command-line script installed with MDTraj to convert molecular dynamics trajectories between formats. The DCD, XTC, TRR, binpos, NetCDF, binpos, and HDF5 formats are supported (.xtc, .nc, .trr, .h5, .pdb, .binpos, .dcd). mdconvert is memory-efficient, and processes trajectories in a chunked, streaming fashion. It is capable of converting trajectory files which cannot be fully loaded into memory. It can also concatenate trajectories, convert only a subset of the atoms in a trajectory (i.e. strip solvent molecules), and down-sample trajectories by extract only a subset of the frames.

After installing the library, it should be in your $PATH. You can check this from the command line with this command.

$ which mdconvert

Here’s the mdconvert help text.

$ mdconvert -h
usage: mdconvert [-h] -o OUTPUT [-c CHUNK] [-f] [-s STRIDE] [-i INDEX]
                 [-a ATOM_INDICES] [-t TOPOLOGY]
                 input [input ...]

Convert molecular dynamics trajectories between formats. The DCD, XTC, TRR,
binpos, NetCDF, binpos, and HDF5 formats are supported (.xtc, .nc, .trr, .h5,
.pdb, .binpos, .dcd)

positional arguments:
  input                 path to one or more trajectory files. Multiple
                        trajectories, if supplied, will be concatenated
                        together in the output file in the order supplied. all
                        of the trajectories should be in the same format. the
                        format will be detected based on the file extension

required arguments:
  -o OUTPUT, --output OUTPUT
                        path to the save the output. the output format will
                        chosen based on the file extension (.xtc, .nc, .trr,
                        .h5, .pdb, .binpos, .dcd)

optional arguments:
  -h, --help            show this help message and exit
  -c CHUNK, --chunk CHUNK
                        number of frames to read in at once. this determines
                        the memory requirements of this code. default=1000
  -f, --force           force overwrite if output already exsits
  -s STRIDE, --stride STRIDE
                        load only every stride-th frame from the input
                        file(s), to subsample.
  -i INDEX, --index INDEX
                        load a *specific* set of frames. flexible, but
                        inefficient for a large trajectory. specify your
                        selection using (pythonic) "slice notation" e.g. '-i
                        N' to load the the Nth frame, '-i -1' will load the
                        last frame, '-i N:M to load frames N to M, etc. see
                        http://bit.ly/143kloq for details on the notation
  -a ATOM_INDICES, --atom_indices ATOM_INDICES
                        load only specific atoms from the input file(s).
                        provide a path to file containing a space, tab or
                        newline separated list of the (zero-based) integer
                        indices corresponding to the atoms you wish to keep.
  -t TOPOLOGY, --topology TOPOLOGY
                        path to a PDB file. this will be used to parse the
                        topology of the system. it's optional, but useful. if
                        specified, it enables you to output the coordinates of
                        your dcd/xtc/trr/netcdf/binpos as a PDB file. If
                        you're converting *to* .h5, the topology will be
                        stored inside the h5 file.