From: daniel aguayo (bioquimico_at_gmail.com)
Date: Tue Jun 02 2009 - 17:03:26 CDT

  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

On Tue, Jun 2, 2009 at 3:05 PM, Hyundeok Song <songhk_at_email.uc.edu> wrote:

> 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
>

-- 
saludos desde el fin del mundo