From: Nuno R. L. Ferreira (nunolf_at_ci.uc.pt)
Date: Thu Nov 17 2005 - 04:34:44 CST

The error could come from: puts "RMSD of $i $j is $rmsd"

About the calculation of the rmsd, I you need to superimpose the two structures being analysed first, and then calculate the rmsd. Check pgs.160-162.
 When you load a pdb, a moild is given to your molecule. You must have sure about which molid's your're comparing.

N.

  ----- Original Message -----
  From: andrea spitaleri
  To: vmd-l_at_ks.uiuc.edu
  Sent: Thursday, November 17, 2005 10:14 AM
  Subject: vmd-l: Re: Réf. : vmd-l: calculate rmsd in a loop:feedback [sorry if you get it twice]

  Hi all,
  thanks for your quick replies. Yes Luc, you are right! I forgot some $.
  I changed in :
  proc calculate_rmsd {}{
      for { set i 1 } { $i < 100 } { incr i } {
      # pro is the root of the name of my structures
      mol load pdb pro_$i.pdb
      set sel1 [atomselect $i "backbone"]
      for { set j i+1 } { $j < 100 } { incr j } {
          mol load pdb pro_$j.pdb
          set sel2 [atomselect $j "backbone"]
          set rmsd [measure rmsd $sel1 $sel2]
          puts RMSD of $i $j is $rmsd
      }
      }
  }

  and it loops but it doesn't print the rms, just info>. At the end it says:
  invalid command name "}"
  not clear where...at least to me :)
  I am not quite convinced on the lines set sel1 [atomselect $j "backbone"]

  Regards,
  andrea

  l.spitzer_at_fr.fournierpharma.com wrote:

Hi Andrea!

I am not a specialist in vmd-tcl programming but I think there are a few
problem in your script :
first, this line : mol load pdb pro_i.pdb shouldn't you add a "$" before
"i"?
Then, when you do your first selection ($sel1), you don't precise the name
of the molecule on which you do the selection (set sel1 [atomselect
"backbone"]).
Then, when you initialize your "sel2" variable, what do you use as a
protein? I mean, you have : "set sel2 [atomselect j "backbone"]", it means
you select atoms from "j" where j is a number, not a molecule! shouldn't
you first load the molecule "pro_$j.pdb" as you do with your "sel1" ? Do
you understand what I mean?

To answer your question, I think you may use VMD without the GUI to launch
your script, using command "vmd -dispdev text" in your shell, so you won't
have the GUI.

I hope this will help you,

Regards,

Luc SPITZER

                                                                                                                                       
                      andrea spitaleri
                      <spitaleri.andrea Pour : vmd-l_at_ks.uiuc.edu
                      @hsr.it> cc :
                      Envoyé par : Objet : vmd-l: calculate rmsd in a loop:feedback [sorry if you get it twice]
                      owner-vmd-l_at_ks.ui
                      uc.edu
                                                                                                                                       
                                                                                                                                       
                      17/11/2005 09:50
                                                                                                                                       
                                                                                                                                       

Hi all,
first this is my first script in tcl/vmd and I need of course feedback.
I have 100 structures and I want to calculate the rmsd in a such way:
structure_1 structure_2 rmsd
1 2 rmsd12
1 3 rmsd13
1 4 rmsd14
.......
1 100 rmsd1100
2 3 rmsd23
2 4 rmsd24
.....
and so on.
Below there is a script but it does not work properly. Could someone
help me to understand what is wrong in it. Second, to run it, do I need
to run in vmd console or can I run in a shell like vmd -script
script,without gui ?

proc calculate_rmsd {}{
for { set i 1 } { $i < 100 } { incr i } {
# pro is the root of the name of my structures
             mol load pdb pro_i.pdb
             set sel1 [atomselect "backbone"]
             for { set j i+1 } { $j < 100 } { incr j } {
                         set sel2 [atomselect j "backbone"]
                         set rmsd [measure rmsd $sel1 $sel2]
                         puts RMSD of $i $j is $rmsd
}

Thanks

Regards,

andrea

--
-------------------------------
Andrea Spitaleri
Dulbecco Telethon Institute
c/o DIBIT Scientific Institute
Biomolecular NMR, 1B4
Via Olgettina 58
20132 Milano (Italy)
Get Firefox!
-------------------------------
  
  -- 
  -------------------------------
  Andrea Spitaleri 
  Dulbecco Telethon Institute
  c/o DIBIT Scientific Institute
  Biomolecular NMR, 1B4
  Via Olgettina 58
  20132 Milano (Italy)
  ------------------------------- 
----------------------------------------------------------------------------
    avast! Antivirus: Inbound message clean. 
    Virus Database (VPS): 0546-3, 16-11-2005
    Tested on: 17-11-2005 10:19:44
    avast! - copyright (c) 1988-2005 ALWIL Software.
     


---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0546-3, 16-11-2005
Tested on: 17-11-2005 10:34:46
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com
firefox_80x15.png