From: Maxim Belkin (mbelkin_at_ks.uiuc.edu)
Date: Wed May 13 2015 - 13:50:36 CDT

"animate..." command line should replace the following portion of your code:

set t [atomselect top all]
$t writexyz swapped.xyz

I would also suggest consulting VMD User's Guide.

Maxim

> On May 13, 2015, at 1:11 PM, JeJoon Yeon <sonicturbulent_at_gmail.com> wrote:
>
> Hello Maxim
>
> Is that 'animate' command line should be in the beginning of the code, right after reading? Or that should be placed in last lines? Also, is that require to use for loop?
>
> 2015-05-13 14:07 GMT-04:00 Maxim Belkin <mbelkin_at_ks.uiuc.edu <mailto:mbelkin_at_ks.uiuc.edu>>:
> Hi,
>
> Have you tried the following?
>
> animate write xyz output.xyz beg 0 end -1 waitfor all
>
> Maxim
>
>
> > On May 13, 2015, at 12:53 PM, JeJoon Yeon <sonicturbulent_at_gmail.com <mailto:sonicturbulent_at_gmail.com>> wrote:
> >
> > Hello all
> >
> > I can swap specific atoms for a single frame xyz only. Like
> >
> > mol new test.xyz type xyz waitfor all
> > set a [atomselect top "index < 1338 and name Si and y>9 and within 5 of atom O]
> > $a set name C
> > $a set type C
> > $a set element C
> > set t [atomselect top all]
> > $t writexyz swapped.xyz
> >
> >
> > But how can I do this with multiple frame? I tried to use for loop but
> > 1) Sometimes it causes error
> > 2) Sometimes it swaps the specific atoms for all frames, but the criteria is based on only last frame's xyz position.
> >
> > So I don't know what to do anymore. Can anyone help or modify that single frame code to work for multiple frames? Is this coming from read / write problem?
> >
> > Thanks
> >
> > Best,
>
>