Hi all,

I just tried, a couple of days ago, the CONV_LOOP = 1 option in the
full_analysis,py script.

Strangely (as opposed to Douglas), it works well for me with different
DIFF_MODEL options. Also, I get the same exact results for differents
rounds of calculation/optimization (chi-squared, model convergence, etc).

I used line 1.2 revision 3354.

Cheers



Séb




Douglas Kojetin wrote:
> Hi Edward,
>
> I am just picking back up on my relaxation analysis, and noticed that  
> the CONV_LOOP = 1 function is full_analysis.py does not seem to work  
> properly.  I get the following error:
>
> """
> #####################
> # Convergence tests #
> #####################
>
>
> Chi-squared test:
>      chi2 (k-1): 164.3021658998544
>      chi2 (k):   168.91097779838205
>      The chi-squared value has not converged.
>
> Identical model-free models test:
> Traceback (most recent call last):
>    File "/opt/relax/1.2/relax", line 454, in ?
>      Relax()
>    File "/opt/relax/1.2/relax", line 166, in __init__
>      self.interpreter.run()
>    File "/opt/relax/1.2/prompt/interpreter.py", line 213, in run
>      run_script(intro=self.relax.intro_string, local=self.local,  
> script_file=self.relax.script_file, quit=1)
>    File "/opt/relax/1.2/prompt/interpreter.py", line 388, in run_script
>      console.interact(intro, local, script_file, quit)
>    File "/opt/relax/1.2/prompt/interpreter.py", line 340, in  
> interact_script
>      execfile(script_file, local)
>    File "full_analysis.py", line 574, in ?
>      Main(self.relax)
>    File "full_analysis.py", line 247, in __init__
>      converged = self.convergence(run=name)
>    File "full_analysis.py", line 368, in convergence
>      curr_models = curr_models + self.relax.data.res[run][i].model
> AttributeError: Element instance has no attribute 'model'
> """
>
> Thanks,
> Doug
>
> On Jun 27, 2007, at 11:22 AM, Edward d'Auvergne wrote:
>
>   
>> Hi,
>>
>> To commit changes to the repository, you need to become a relax
>> developer.  There is detailed information in the relax manual about
>> this long process.  Alternatively if you run the command svn diff to
>> create a patch file, I can then apply the patch and make the commit
>> for you.  In this case however I am making the changes to the 1.3
>> repository line and then back porting to the 1.2 line (this is the
>> origin of the relax_data_store error you saw before).  Therefore if
>> you post what the changes are, I will manually apply them to 1.3 and
>> then back port to 1.2.
>>
>> Cheers,
>>
>> Edward
>>
>>
>> P.S.  The change to line 290 was unnecessary as far as I can see (I
>> could be wrong though).  And I also replaced the looping over
>> LOCAL_TM_MODELS and MF_MODELS with a single test within the model-free
>> model loop which already exists - just to simplify the code.  The
>> changes have been committed to the repository.
>>
>>
>>
>>
>> On 6/27/07, Douglas Kojetin <[EMAIL PROTECTED]> wrote:
>>     
>>> Another update.  I had to change a few more lines, but the script
>>> seems to work properly now.
>>>
>>> % diff OLD.py NEW.py
>>> 229a230,231
>>>  >                     if name in self.relax.data.run_names:
>>>  >                         run.delete(name)
>>> 290a293,294
>>>  >             if 'final' in self.relax.data.run_names:
>>>  >                 run.delete('final')
>>> 524a529,531
>>>  >             for name_to_remove in LOCAL_TM_MODELS:
>>>  >                 if name_to_remove in self.relax.data.run_names:
>>>  >                     run.delete(name_to_remove)
>>> 526a534,536
>>>  >             for name_to_remove in MF_MODELS:
>>>  >                 if name_to_remove in self.relax.data.run_names:
>>>  >                     run.delete(name_to_remove)
>>>
>>>
>>> If you would like me to commit these changes, just let me know where
>>> I can find instructions on how to do so.
>>>
>>> Thanks,
>>>
>>> Doug
>>>
>>>
>>>
>>> On Jun 26, 2007, at 3:58 AM, Edward d'Auvergne wrote:
>>>
>>>       
>>>> Whoops, that should have been 'self.relax.data.run_names'!  It's  
>>>>         
>>> all
>>>       
>>>> fixed in the repository.
>>>>
>>>> Cheers,
>>>>
>>>> Edward
>>>>
>>>>
>>>> On 6/25/07, Douglas Kojetin <[EMAIL PROTECTED]> wrote:
>>>>         
>>>>> Hi Edward,
>>>>>
>>>>> A new error, that appears before the first round of iteration  
>>>>>           
>>> starts
>>>       
>>>>> after executing the script:
>>>>>
>>>>>  
>>>>>           
>>> ---------------------------------------------------------------------
>>>       
>>>>> ---
>>>>> ----------------------------
>>>>> Traceback (most recent call last):
>>>>>    File "/home/dkojetin/bin/relax", line 454, in ?
>>>>>      Relax()
>>>>>    File "/home/dkojetin/bin/relax", line 166, in __init__
>>>>>      self.interpreter.run()
>>>>>    File "/opt/relax/1.2/prompt/interpreter.py", line 213, in run
>>>>>      run_script(intro=self.relax.intro_string, local=self.local,
>>>>> script_file=self.relax.script_file, quit=1)
>>>>>    File "/opt/relax/1.2/prompt/interpreter.py", line 388, in
>>>>> run_script
>>>>>      console.interact(intro, local, script_file, quit)
>>>>>    File "/opt/relax/1.2/prompt/interpreter.py", line 340, in
>>>>> interact_script
>>>>>      execfile(script_file, local)
>>>>>    File "n3.py", line 578, in ?
>>>>>      Main(self.relax)
>>>>>    File "n3.py", line 230, in __init__
>>>>>      self.load_tensor()
>>>>>    File "n3.py", line 499, in load_tensor
>>>>>      if 'previous' in self.relax.data.runs:
>>>>> AttributeError: Data instance has no attribute 'runs'
>>>>>
>>>>>
>>>>> Doug
>>>>>
>>>>>
>>>>>
>>>>> On Jun 25, 2007, at 8:54 AM, Edward d'Auvergne wrote:
>>>>>
>>>>>           
>>>>>> Hi,
>>>>>>
>>>>>> Sorry, that relax_data_store was 1.3 line specific and I  
>>>>>>             
>>> forgot to
>>>       
>>>>>> change that for the 1.2 line.  The repository code should now  
>>>>>>             
>>> have
>>>       
>>>>>> that fixed.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Edward
>>>>>>
>>>>>>
>>>>>> On 6/25/07, Douglas Kojetin <[EMAIL PROTECTED]> wrote:
>>>>>>             
>>>>>>> Hello,
>>>>>>>
>>>>>>> Here is the error reported by the modified full_analysis.py  
>>>>>>>               
>>> script
>>>       
>>>>>>> (named n.py in the below Traceback):
>>>>>>>
>>>>>>> #--start
>>>>>>>
>>>>>>>               
>>>>>  
>>>>>           
>>> ---------------------------------------------------------------------
>>>       
>>>>>>> ---
>>>>>>> ----------------------------
>>>>>>> Traceback (most recent call last):
>>>>>>>    File "/home/dkojetin/bin/relax", line 454, in ?
>>>>>>>      Relax()
>>>>>>>    File "/home/dkojetin/bin/relax", line 166, in __init__
>>>>>>>      self.interpreter.run()
>>>>>>>    File "/opt/relax/1.2/prompt/interpreter.py", line 213, in  
>>>>>>>               
>>> run
>>>       
>>>>>>>      run_script(intro=self.relax.intro_string,  
>>>>>>>               
>>> local=self.local,
>>>       
>>>>>>> script_file=self.relax.script_file, quit=1)
>>>>>>>    File "/opt/relax/1.2/prompt/interpreter.py", line 388, in
>>>>>>> run_script
>>>>>>>      console.interact(intro, local, script_file, quit)
>>>>>>>    File "/opt/relax/1.2/prompt/interpreter.py", line 340, in
>>>>>>> interact_script
>>>>>>>      execfile(script_file, local)
>>>>>>>    File "n.py", line 577, in ?
>>>>>>>      Main(self.relax)
>>>>>>>    File "n.py", line 229, in __init__
>>>>>>>      self.load_tensor()
>>>>>>>    File "n.py", line 498, in load_tensor
>>>>>>>      if relax_data_store.has_key('previous'):
>>>>>>> NameError: global name 'relax_data_store' is not defined
>>>>>>>
>>>>>>> #--end
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Doug
>>>>>>>
>>>>>>>
>>>>>>> On Jun 25, 2007, at 4:42 AM, Edward d'Auvergne wrote:
>>>>>>>               
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I've just made modifications to the 1.2 and 1.3 repository
>>>>>>>>                 
>>>>> lines to
>>>>>           
>>>>>>>> hopefully fix this problem.  Could you try again to see if  
>>>>>>>>                 
>>> the
>>>       
>>>>>>> script
>>>>>>>               
>>>>>>>> works this time?
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Edward
>>>>>>>>
>>>>>>>>
>>>>>>>> On 6/25/07, Douglas Kojetin <[EMAIL PROTECTED]>  
>>>>>>>>                 
>>> wrote:
>>>       
>>>>>>>>> Hi Edward,
>>>>>>>>>
>>>>>>>>> I gave the new script a try, setting CONV_LOOP = 1, but it
>>>>>>>>>                   
>>>>>>> reported
>>>>>>>               
>>>>>>>>> an error after optimizing the first round:
>>>>>>>>>
>>>>>>>>> """
>>>>>>>>> Convergence:
>>>>>>>>>      [ No ]
>>>>>>>>>
>>>>>>>>> relax> run.create(run='previous', run_type='mf')
>>>>>>>>> RelaxError: The run 'previous' already exists.
>>>>>>>>> """
>>>>>>>>>
>>>>>>>>> If you have any suggestions for changes to the script, send
>>>>>>>>>                   
>>>>>>> them my
>>>>>>>               
>>>>>>>>> way and I'll give it a try.
>>>>>>>>>
>>>>>>>>> Doug
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Jun 24, 2007, at 11:47 AM, Edward d'Auvergne wrote:
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> The simplest way to do this would be to use a while loop
>>>>>>>>>>                     
>>>>> using a
>>>>>           
>>>>>>>>>> modified version of the convergence() function which  
>>>>>>>>>>                     
>>> returns
>>>       
>>>>>>> 1 or 0
>>>>>>>               
>>>>>>>>>> depending on whether the results have converged  
>>>>>>>>>>                     
>>> (exactly like
>>>       
>>>>>>> your
>>>>>>>               
>>>>>>>>>> suggestion).  I have added this looping ability to the
>>>>>>>>>> full_analysis.py script in the relax repository (to both
>>>>>>>>>>                     
>>>>> the 1.2
>>>>>           
>>>>>>>>> and
>>>>>>>>>                   
>>>>>>>>>> 1.3 lines).  This is not activated by default though  
>>>>>>>>>>                     
>>> and the
>>>       
>>>>>>>>> scripts
>>>>>>>>>                   
>>>>>>>>>> in the repository are significantly different from that in
>>>>>>>>>>                     
>>>>> the
>>>>>           
>>>>>>>>> relax
>>>>>>>>>                   
>>>>>>>>>> 1.2.10 version (all the variables which should be  
>>>>>>>>>>                     
>>> modified by
>>>       
>>>>>>>>> the user
>>>>>>>>>                   
>>>>>>>>>> have been shifted to the top of the script).  Would you be
>>>>>>>>>>                     
>>>>>>> able to
>>>>>>>               
>>>>>>>>>> test if this automatic looping over all rounds of
>>>>>>>>>>                     
>>>>> optimisation
>>>>>           
>>>>>>>>> until
>>>>>>>>>                   
>>>>>>>>>> convergence actually works?  There could possibly be bugs
>>>>>>>>>>                     
>>>>>>> lurking
>>>>>>>               
>>>>>>>>>> there.  Thanks.
>>>>>>>>>>
>>>>>>>>>> The problem that you encountered with the calling of the
>>>>>>>>>>                     
>>>>>>> __init__()
>>>>>>>               
>>>>>>>>>> function is because this function should not be called.
>>>>>>>>>>                     
>>>>>>> Using that
>>>>>>>               
>>>>>>>>>> type of approach, the looping should have been outside  
>>>>>>>>>>                     
>>> of the
>>>       
>>>>>>> Main
>>>>>>>               
>>>>>>>>>> class to work.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>>
>>>>>>>>>> Edward
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 6/16/07, Douglas Kojetin <[EMAIL PROTECTED]>
>>>>>>>>>>                     
>>>>> wrote:
>>>>>           
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> Is it possible to edit full_analysis.py so the
>>>>>>>>>>>                       
>>>>> optimization of
>>>>>           
>>>>>>>>> MII to
>>>>>>>>>                   
>>>>>>>>>>> MV (self.round > 0) is done automatically by looping  
>>>>>>>>>>>                       
>>> until
>>>       
>>>>>>>>>>> convergence?
>>>>>>>>>>>                       
>>>>>>>>>> Do you mean that the script will automatically
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                     
>>>>>>>>>>>  I tried to do this by modifying the following in
>>>>>>>>>>> convergence() [near the end]:
>>>>>>>>>>>
>>>>>>>>>>> """
>>>>>>>>>>>          # Final print out.
>>>>>>>>>>>          ##################
>>>>>>>>>>>
>>>>>>>>>>>          print "\nConvergence:"
>>>>>>>>>>>          if chi2_converged and models_converged and
>>>>>>>>>>>                       
>>>>>>>>> params_converged:
>>>>>>>>>                   
>>>>>>>>>>>              print "    [ Yes ]"
>>>>>>>>>>>              return 1
>>>>>>>>>>>          else:
>>>>>>>>>>>              print "    [ No ]"
>>>>>>>>>>>              return 0
>>>>>>>>>>> """
>>>>>>>>>>>
>>>>>>>>>>> then modifying __init__(), at the end of the "elif
>>>>>>>>>>>                       
>>>>>>> DIFF_MODEL ==
>>>>>>>               
>>>>>>>>>>> 'sphere' or DIFF_MODEL == 'prolate' or DIFF_MODEL ==
>>>>>>>>>>>                       
>>>>>>> 'oblate' or
>>>>>>>               
>>>>>>>>>>> DIFF_MODEL == 'ellipsoid':" statement:
>>>>>>>>>>>
>>>>>>>>>>> """
>>>>>>>>>>>                  # Test for convergence.
>>>>>>>>>>>                  test=self.convergence(run=name)
>>>>>>>>>>>
>>>>>>>>>>>                  if test == 0:
>>>>>>>>>>>                      __init__(self.relax)
>>>>>>>>>>>                      #Main(self.relax)
>>>>>>>>>>> """
>>>>>>>>>>>
>>>>>>>>>>> but it did not work properly.  I think the problem has
>>>>>>>>>>>                       
>>>>>>>>> something to
>>>>>>>>>                   
>>>>>>>>>>> do with the call to __init__() or Main().  I'll see if  
>>>>>>>>>>>                       
>>> I can
>>>       
>>>>>>>>> dig up
>>>>>>>>>                   
>>>>>>>>>>> the error reported by relax.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Doug
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> relax (http://nmr-relax.com)
>>>>>>>>>>>
>>>>>>>>>>> This is the relax-users mailing list
>>>>>>>>>>> [email protected]
>>>>>>>>>>>
>>>>>>>>>>> To unsubscribe from this list, get a password
>>>>>>>>>>> reminder, or change your subscription options,
>>>>>>>>>>> visit the list information page at
>>>>>>>>>>> https://mail.gna.org/listinfo/relax-users
>>>>>>>>>>>
>>>>>>>>>>>                       
>>>>>>>>>                   
>>>>>>>               
>>>>>           
>>>       
>
>
> _______________________________________________
> relax (http://nmr-relax.com)
>
> This is the relax-users mailing list
> [email protected]
>
> To unsubscribe from this list, get a password
> reminder, or change your subscription options,
> visit the list information page at
> https://mail.gna.org/listinfo/relax-users
>
>   

-- 
         ______________________________________    
     _______________________________________________
    |                                               |
   || Sebastien Morin                               ||
  ||| Etudiant au PhD en biochimie                  |||
 |||| Laboratoire de resonance magnetique nucleaire ||||
||||| Dr Stephane Gagne                             |||||
 |||| CREFSIP (Universite Laval, Quebec, CANADA)    ||||
  ||| 1-418-656-2131 #4530                          |||
   ||                                               ||
    |_______________________________________________|
         ______________________________________    

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users

Reply via email to