From: Leonardo Trabuco (ltrabuco_at_ks.uiuc.edu)
Date: Tue Sep 11 2007 - 14:51:11 CDT

Hi Thomas,

Try changing the following line in bigdcd_done:

after idle uplevel #0 trace vdelete vmd_frame w bigdcd_callback

to

uplevel #0 trace vdelete vmd_frame w bigdcd_callback

Please let me know if it solves your problem.

Best,
Leo

On Tue, Sep 11, 2007 at 09:56:32PM +0300, Θωμας Ευαγγελιδης wrote:
> Leo,
> this is not an option, my script is too big!
> Try to run the following simple script instead, just to see what I mean:
>
> play mybigdcd.tcl
>
> mol load psf DCD_with_cell.psf
>
> proc write { frm } {
> if {$frm>51} {
> return
> }
> puts "frame=$frm"
> animate write pdb wholeframe_$frm.pdb beg 0 end 0 waitfor all top
> }
>
> bigdcd write DCD_with_cell.dcd
>
> bigdcd_wait_till_done
>
> for {set i 1 } {$i<=51} {set i [expr $i+10]} {
> puts "i=$i,"
> mol load pdb wholeframe_$i.pdb
> }
>
> My trajectory is DCD_with_cell and it has 51 frames. Can you see that return
> inside proc write? If I include it everything works fine, but if I omit it, VMD
> does its job correctly but at the end it tries to write more frames than 51 (it
> goes up to 55) and at the output I get "Illegal frames requested...".
> One way you could help me is by finding a way to get the number of frames of a
> trajectory while using bigdcd to load it.I have tried to set a global variable
> $num_frames inside bigdcd proc in various ways, but nothing worked.
>
> Thomas
>
>
>
> > Hi,
> >
> > If you send me the script I can take a look at it...
> >
> > Cheers,
> > Leo
> >
> > On Tue, Sep 11, 2007 at 06:07:23PM +0300, Θωμας Ευαγγελιδης wrote:
> > > Leo,
> > > yes I tried that too, it worked good up to the 6th frame (if I remember
> > > correctly) and then failed again. Whenever I didn't do that it failed
> > > instantly.
> > > Thomas
> > >
> > > > On Tue, Sep 11, 2007 at 02:19:53PM +0300, Θωμας Ευαγγελιδης wrote:
> > > > > I used "mybigdcd.tcl" in my code and everything worked fine. Now I
> > > > > confront another difficulty. The code that I described in my previous
> > > > > message was a part of a bigger program. That program uses bigdcd twice
> > > > > and while the first proc is executed correctly, the second proc fails
> > > > > to terminate.
> > > >
> > > > Did you try sourcing mybigdcd.tcl again before running the second proc?
> > > > From a quick look, that seems necessary at least to set the variable
> > > > $bigdcd_is_done back to zero.
> > > >
> > > > Cheers,
> > > > Leo
> > > >
> > > > --
> > > > Leonardo Trabuco, Ph.D. student
> > > > Theoretical and Computational Biophysics Group
> > > > University of Illinois at Urbana-Champaign
> > > >
> > >
> > >
> > >
> >
> > --
> > Leonardo Trabuco, Ph.D. student
> > Theoretical and Computational Biophysics Group
> > University of Illinois at Urbana-Champaign
> >
>
>
>

-- 
Leonardo Trabuco, Ph.D. student
Theoretical and Computational Biophysics Group
University of Illinois at Urbana-Champaign