mailRe: looping the optimization in full_analysis.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Douglas Kojetin on June 25, 2007 - 14:16:
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 <douglas.kojetin@xxxxxxxxx> 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 <douglas.kojetin@xxxxxxxxx> 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
>> relax-users@xxxxxxx
>>
>> 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
>>






Related Messages


Powered by MHonArc, Updated Mon Jun 25 15:00:38 2007