From: John Stone (johns_at_ks.uiuc.edu)
Date: Tue Jul 17 2007 - 12:07:55 CDT

Sally,
  If you're displaying the trajectory during loading and
running VMD to a remote display using Exceed, it will indeed
slow things down. You'll either want to force the trajectory
to load all at once by checking the "load all at once" option
in the molecule file browser window, or add "waitfor all" if loading
from the command line. Alternately, you could just run VMD in
text mode on the remote AIX machine by starting it with the
options -dispdev text.

Cheers,
  John Stone
  vmd_at_ks.uiuc.edu

On Tue, Jul 17, 2007 at 05:58:39PM +0100, sally cii wrote:
> Dear all,
>
> Thank you for all your responses, I will read the grep-like utility script
> and try to use pure tcl command to accomplish grep.
>
> As I also tried to use VMD on Unix, I installed VMD on IBM machine
> (successfully) (the national HPCx), and used exceed to access X-window,
> however, I found it's much slower to load the trajectory on unix than that
> on windows which I suspect should not be the case. Can I ask is it normal?
>
> Thanks in advance!
> Sally Cii
>
>
> On 7/17/07, John Stone <johns_at_ks.uiuc.edu> wrote:
> >
> >Hi,
> >Try changing the script to use pure Tcl commands rather than
> >calling the external grep utility (which is Unix only of course).
> >A little googling sometimes goes a long way -- "tcl grep" :-)
> >See the "searchFiles" procedure for ideas on how to do this in pure Tcl:
> >http://wiki.tcl.tk/8405
> >
> >Cheers,
> >John Stone
> >vmd_at_ks.uiuc.edu
> >
> >On Tue, Jul 17, 2007 at 03:09:45PM +0100, sally cii wrote:
> >> Dear Nuno,
> >>
> >> Thank you very much for your time. I have tried the script, it gave
> >error
> >> message " couldn't execute "grep": no such file or directory" after
> >printing
> >> out "sorting pairs of contacts ...", I think this happens because I am
> >> running VMD under Windows environment other than Unix, can I ask how
> >should
> >> I modify the script in order to run it in Windows? I looked into the tcl
> >> manual, but couldn't finger out which command should I use to replace
> >grep?
> >> Thank you again for your help.
> >>
> >> Have a good day.
> >>
> >> Sally Cii
> >>
> >>
> >> On 7/17/07, Nuno Loureiro Ferreira <nunolf_at_ci.uc.pt> wrote:
> >> >
> >> >Hi Sally
> >> >
> >> >From off of my head, this script should do the job.
> >> >Check it, it should work the way you want.
> >> >
> >> >Notice that contact pairs are appended to pairsList var. If the number
> >> >of pairs is huge, probably you need more memory.
> >> >Or, instead of doing the -unique sorting after all contacts have been
> >> >measured (all traj frames) ,
> >> >you could update the uList var after each frame computation, but it
> >will
> >> >slowww down the proc.
> >> >I'm still not very proficient on memory usage requirements, so give it
> >a
> >> >try.
> >> >
> >> >Cheers,
> >> >Nuno
> >> >
> >> >
> >> >#######################################
> >> >proc num_contact {mol sel1 sel2 dist fname} {
> >> > puts "started at : [exec date]"
> >> > set nf [molinfo top get numframes]
> >> > set f [open $fname w]
> >> > set ftmp [open ${fname}.tmp w]
> >> > puts "measuring contacts ..."
> >> > for {set i 0} {$i < $nf} {incr i} {
> >> > $sel1 frame $i
> >> > $sel1 update
> >> > $sel2 frame $i
> >> > $sel2 update
> >> > set cList [measure contacts $dist $sel1 $sel2]
> >> > foreach j [lindex $cList 0] k [lindex $cList 1] {
> >> > lappend pairsList "$j $k" ;# list of contact pairs, frame
> >> >$i; adds up
> >> > puts $ftmp "$j $k"
> >> > }
> >> > }
> >> > close $ftmp
> >> > puts "sorting pairs of contacts ..."
> >> > set uList [lsort -unique $pairsList] ;# unique contact pairs
> >> > # counter for each unique pair of contacts
> >> > foreach item $uList {
> >> > set elem1 [lindex $item 0]
> >> > set elem2 [lindex $item 1]
> >> > puts $f "contact $item : [lindex [exec grep "$elem1 $elem2"
> >> >${fname}.tmp | wc] 0] \toccurrence(s)"
> >> > }
> >> > close $f
> >> > file delete ${fname}.tmp
> >> > puts "ended at : [exec date]"
> >> >}
> >> >
> >> >
> >> >
> >> >sally cii wrote:
> >> >> Dear all,
> >> >>
> >> >> Thank you for all your responses.
> >> >>
> >> >> I have $sel1 and $sel2 imported before I loaded this script. By
> >> >> correcting with set list1 [lsort -increasing $lists 0], I can get the
> >> >> list sorted and saved into the file $f.
> >> >>
> >> >> This script is small part of what I really need to do, what I really
> >> >> want is a script that does:
> >> >>
> >> >> For all the atoms in $sel1 there is a counter, every time an atom in
> >> >> $sel2 get within certain distance ($dist) to an atom in $sel1 during
> >> >> $nf frames, the corresponding counter to that atom adds 1. And the
> >> >> final output I want is the values of counter for every atom in $sel1.
> >> >> As I don't know how to accomplish that in one script, therefore I
> >> >> tried the previous script to sort the list of $sel1 and planned to
> >> >> count the index afterwards. I really appreciate if anyone can shed
> >> >> some light on how to do the counting in the script for me. Thank you.
> >> >>
> >> >> Best regards,
> >> >> Sally Cii
> >> >>
> >> >>
> >> >> On 7/14/07, *Nuno Loureiro Ferreira* <nunolf_at_ci.uc.pt
> >> >> <mailto:nunolf_at_ci.uc.pt>> wrote:
> >> >>
> >> >> Has Axel said, you should import those sel1 sel2 vars.
> >> >> But you say that you get the result on the console, so I deduce
> >> >> that you
> >> >> are feeding those vars some way to the proc.
> >> >>
> >> >> About the no output ... because your script reports an error
> >before
> >> >> reaching the "puts $f".
> >> >> Specifically:
> >> >>
> >> >> set list1 [lsort -increasing $lists 0]
> >> >>
> >> >> What's the "0" doing there? ;-)
> >> >> And by the way, why are you sorting a list of 2 elements? Be sure
> >> >you
> >> >> know what you are doing, since the results
> >> >> from the measure contacts command, are indices, you cannot sort
> >> >these
> >> >> lists, since you the correct correspondence between the elements
> >> >> of both
> >> >> element lists.
> >> >>
> >> >> Probably you want to sort the pairs of contacts, using
> >-increasing
> >> >and
> >> >> -index 0?
> >> >> Check the following:
> >> >>
> >> >> vmd > set c [measure contacts 3 $sel1 $sel2]
> >> >> {25 25 21 22 21 22 34 22 22 34 34 35 35 23} {36 39 36 36 39 39 39
> >> >> 38 56
> >> >> 38 37 36 37 39}
> >> >> vmd > set a [lindex $c 0]
> >> >> 25 25 21 22 21 22 34 22 22 34 34 35 35 23
> >> >> vmd > set b [lindex $c 1]
> >> >> 36 39 36 36 39 39 39 38 56 38 37 36 37 39
> >> >> vmd > foreach i $a j $b {lappend nlist "$i $j"}
> >> >> vmd > puts $nlist
> >> >> {25 36} {25 39} {21 36} {22 36} {21 39} {22 39} {34 39} {22 38}
> >> >> {22 56}
> >> >> {34 38} {34 37} {35 36} {35 37} {23 39}
> >> >> vmd > lsort -increasing -index 0 $nlist
> >> >> {21 36} {21 39} {22 36} {22 39} {22 38} {22 56} {23 39} {25 36}
> >> >> {25 39}
> >> >> {34 39} {34 38} {34 37} {35 36} {35 37}
> >> >>
> >> >> Is this what you want?
> >> >>
> >> >> Cheers,
> >> >> Nuno
> >> >>
> >> >>
> >> >>
> >> >> sally cii wrote:
> >> >> > Dear all,
> >> >> > I want to write a tcl script that can return the list of atom
> >> >> index in
> >> >> > $sel1 that within a certain distance contact with atoms in
> >$sel2
> >> >> > during a trajectory. Here is the trial script, after I load
> >this
> >> >> > script, I got the atom index printed out in tcl console
> >together
> >> >> with
> >> >> > complain about 'bad option', but not saved in the file I
> >wanted.
> >> >> > Can anyone tell me how to return a list in a file? thank you
> >in
> >> >> advance!
> >> >> >
> >> >> > #####################################################
> >> >> > proc num_contact {mol dist fname} {
> >> >> >
> >> >> > set nf [molinfo top get numframes]
> >> >> >
> >> >> > set f [open $fname "w"]
> >> >> >
> >> >> > for {set i 0} {$i < $nf} {incr i} {
> >> >> >
> >> >> > $sel1 frame $i
> >> >> >
> >> >> > $sel1 update
> >> >> >
> >> >> > $sel2 frame $i
> >> >> >
> >> >> > $sel2 update
> >> >> >
> >> >> > set lists [measure contacts $dist $sel1 $sel2]
> >> >> >
> >> >> > set list1 [lsort -increasing $lists 0]
> >> >> >
> >> >> > puts $f "$list1"}
> >> >> >
> >> >> > close $f
> >> >> >
> >> >> > $sel1 delete
> >> >> >
> >> >> > $sel2 delete
> >> >> >
> >> >> > }
> >> >> > ####################################################
> >> >> >
> >> >> > Sincerely,
> >> >> > Sally Cii
> >> >> >
> >> >>
> >>
> >>------------------------------------------------------------------------
> >> >> >
> >> >> > No virus found in this incoming message.
> >> >> > Checked by AVG Free Edition.
> >> >> > Version: 7.5.476 / Virus Database: 269.10.4/898 - Release Date:
> >> >> 12-07-2007 16:08
> >> >> >
> >> >>
> >> >>
> >> >>
> >------------------------------------------------------------------------
> >> >>
> >> >> No virus found in this incoming message.
> >> >> Checked by AVG Free Edition.
> >> >> Version: 7.5.476 / Virus Database: 269.10.6/902 - Release Date:
> >> >15-07-2007 14:21
> >> >>
> >> >
> >> >
> >
> >--
> >NIH Resource for Macromolecular Modeling and Bioinformatics
> >Beckman Institute for Advanced Science and Technology
> >University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> >Email: johns_at_ks.uiuc.edu Phone: 217-244-3349
> >WWW: http://www.ks.uiuc.edu/~johns/ Fax: 217-244-6078
> >

-- 
NIH Resource for Macromolecular Modeling and Bioinformatics
Beckman Institute for Advanced Science and Technology
University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
Email: johns_at_ks.uiuc.edu                 Phone: 217-244-3349
  WWW: http://www.ks.uiuc.edu/~johns/      Fax: 217-244-6078