From: Hyundeok Song (songhk_at_email.uc.edu)
Date: Tue Jun 02 2009 - 14:05:59 CDT

Dear John Stone, thanks for your comment.

Dear Daniel Aguayo V.
Thanks for your script. That was helpful.

I got almost same graphs by two methods (HOLE program, VMD HOLE script). I slightly modified VMD hole.tcl as follows. (like Daniel)

set result [exec "$holebin" "<< $str"]
 --> set result [exec "$holebin" "<< $str >> hole.log"]

added following scripts:
  set archiv [open hole_test.log w]

  # return $sortdata
  puts $archiv "$result"
close $archiv

$vmd -dispdev text -e run_hole.vmd
output: hole_test.log

then plot from hole_test.log

I think I can also apply it through many time frames like Daniel. I appreciate it.

hyun.

---- Original message ----
>Date: Tue, 2 Jun 2009 11:09:27 -0400
>From: daniel aguayo <bioquimico_at_gmail.com>
>Subject: Re: vmd-l: VMD HOLE Result
>To: Hyundeok Song <songhk_at_email.uc.edu>
>
> Dear Hyundeok Song
>
>     Attached here y sent you a script to run HOLE
> over a trajectory. You must be carefull to have
> aligned your structure to keep the
> vector channel constant (with not tilt).
>
> My best
>
> Daniel Aguayo V.
> Center for Bioinformatics and Molecular Simulations
> Talca University
> Chile
>
> proc hole_over_time {} {
>      # Customize the following lines to set the
> paths to the hole executable and
>   # the radius file.
>   set holebin /usr/local/lib/hole/hole2/exe/hole
>   set holerad
> /usr/local/lib/hole/hole2/rad/simple.rad
>   set sph_process
> /usr/local/lib/hole/hole2/exe/sph_process
>   set sos_triangle
> /usr/local/lib/hole/hole2/exe/sos_triangle
>   set tmp /tmp
>   # Customize the following to set default
> values.  See the runhole
>   # comments for what these parameters do.
>   #cvect vector en poro, cpoint punto en poro
>     set cvect [list -1 1 1]
>   set cpoint [list -6 5 10]
>   set sample 0.5
>   set endrad 15.
>   set mol top
> #variable sel 1
>     # use frame 0 for the reference
>       set num_steps [molinfo $mol get
> numframes]
>  
>     #loop over all frames in the trajectory
>    
> for {set frame 0} {$frame < $num_steps} {incr frame}
> {
>     puts "Calculando hole $frame "
>     set sphpdb outputhole_$frame.sph
>       set pltout outputhole_$frame.qpt
>
>    
> # write coordinates to files
> puts $mol
> set sel [atomselect $mol "protein" frame $frame] 
> set pdb tmpholeinputfiles_$frame.pdb
> $sel writepdb $pdb
>
>   # construct HOLE input string
>   set str "\ncoord $pdb\n"
>   append str "radius $holerad\n"
>   append str "cvect $cvect\n"
>   append str "cpoint $cpoint\n"
>   append str "sample $sample\n"
>   append str "endrad $endrad\n"
>   append str "sphpdb $sphpdb\n"
>   append str "pltout $pltout\n"
>  # set str2 "-dotden 15 -colour -sos outputhole.sph
> hole.sos"
> # Call HOLE and collect output
> puts "Calling HOLE..."
>
> puts "$holebin $str "
> flush stdout
>   set result [exec  "$holebin" "<< $str >>
> hole.log"]
>
> #capturando archivos de salida
> set rawdata [list]
>   set lines [split $result \n]
>   set n [llength $lines]
>   set archiv [open hole_$frame.log w]
>   set archiv2 [open hole_residuos_$frame.log w]
> for { set i 0 } { $i < $n } { incr i } {
>     set line [lindex $lines $i]
>     if { [string first highest $line] != -1 } {
>       incr i
>       foreach { at point x y z } [lindex $lines
> $i] { break }
>       incr i
>       set line [lindex $lines $i]
>       set r [string trim [string range $line 22
> 30]]
>       set aname [string trim [string range
> $line 31 37]]
>       set resname [string trim [string range
> $line 38 40]]
>       set resid [string trim [string range
> $line 44 end]]
>       lappend rawdata [list $z $r $resname
> $resid]
>     }
>   }
>   set sortdata [lsort -real -index 0 $rawdata]
>   #return $sortdata
>   puts $archiv "$result"
>   puts $archiv2 "$sortdata"
> close $archiv
> close $archiv2
>
>         
> # fin loop por frame    
>     }
>    
> }   
>
> On Tue, Jun 2, 2009 at 9:49 AM, Hyundeok Song
> <songhk_at_email.uc.edu> wrote:
>
> Dear VMD users
>
> I have a question about the result from VMD HOLE
> script.
>
> I calculated the coordinate vs channel radius of
> Gramicidin by two methods (HOLE program and
>  VMD-HOLE script)
> But two results are not same. ( very different )
>
> I prefer to use VMD HOLE script than HOLE program
> because I need it through many time frames.
>
> If someone has already done this by VMD HOLE
> script, could you explain this? Do I miss
> something?
> Any comments and suggestions are welcome.
> Thanks.
>
> hyun.
>
> 1) by HOLE program (used example file of HOLE)
> input: 01_1grm_single.pdb,01_example.inp,
> $ hole2 < 01_example.inp > 01_example.log
>
> output: 01_example.log, example.qpt, example.sph
> And then plot from 01_example.log
>
> 2) by VMD - HOLE script
> input: hole.tcl, run_hole.vmd
> $ vmd -dispdev text -e run_hole.vmd > run_hole.log
>
> output: run_hole.log, tmpholeinputfiles.pdb
> And then plot from run_hole.log
>
> --- run_hole.vmd ---
> source hole.tcl
> mol load pdb 01_1grm_single.pdb
> set sel [atomselect top all]
> Hole::runhole $sel
>
> exit
> ---------------------
>
> --
> saludos desde el fin del mundo