From: Axel Kohlmeyer (
Date: Tue Nov 09 2010 - 08:10:49 CST

On Tue, 2010-11-09 at 13:11 +0000, Stephen Cox wrote:
> Hi,


> I am trying to visualize the freezing of ice and I have an external
> program that specifies which molecules may be defined as solid.
> Obviously when going from liquid to ice the number of "solid"
> particles changes and this poses a problem when reading in a
> trajectory coordinate file as all atom descriptors (name, mass etc)
> are read in only from the first frame and vmd doesn't allow variable
> number of atoms in an xyz file (for example). I have tried multiple
> molecule animation but this seems impractical for long
> trajectories...
> Is there any way that I can label the atoms defined as solid at each
> frame so that vmd can recognise them? Alternatively, could I script an
> atom selection on a frame by frame basis?

the most elegant way to handle this would be to store
the solid/liquid flag in the "user" field (or "user2",
user3", "user4"). this is a per atom and per timestep
property that can be used in a selection. e.g. if you
flag all solid atoms with -1 and and all liquid with
+1 then "user < 0.0" will select the solid ones (well,
you have to tell VMD to update the selection in every
step in the trajectory tab, too). you can either compute
this from a VMD script or have your program write the
information to a file and then read it back into the
user field. this pdf discusses some examples of how to
do this.

the absolute best way would be to change your external
code to become a plugin for VMD. ;)

let us know if you need any additional pointers.


> Thanks in advance for any help,
> Steve

Dr. Axel Kohlmeyer
Institute for Computational Molecular Science
Temple University, Philadelphia PA, USA.