From: John Stone (johns_at_ks.uiuc.edu)
Date: Tue May 19 2009 - 20:32:52 CDT

Hi,
  You're likely getting the domain error message from Tcl
from one of your calls to acos(). I'd suggest checking the Tcl
documentation to make sure you're within the valid input domain in all
cases.

Cheers,
  John Stone
  vmd_at_ks.uiuc.edu

On Tue, May 19, 2009 at 04:14:21PM +0000, Andres Morales N wrote:
>
>
>
>
> Hi!
>
> I wrote a script to align and calculate average strcuture form a .dcd file.
> I wait you can look it and give me some suggestions.
>
> when I run this script appears the following mistake: domain error: argument not in valid range
> So this mistake does not appears everytime I run the script.
>
>
> I wait somebody can help me with this.
>
> ##### Align
> ##move atoms of each strcuture from a dcd file to a position where alpha carbon of first residue will be located at point {0 0 0}
> set O [atomselect top "protein and resid 1 and alpha"]
> set nf [molinfo top get numframes]
> set protein [atomselect top all]
> for {set i 0 } {$i < $nf } { incr i } {
> $O frame $i
> $protein frame $i
> set ocoord [lindex [$O get {x y z}] 0]
> $protein moveby [vecscale -1 $ocoord]
> }
> ## Align vectors (between CA of resid 1 and 15) of each frame
> set P0 [atomselect top "protein and resid 15 and alpha" frame 0]
> set P0coord [lindex [$P0 get {x y z}] 0]
> set P [atomselect top "protein and resid 15 and alpha"]
> for {set i 0 } {$i < $nf } { incr i } {
> $P frame $i
> $protein frame $i
> set Pcoord [lindex [$P get {x y z}] 0]
> global M_PI
> set cosine [expr [vecdot $Pcoord $P0coord] / ( [veclength $Pcoord] * [veclength $P0coord])]
> set angulo1 [expr acos($cosine)*(180.0/$M_PI)]
> set A [veccross $Pcoord $P0coord]
> set M1 [transabout $A $angulo1]
> $protein move $M1
> }
>
> ## Align plane (formed between CA of resid 1 15 and 50) of each frame
> set Q0 [atomselect top "protein and resid 50 and alpha" frame 0]
> set Q0coord [lindex [$Q0 get {x y z}] 0]
> set Q [atomselect top "protein and resid 50 and alpha"]
> set N0 [veccross $P0coord $Q0coord]
> set O0 [atomselect top "protein and resid 1 and alpha" frame 0]
> set O0coord [lindex [$O0 get {x y z}] 0]
> for {set i 0 } {$i < $nf } { incr i } {
> $P frame $i
> $Q frame $i
> $protein frame $i
> set Pcoord [lindex [$P get {x y z}] 0]
> set Qcoord [lindex [$Q get {x y z}] 0]
> set N [veccross $Pcoord $Qcoord]
> global M_PI
> set cosine2 [expr [vecdot $N $N0] / ( [veclength $N] * [veclength $N0])]
> set angulo2 [expr acos($cosine2)*(180.0/$M_PI)]
> set B [veccross $N $N0]
> set M2 [transabout $B $angulo2]
> $protein move $M2
> }
>
> ### Average strcuture
>
> set sel [atomselect top all]
> set nf [molinfo top get numframes]
> set n [expr $nf - 1]
> set newpos [measure avpos $sel first 0 last $n]
> $sel set {x y z} $newpos
> $sel writepdb "promedio.pdb"
>
>
> Thanks for your suggestions
>
>
> Andres
>
>
>
>
>
>
> Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!
> _________________________________________________________________
> Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!
> http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us

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