[lammps-users] a problem converting .dump to .pdb, for visualization and analysis with VMD

Hi everybody,

I'm using LAMMPS for simulating biomolecules.
I'm also using VMD for solvation, visualization and data analysis.
First I solvate the molecule in VMD, then I convert into
a .data file with charmm2lammps.
The .lammpstrj dump files can be read by VMD, but many
options and built-in VMD commands for atom selection rely
on .pdb file format. I have hence used the dump2pdb tool
to convert the output, but looking into the file I have noticed that
the information about the residue names of the molecule goes lost in the process
(actually it goes lost in the first step, converting .pdb and .psf into .data).
In the case of the analysis of biomolecules this is very penalizing, because it
kills some nice features provided by VMD.
Has anybody implemented a fix in the dump2pdb.pl, i.e. a loop that scans the
atom sequences and re-labels the residues correctly? or alternatively, is there
any other tool that can do the same? or am I doing something wrong?
Thanks in advance

Massimo Lai

Hi everybody,

hi massimo,

I'm using LAMMPS for simulating biomolecules.
I'm also using VMD for solvation, visualization and data analysis.
First I solvate the molecule in VMD, then I convert into
a .data file with charmm2lammps.

The .lammpstrj dump files can be read by VMD, but many
options and built-in VMD commands for atom selection rely
on .pdb file format. I have hence used the dump2pdb tool

actually, it is less the pdb format, but the information it
provides. .psf files provide additional information (and are
lacking some).

let me outline shortly, how VMD reads/handles molecule data.
if you read a 'new' molecule, VMD first tries to read the
'structure' information contained in the file (atom/residue
names, atom type, element, mass, bonding, charge, beta, etc.).
if 'important' information like bonding, element etc. is not
contained, it tries to use heuristics to guess them. in a second
step, VMD will read the coordinates (and/or additional information
like volumetric data etc.). for _each_ subsequent read into the
same molecule, VMD will only look for coordinate and volumetric
data information and disregard 'structure' information (unless
told otherwise). please note, that 'structure' information is
stored only once, so bond breaking/reforming cannot be handled
this way. for more details, please have a look at the vast
documentation and tutorial material on the VMD homepage.

to convert the output, but looking into the file I have noticed that
the information about the residue names of the molecule goes lost in the process
(actually it goes lost in the first step, converting .pdb and .psf into .data).
In the case of the analysis of biomolecules this is very penalizing, because it
kills some nice features provided by VMD.

Has anybody implemented a fix in the dump2pdb.pl, i.e. a loop that scans the
atom sequences and re-labels the residues correctly? or alternatively, is there
any other tool that can do the same? or am I doing something wrong?

the best way to interact with VMD would be to dump into .dcd format and
use the original .psf file (provided you dump the same set of
information). reading the lammpstraj file is _much_ less efficient
(it is a text format file) and also .dcd files are generally smaller.
(.xtc is even smaller, but the current lammps release has a bug in
the box size). in fact, for some simulation data, that i've been using
recently in VMD, i was loading a single frame of a trajectory into VMD
and then assigned the missing information at the script level, and then
written out the data from VMD as an (incomplete) .psf file and am using
that .psf file now to provide the structure data (and can handle either
.dcd, .xtc, and lammpstraj format trajectories with it).

please note, that there are some bugs in the lammpstraj plugin that can
create problems if you have large systems (and waste a lot of memory).
if you use the .psf + XXX strategy you can circumvent them. it should
be fixed in the upcoming 1.8.6 release, but the .psf + XXX combo is
still recommended.

ciao,
  axel.

Massimo,

Try using the Pizza.py pdb tool. If you have a template pdb file to start from, you can preserve all of the information you need, simply replacing the coordinates with those from the LAMMPS dump file.

http://www.cs.sandia.gov/~sjplimp/pizza.html

Paul

Massimo,

I didn’t see Axel’s message until after I’d sent mine. So this is just to endorse his approach. I agree that the best route is to dump *dcd files from LAMMPS and then just use your original *psf file with those *dcd files in VMD. This approach totally eliminates the conversion step. But if you don’t want to rerun an already-complete trajectory that you did without dumping dcd files, conversion may be what you’re left with. There are also LAMMPS to dcd converters. Check the tools directory.

Paul