From: Himanshu Khandelia (hkhandel_at_memphys.sdu.dk)
Date: Fri Oct 19 2007 - 12:25:56 CDT

I had similar problems, and had discussed it on the list.

Some kind soul had provided a different version of bigdcd.tcl, which is
attached to this email.

Use it, and then use the following line at the end of your script (where
you have the 5000 lines)

bigdcd_wait_till_done

You can read more about how this works on the list ...

----------------------------
Himanshu Khandelia, PhD (Chemical Engineering),
Research Assistant Professor (Postdoc),
MEMPHYS, Center for BioMembrane Physics: www.memphys.sdu.dk
University of Southern Denmark (SDU)
Campusvej 55, Odense M 5230, Denmark
Phone: +45 6550 3510, +45 2398 7972
Fax: +45 6550 4048
email: hkhandel_at_memphys.sdu.dk,
hkhandelia_at_gmail.com
WWW: www.memphys.sdu.dk/~hkhandel
-----------------------------

On Fri, 19 Oct 2007, Vishal Kopard wrote:

> Hello,
> I am having a very weird problem with bigdcd, that the number of frames
> accessed is equal to the number of new line characters following the bigdcd
> statement. How do I get over it? I have 5000 frames in my dcd file and right
> now I am adding 5000 blank lines after the bigdcd statement in the tcl file.
> This problem was reported earlier but I could not find a straightforward
> solution.
>
> tcl script
> **********************
> source bigdcd.tcl
>
> proc zeros {num} {
> set list1 {}
> for {set i 0} {$i<$num} {incr i} {
> lappend list1 0
> }
> return $list1
> }
>
> proc sumlists {list1 list2} {
> if {[llength $list1] != [llength $list2] } {
> echo " ERROR lists are unequal "
> return
> }
> set list3 {}
> foreach i $list1 j $list2 {
> lappend list3 [expr $i + $j]
> }
> return $list3
> }
>
> set psffile hex.psf
> set dcdfile prod1.dcd
> set hblength 3.50
> set rshell 4.0
> set hbangle 30
>
> set res {}
> for {set k 1} {$k <=21} {incr k} {
> lappend res $k
> set f2 [open ${k}pmol1.dat w]
> close $f2
> unset f2
> set f2 [open ${k}pmol2.dat w]
> close $f2
> unset f2
> set f2 [open ${k}pmol1num.dat w]
> close $f2
> unset f2
> set f2 [open ${k}pmol2num.dat w]
> close $f2
> unset f2
> } set res1 {}
> for {set j 1} {$j <=30} {incr j} {
> set k [expr $j+21]
> lappend res1 $j
> set f2 [open ${k}pmol1.dat w]
> close $f2
> unset f2
> set f2 [open ${k}pmol2.dat w]
> close $f2
> unset f2
> set f2 [open ${k}pmol1num.dat w]
> close $f2
> unset f2
> set f2 [open ${k}pmol2num.dat w]
> close $f2
> unset f2
> } proc doit { i } {
> global res res1 hblength hbangle rshell
> **********
> STATEMENTS
> ************
> }
>
>
> mol delete all
> mol load psf $psffile
> bigdcd doit $dcdfile
>
> 5000 blank lines here
> ************
>
>
> Your help is greatly appreciated.
> Thank you,
> Vishal
>
> --
> Vishal N Kopardé, Ph.D.
> http://www.people.vcu.edu/~vnkoparde/
>
>